Commit Graph

305 Commits

Author SHA1 Message Date
Strikeskids
2757613fd4 Add blackout plugin
Press 'b' to hide / unhide presentation content.
impress#372
2017-10-30 17:07:14 +02:00
Henrik Ingo
4bec5db356 Add autoplay plugin
The autoplay plugin will automatically advance to the next slide
after N seconds.
2017-10-30 17:07:14 +02:00
Henrik Ingo
fd8bc69eb9 Add code comment that impress().swipe() is internal API method.
By internal, we mean it is not documented on DOCUMENTATION.md.
2017-10-23 22:29:59 +03:00
Henrik Ingo
b56b16d1cf Add support for data-rotate-order="xyz" attribute.
It turns out in CSS 3D, the order in which you specify for example
the rotateX(), rotateY() and rotateZ() transformations matter.
Each rotation is relative to the objects then-current position.
Impress.js being hardwired to always do rotateX->rotateY->rotateZ
was therefore limiting, and in fact there are some positions that
can never be reached with an xyz order. The new data-rotate-order=""
attribute allows to specify the order as a permutation of the 3
letters x, y, z, thus relaxing this limitation.

See http://openlife.cc/blogs/2016/october/3d-rotations-css-and-impressjs
for (much) more details.
2017-10-23 22:29:59 +03:00
Henrik Ingo
aa93a8b563 Support data-transition-duration attributes for step elements.
If the next element has its own data-transition-duration attribute,
use that value instead of the global setting.

References:
https://github.com/impress/impress.js/issues/142
2017-10-23 22:29:59 +03:00
Henrik Ingo
b15b07ef49 Trigger impress:steprefresh for every onStepEnter ( goto() )
Unlike impress:stepenter, we emit impress:steprefresh event also
when the "entered" step is the current step. This allows plugins
to reload or redraw objects if needed.

(Note that resize plugin already calls goto() on the active element
for similar purposes when it sees a window resize event. Emitting
impress:steprefresh allows other plugins to join in such a refresh,
and also others can call goto() if a refresh is needed.)
2017-10-23 22:29:59 +03:00
Kurt Zenisek
f0b99f81ac Add Mobile plugin, which allows authors to hide most slides with CSS.
The Mobile plugin adds CSS classes body.impress-mobile and
div.prev, div.next. These can be used in CSS to hide non-active
steps completely, in order to reduce memory consumption on
small mobile devices.
2017-10-23 22:29:59 +03:00
and3rson
b10f710499 Add swipe support for navigation between steps
Also:
 - Removes the code that allowed navigation by tapping left/right edge of screen.
   - Actually, this was already removed in this branch...
 - Removes the code that disabled impress.js on mobile devices
 - Adds new API call impress().swipe()

Refactored for the plugin api from this pull request by @and3rson:
https://github.com/impress/impress.js/pull/496

Manually "cherry picked" from
c44fd0f4c1
2017-10-23 22:29:59 +03:00
Henrik Ingo
10632c2ebc Add rel goto and skip plugins to build.js too 2017-10-21 14:31:56 +03:00
Henrik Ingo
5645849079 Small comment fixes from code review 2017-10-21 12:22:22 +03:00
Henrik Ingo
82ff7cbde0 Add a framework for synchronously executed preInit and preStepLeave plugins.
This allows plugins to register to be executed at the beginning of
impress().init() and impress().goto() respectively. By returning false,
a plugin can also cancel the event.

Also adds 3 plugins that use this: rel, goto and stop.
2017-10-21 12:22:22 +03:00
Fagner Brack
8902a0a709 Remove second example for ".tear()" (#627) 2017-10-09 22:19:42 +11:00
Henrik Ingo
a66947e119 Merge pull request #625 from henrikingo/merge-lib
Common libraries in src/lib
2017-10-09 10:02:18 +03:00
Henrik Ingo
8c12757b96 Documentation fixes based on code review. 2017-10-09 09:30:11 +03:00
Henrik Ingo
f3d193d636 Move helper functions from core to src/lib/util.js
This facilitates them being used from plugins as well as core impress.js.
2017-10-05 17:57:16 +03:00
Henrik Ingo
9b958f0e00 Add a framework for libraries, and a first library gc
- Libraries are under src/lib/
- Added to build.js as usual, before plugins.
- See src/lib/README.md for details

gc library implements a "garbage collector" library, which allows
both the core and plugins to store elements and listeners to a list,
and when impress().lib.gc.teardown() is called, to have all of them
removed from the DOM. It also allows plugins to register their own
callback functions, which are called at teardown.

Commentary:

This work is based on copying the src/lib/gc.js from impressionist. While it was
useful, it turns out on the impress.js side there was much more a need to reset
attributes rather than delete elements. For now, this means lots of plugins do this
via their own lib.gc.addCallback() functions. Probably it would be nicer to add
some generic lib.gc.resetAttributes() functionality for this particular case.
I'll return to this in a future patch.

extras/ are not supported for impress().tear(). What can I say, they're extras.
Maybe in the future I'll support them, for now I can live without.
2017-10-05 14:57:59 +03:00
Henrik Ingo
9198ca854b Merge pull request #622 from henrikingo/plugin-framework
Introduce plugin framework
2017-10-02 16:53:24 -04:00
Henrik Ingo
ab30317cd0 Set browser:true in .jshintrc 2017-10-02 23:52:04 +03:00
Henrik Ingo
0dc8b43650 Introduce plugin framework
* Source files are under src/
* js/impress.js is now generated, but remains part of the repo (so it just works)
* npm run build
* build.js uses buildify node module
* Break out navigation and resize plugins from core src/impress.js file
2017-09-25 03:01:58 +03:00
Bartek Szopka
c58b7b8a44 Merge pull request #621 from henrikingo/merge-testing
Merge more testing coverage from henrikingo fork
2017-09-24 13:07:52 +02:00
Henrik Ingo
0b6dbede8b Lock versions for firefox and syn node modules 2017-09-24 13:32:49 +03:00
Henrik Ingo
deca6c0ec3 Remove embedded qunit.js and syn.js, only use them as node modules
I will squash this commit with the previous so that qunit.js and syn.js
are never pushed to the repo.
2017-09-19 00:00:39 +03:00
Henrik Ingo
7aaea7fd37 Merge more testing coverage from henrikingo fork
* core_tests.js and navigation_tests.js have more tests
* qunit_test_runner.html runs QUnit in a browser (without karma) and
  provides a generic iframe based platform to test different  presentations.
* copy qunit.js and syn.js into the repo. This allows qunit_test_runner.html
  to work without any dependency on node/npm. (Karma obviously does need them.)
* Move jscs cli option to .jscsrc instead
2017-09-16 13:08:51 +03:00
Naeri Adam Fernandez
0b4bd08f44 Update DOCUMENTATION.md (#610) 2017-05-03 17:19:34 +10:00
Chad Whitacre
82bc45e6b0 Fix typo from 'arraify' to 'arrayify' (#595) 2016-11-02 23:36:31 +11:00
John-David Dalton
1bf05799a0 Breakout perspective for better IE11 support. (#594) 2016-10-28 16:46:25 -07:00
Chalk
20fe5189fb Corrected the version in the header (#591) 2016-10-28 23:00:46 +11:00
John-David Dalton
cf99e23c33 Move creds to circle-ci accnt config. (#593) 2016-10-24 19:40:47 -07:00
Fagner Brack
53214e5849 Add encrypted sauce credentials with new key (#584)
* Add encrypted sauce credentials with new key

* Remove binary workaround in ".gitattributes"

* Revert a5fd940cd9

* Use the -out syntax instead of >>

* Revert "Use the -out syntax instead of >>"

This reverts commit 7caf1de18c9103ea9c7397c1c8f0a45c31850ec6.

Is this commit causing a "npm: command not found" error in CircleCI?

* Update sauce-encrypted-env-vars to use `export`.

* Normalize `transformOrigin` result for IE11 and Safari.

* Add webkit prefixes for Safari 8 test pass.
2016-10-01 10:34:40 -07:00
Leo Arias
d021b5131d Fix wrong URLs in the issue checklist (#587)
Closes #586
2016-09-30 12:26:47 +10:00
John-David Dalton
da4c08aa23 Add .gitattributes. 2016-09-26 16:29:03 -07:00
John-David Dalton
66ca2c02d8 Add sauce test script to package.json and command to circle.yml. (#582) 2016-09-26 16:11:06 -07:00
John-David Dalton
a5fd940cd9 Fix openssl command. (#583) 2016-09-26 16:11:06 -07:00
Fagner Brack
1cb50db200 Create encrypted environment variables from SauceLabs 2016-09-26 16:11:06 -07:00
John-David Dalton
77a9ce5e4a Add sauce labs integration. 2016-09-26 14:10:54 -07:00
Bartek Szopka
a308758cce Making it more clear where to find the documentation.
Follow up to #572, fixes #573
2016-07-06 14:08:08 +02:00
Fagner Brack
1f074925b2 release version 0.6.0 2016-07-03 18:16:40 +10:00
Fagner Brack
4f6b54ac56 Add release steps 2016-07-03 18:07:38 +10:00
Nik Butenko
2d70120cba Add .npmignore
Do not upload unnecessary files to the npm registry

Closes gh-567.
2016-07-03 17:51:16 +10:00
Fagner Brack
eab24a7761 State support only for evergreen desktop browsers
Closes gh-565.
2016-06-25 23:10:14 +10:00
Fagner Brack
9945b51e85 Add impress.js documentation
Closes gh-563.
2016-06-25 23:08:13 +10:00
Nik Butenko
28bfa35e6a Add CircleCI build badge
Closes gh-569.
2016-06-25 22:25:27 +10:00
Nik Butenko
8e97d25a07 Add CircleCI config
Closes gh-568.
2016-06-25 22:14:19 +10:00
Nik Butenko
2c27f31263 Run tests with Karma test runner
Closes gh-566.
2016-06-16 21:35:08 +10:00
Matt Lockyer
967017115b Rework introduction to sound less elitist
Closes gh-562. Closes gh-540.
2016-05-28 18:27:49 +10:00
Fagner Brack
a1d6475bd5 Remove strict need for an issue in the PR template
There are some exceptions where an issue is not necessary

Closes gh-559.
2016-05-14 17:34:44 +10:00
Fagner Brack
5bdd534321 Execute the tests through npm
Closes gh-556.
2016-05-07 18:40:30 +10:00
Morton Fox
bfc03f980e Update links to CONTRIBUTING.md
Closes gh-558.
2016-05-07 18:23:12 +10:00
Henrik Ingo
f54cd8fab1 Adding qunit test framework and first set of basic tests
Some changes were cherry-picked from henrikingo/impress.js#1

Closes gh-510. Closes henrikingo/impress.js#1.
2016-04-30 13:04:29 +10:00
Fagner Brack
d489ea7295 Add template for issues and PRs
Closes gh-551.
2016-04-27 23:07:32 +10:00