jekyll-theme-chalk 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. checksums.yaml +7 -0
  2. data/404.html +39 -0
  3. data/LICENSE +21 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +91 -0
  6. data/_assets/fonts/cormorant-garamond/Cormorant-Garamond-700.eot +0 -0
  7. data/_assets/fonts/cormorant-garamond/Cormorant-Garamond-700.ttf +0 -0
  8. data/_assets/fonts/cormorant-garamond/Cormorant-Garamond-700.woff +0 -0
  9. data/_assets/fonts/cormorant-garamond/Cormorant-Garamond-700.woff2 +0 -0
  10. data/_assets/fonts/ionicons/ionicons.eot +0 -0
  11. data/_assets/fonts/ionicons/ionicons.ttf +0 -0
  12. data/_assets/fonts/ionicons/ionicons.woff +0 -0
  13. data/_assets/fonts/lato/Lato-300.eot +0 -0
  14. data/_assets/fonts/lato/Lato-300.ttf +0 -0
  15. data/_assets/fonts/lato/Lato-300.woff +0 -0
  16. data/_assets/fonts/lato/Lato-300.woff2 +0 -0
  17. data/_assets/fonts/lato/Lato-700.eot +0 -0
  18. data/_assets/fonts/lato/Lato-700.ttf +0 -0
  19. data/_assets/fonts/lato/Lato-700.woff +0 -0
  20. data/_assets/fonts/lato/Lato-700.woff2 +0 -0
  21. data/_assets/fonts/lato/Lato-regular.eot +0 -0
  22. data/_assets/fonts/lato/Lato-regular.ttf +0 -0
  23. data/_assets/fonts/lato/Lato-regular.woff +0 -0
  24. data/_assets/fonts/lato/Lato-regular.woff2 +0 -0
  25. data/_assets/images/about.jpg +0 -0
  26. data/_assets/images/about@2x.jpg +0 -0
  27. data/_assets/images/apple-touch-icon.png +0 -0
  28. data/_assets/images/documentation/chalk-intro.png +0 -0
  29. data/_assets/images/documentation/chalk-intro@2x.png +0 -0
  30. data/_assets/images/documentation/enlarge.gif +0 -0
  31. data/_assets/images/documentation/enlarge@2x.gif +0 -0
  32. data/_assets/images/documentation/sample-image.jpg +0 -0
  33. data/_assets/images/documentation/sample-image@2x.jpg +0 -0
  34. data/_assets/images/og-image.jpg +0 -0
  35. data/_assets/javascripts/application.js +17 -0
  36. data/_assets/javascripts/scrollappear.js +25 -0
  37. data/_assets/javascripts/vendor.js +4 -0
  38. data/_assets/javascripts/webfonts.js +7 -0
  39. data/_assets/stylesheets/.csscomb.json +196 -0
  40. data/_assets/stylesheets/.scss-lint.yml +33 -0
  41. data/_assets/stylesheets/_base.scss +151 -0
  42. data/_assets/stylesheets/_mixins.scss +28 -0
  43. data/_assets/stylesheets/_variables.scss +47 -0
  44. data/_assets/stylesheets/dark.scss +71 -0
  45. data/_assets/stylesheets/fonts.scss +63 -0
  46. data/_assets/stylesheets/layouts/_footer.scss +17 -0
  47. data/_assets/stylesheets/layouts/_grid.scss +102 -0
  48. data/_assets/stylesheets/light.scss +71 -0
  49. data/_assets/stylesheets/modules/_about.scss +10 -0
  50. data/_assets/stylesheets/modules/_articles.scss +213 -0
  51. data/_assets/stylesheets/modules/_embed.scss +31 -0
  52. data/_assets/stylesheets/modules/_header.scss +57 -0
  53. data/_assets/stylesheets/modules/_highlights-dark.scss +415 -0
  54. data/_assets/stylesheets/modules/_highlights-light.scss +409 -0
  55. data/_assets/stylesheets/modules/_icons.scss +83 -0
  56. data/_assets/stylesheets/modules/_scrollappear.scss +14 -0
  57. data/_assets/stylesheets/notfound-dark.scss +91 -0
  58. data/_assets/stylesheets/notfound-light.scss +91 -0
  59. data/_assets/stylesheets/vendor/_normalize.scss +461 -0
  60. data/_assets/yarn/.yarn-integrity +22 -0
  61. data/_assets/yarn/fluidbox/.gitattributes +22 -0
  62. data/_assets/yarn/fluidbox/.npmignore +220 -0
  63. data/_assets/yarn/fluidbox/.travis.yml +6 -0
  64. data/_assets/yarn/fluidbox/Gruntfile.js +8 -0
  65. data/_assets/yarn/fluidbox/LICENSE.md +23 -0
  66. data/_assets/yarn/fluidbox/README.html +750 -0
  67. data/_assets/yarn/fluidbox/README.md +396 -0
  68. data/_assets/yarn/fluidbox/bower.json +35 -0
  69. data/_assets/yarn/fluidbox/demo/css/styles.min.css +2 -0
  70. data/_assets/yarn/fluidbox/demo/css/styles.min.css.map +1 -0
  71. data/_assets/yarn/fluidbox/demo/fonts/BLOKKRegular.eot +0 -0
  72. data/_assets/yarn/fluidbox/demo/fonts/BLOKKRegular.svg +233 -0
  73. data/_assets/yarn/fluidbox/demo/fonts/BLOKKRegular.ttf +0 -0
  74. data/_assets/yarn/fluidbox/demo/fonts/BLOKKRegular.woff +0 -0
  75. data/_assets/yarn/fluidbox/demo/fonts/fontello.eot +0 -0
  76. data/_assets/yarn/fluidbox/demo/fonts/fontello.svg +13 -0
  77. data/_assets/yarn/fluidbox/demo/fonts/fontello.ttf +0 -0
  78. data/_assets/yarn/fluidbox/demo/fonts/fontello.woff +0 -0
  79. data/_assets/yarn/fluidbox/demo/index.html +758 -0
  80. data/_assets/yarn/fluidbox/demo/src/css/styles.scss +1131 -0
  81. data/_assets/yarn/fluidbox/dist/css/fluidbox.min.css +2 -0
  82. data/_assets/yarn/fluidbox/dist/css/fluidbox.min.css.map +1 -0
  83. data/_assets/yarn/fluidbox/dist/js/jquery.fluidbox.min.js +1 -0
  84. data/_assets/yarn/fluidbox/grunt/aliases.yaml +20 -0
  85. data/_assets/yarn/fluidbox/grunt/clean.js +5 -0
  86. data/_assets/yarn/fluidbox/grunt/concurrent.js +33 -0
  87. data/_assets/yarn/fluidbox/grunt/jshint.js +10 -0
  88. data/_assets/yarn/fluidbox/grunt/postcss.js +47 -0
  89. data/_assets/yarn/fluidbox/grunt/sass.js +42 -0
  90. data/_assets/yarn/fluidbox/grunt/uglify.js +7 -0
  91. data/_assets/yarn/fluidbox/grunt/watch.js +28 -0
  92. data/_assets/yarn/fluidbox/index.html +8 -0
  93. data/_assets/yarn/fluidbox/license.txt +21 -0
  94. data/_assets/yarn/fluidbox/package.json +61 -0
  95. data/_assets/yarn/fluidbox/src/css/_fluidbox.scss +95 -0
  96. data/_assets/yarn/fluidbox/src/css/fluidbox.scss +2 -0
  97. data/_assets/yarn/fluidbox/src/js/jquery.fluidbox.js +722 -0
  98. data/_assets/yarn/jquery/AUTHORS.txt +301 -0
  99. data/_assets/yarn/jquery/LICENSE.txt +36 -0
  100. data/_assets/yarn/jquery/README.md +67 -0
  101. data/_assets/yarn/jquery/bower.json +14 -0
  102. data/_assets/yarn/jquery/dist/core.js +476 -0
  103. data/_assets/yarn/jquery/dist/jquery.js +10253 -0
  104. data/_assets/yarn/jquery/dist/jquery.min.js +4 -0
  105. data/_assets/yarn/jquery/dist/jquery.min.map +1 -0
  106. data/_assets/yarn/jquery/dist/jquery.slim.js +8160 -0
  107. data/_assets/yarn/jquery/dist/jquery.slim.min.js +4 -0
  108. data/_assets/yarn/jquery/dist/jquery.slim.min.map +1 -0
  109. data/_assets/yarn/jquery/external/sizzle/LICENSE.txt +36 -0
  110. data/_assets/yarn/jquery/external/sizzle/dist/sizzle.js +2272 -0
  111. data/_assets/yarn/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  112. data/_assets/yarn/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  113. data/_assets/yarn/jquery/package.json +97 -0
  114. data/_assets/yarn/jquery/src/.eslintrc.json +5 -0
  115. data/_assets/yarn/jquery/src/ajax.js +855 -0
  116. data/_assets/yarn/jquery/src/ajax/jsonp.js +102 -0
  117. data/_assets/yarn/jquery/src/ajax/load.js +76 -0
  118. data/_assets/yarn/jquery/src/ajax/parseXML.js +30 -0
  119. data/_assets/yarn/jquery/src/ajax/script.js +77 -0
  120. data/_assets/yarn/jquery/src/ajax/var/location.js +5 -0
  121. data/_assets/yarn/jquery/src/ajax/var/nonce.js +7 -0
  122. data/_assets/yarn/jquery/src/ajax/var/rquery.js +5 -0
  123. data/_assets/yarn/jquery/src/ajax/xhr.js +169 -0
  124. data/_assets/yarn/jquery/src/attributes.js +13 -0
  125. data/_assets/yarn/jquery/src/attributes/attr.js +141 -0
  126. data/_assets/yarn/jquery/src/attributes/classes.js +174 -0
  127. data/_assets/yarn/jquery/src/attributes/prop.js +143 -0
  128. data/_assets/yarn/jquery/src/attributes/support.js +33 -0
  129. data/_assets/yarn/jquery/src/attributes/val.js +190 -0
  130. data/_assets/yarn/jquery/src/callbacks.js +234 -0
  131. data/_assets/yarn/jquery/src/core.js +476 -0
  132. data/_assets/yarn/jquery/src/core/DOMEval.js +16 -0
  133. data/_assets/yarn/jquery/src/core/access.js +70 -0
  134. data/_assets/yarn/jquery/src/core/init.js +128 -0
  135. data/_assets/yarn/jquery/src/core/nodeName.js +13 -0
  136. data/_assets/yarn/jquery/src/core/parseHTML.js +65 -0
  137. data/_assets/yarn/jquery/src/core/ready-no-deferred.js +96 -0
  138. data/_assets/yarn/jquery/src/core/ready.js +86 -0
  139. data/_assets/yarn/jquery/src/core/readyException.js +13 -0
  140. data/_assets/yarn/jquery/src/core/stripAndCollapse.js +14 -0
  141. data/_assets/yarn/jquery/src/core/support.js +20 -0
  142. data/_assets/yarn/jquery/src/core/var/rsingleTag.js +6 -0
  143. data/_assets/yarn/jquery/src/css.js +438 -0
  144. data/_assets/yarn/jquery/src/css/addGetHookIf.js +26 -0
  145. data/_assets/yarn/jquery/src/css/adjustCSS.js +71 -0
  146. data/_assets/yarn/jquery/src/css/curCSS.js +65 -0
  147. data/_assets/yarn/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  148. data/_assets/yarn/jquery/src/css/showHide.js +105 -0
  149. data/_assets/yarn/jquery/src/css/support.js +89 -0
  150. data/_assets/yarn/jquery/src/css/var/cssExpand.js +5 -0
  151. data/_assets/yarn/jquery/src/css/var/getStyles.js +17 -0
  152. data/_assets/yarn/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  153. data/_assets/yarn/jquery/src/css/var/rmargin.js +5 -0
  154. data/_assets/yarn/jquery/src/css/var/rnumnonpx.js +7 -0
  155. data/_assets/yarn/jquery/src/css/var/swap.js +26 -0
  156. data/_assets/yarn/jquery/src/data.js +179 -0
  157. data/_assets/yarn/jquery/src/data/Data.js +161 -0
  158. data/_assets/yarn/jquery/src/data/var/acceptData.js +19 -0
  159. data/_assets/yarn/jquery/src/data/var/dataPriv.js +7 -0
  160. data/_assets/yarn/jquery/src/data/var/dataUser.js +7 -0
  161. data/_assets/yarn/jquery/src/deferred.js +391 -0
  162. data/_assets/yarn/jquery/src/deferred/exceptionHook.js +21 -0
  163. data/_assets/yarn/jquery/src/deprecated.js +40 -0
  164. data/_assets/yarn/jquery/src/dimensions.js +56 -0
  165. data/_assets/yarn/jquery/src/effects.js +699 -0
  166. data/_assets/yarn/jquery/src/effects/Tween.js +123 -0
  167. data/_assets/yarn/jquery/src/effects/animatedSelector.js +15 -0
  168. data/_assets/yarn/jquery/src/event.js +746 -0
  169. data/_assets/yarn/jquery/src/event/ajax.js +22 -0
  170. data/_assets/yarn/jquery/src/event/alias.js +29 -0
  171. data/_assets/yarn/jquery/src/event/focusin.js +55 -0
  172. data/_assets/yarn/jquery/src/event/support.js +11 -0
  173. data/_assets/yarn/jquery/src/event/trigger.js +185 -0
  174. data/_assets/yarn/jquery/src/exports/amd.js +26 -0
  175. data/_assets/yarn/jquery/src/exports/global.js +34 -0
  176. data/_assets/yarn/jquery/src/jquery.js +41 -0
  177. data/_assets/yarn/jquery/src/manipulation.js +488 -0
  178. data/_assets/yarn/jquery/src/manipulation/_evalUrl.js +23 -0
  179. data/_assets/yarn/jquery/src/manipulation/buildFragment.js +104 -0
  180. data/_assets/yarn/jquery/src/manipulation/getAll.js +32 -0
  181. data/_assets/yarn/jquery/src/manipulation/setGlobalEval.js +22 -0
  182. data/_assets/yarn/jquery/src/manipulation/support.js +35 -0
  183. data/_assets/yarn/jquery/src/manipulation/var/rcheckableType.js +5 -0
  184. data/_assets/yarn/jquery/src/manipulation/var/rscriptType.js +5 -0
  185. data/_assets/yarn/jquery/src/manipulation/var/rtagName.js +5 -0
  186. data/_assets/yarn/jquery/src/manipulation/wrapMap.js +29 -0
  187. data/_assets/yarn/jquery/src/offset.js +229 -0
  188. data/_assets/yarn/jquery/src/queue.js +145 -0
  189. data/_assets/yarn/jquery/src/queue/delay.js +24 -0
  190. data/_assets/yarn/jquery/src/selector-native.js +237 -0
  191. data/_assets/yarn/jquery/src/selector-sizzle.js +19 -0
  192. data/_assets/yarn/jquery/src/selector.js +3 -0
  193. data/_assets/yarn/jquery/src/serialize.js +130 -0
  194. data/_assets/yarn/jquery/src/traversing.js +191 -0
  195. data/_assets/yarn/jquery/src/traversing/findFilter.js +106 -0
  196. data/_assets/yarn/jquery/src/traversing/var/dir.js +22 -0
  197. data/_assets/yarn/jquery/src/traversing/var/rneedsContext.js +8 -0
  198. data/_assets/yarn/jquery/src/traversing/var/siblings.js +17 -0
  199. data/_assets/yarn/jquery/src/var/ObjectFunctionString.js +7 -0
  200. data/_assets/yarn/jquery/src/var/arr.js +5 -0
  201. data/_assets/yarn/jquery/src/var/class2type.js +6 -0
  202. data/_assets/yarn/jquery/src/var/concat.js +7 -0
  203. data/_assets/yarn/jquery/src/var/document.js +5 -0
  204. data/_assets/yarn/jquery/src/var/documentElement.js +7 -0
  205. data/_assets/yarn/jquery/src/var/fnToString.js +7 -0
  206. data/_assets/yarn/jquery/src/var/getProto.js +5 -0
  207. data/_assets/yarn/jquery/src/var/hasOwn.js +7 -0
  208. data/_assets/yarn/jquery/src/var/indexOf.js +7 -0
  209. data/_assets/yarn/jquery/src/var/pnum.js +5 -0
  210. data/_assets/yarn/jquery/src/var/push.js +7 -0
  211. data/_assets/yarn/jquery/src/var/rcssNum.js +9 -0
  212. data/_assets/yarn/jquery/src/var/rnothtmlwhite.js +8 -0
  213. data/_assets/yarn/jquery/src/var/slice.js +7 -0
  214. data/_assets/yarn/jquery/src/var/support.js +6 -0
  215. data/_assets/yarn/jquery/src/var/toString.js +7 -0
  216. data/_assets/yarn/jquery/src/wrap.js +77 -0
  217. data/_assets/yarn/retinajs/.babelrc +4 -0
  218. data/_assets/yarn/retinajs/.editorconfig +15 -0
  219. data/_assets/yarn/retinajs/.eslintignore +2 -0
  220. data/_assets/yarn/retinajs/.eslintrc +9 -0
  221. data/_assets/yarn/retinajs/.npmignore +7 -0
  222. data/_assets/yarn/retinajs/.travis.yml +20 -0
  223. data/_assets/yarn/retinajs/LICENSE +20 -0
  224. data/_assets/yarn/retinajs/README.md +267 -0
  225. data/_assets/yarn/retinajs/bower.json +25 -0
  226. data/_assets/yarn/retinajs/dist/_retina.sass +68 -0
  227. data/_assets/yarn/retinajs/dist/_retina.scss +102 -0
  228. data/_assets/yarn/retinajs/dist/retina.js +100 -0
  229. data/_assets/yarn/retinajs/dist/retina.js.map +1 -0
  230. data/_assets/yarn/retinajs/dist/retina.less +56 -0
  231. data/_assets/yarn/retinajs/dist/retina.min.js +2 -0
  232. data/_assets/yarn/retinajs/dist/retina.min.js.map +1 -0
  233. data/_assets/yarn/retinajs/dist/retina.styl +56 -0
  234. data/_assets/yarn/retinajs/es/_retina.sass +68 -0
  235. data/_assets/yarn/retinajs/es/_retina.scss +102 -0
  236. data/_assets/yarn/retinajs/es/retina.js +91 -0
  237. data/_assets/yarn/retinajs/es/retina.js.map +1 -0
  238. data/_assets/yarn/retinajs/es/retina.less +56 -0
  239. data/_assets/yarn/retinajs/es/retina.styl +56 -0
  240. data/_assets/yarn/retinajs/gulpfile.babel.js +154 -0
  241. data/_assets/yarn/retinajs/package.json +57 -0
  242. data/_assets/yarn/retinajs/src/_retina.sass +68 -0
  243. data/_assets/yarn/retinajs/src/_retina.scss +102 -0
  244. data/_assets/yarn/retinajs/src/retina.js +246 -0
  245. data/_assets/yarn/retinajs/src/retina.less +56 -0
  246. data/_assets/yarn/retinajs/src/retina.styl +56 -0
  247. data/_assets/yarn/retinajs/test/DOM.js +44 -0
  248. data/_assets/yarn/retinajs/test/fixtures/image.js +19 -0
  249. data/_assets/yarn/retinajs/test/fixtures/less_expected_output.css +18 -0
  250. data/_assets/yarn/retinajs/test/fixtures/scss_expected_output.css +13 -0
  251. data/_assets/yarn/retinajs/test/fixtures/test.less +10 -0
  252. data/_assets/yarn/retinajs/test/fixtures/test.scss +11 -0
  253. data/_assets/yarn/retinajs/test/fixtures/xml_http_request.js +24 -0
  254. data/_assets/yarn/retinajs/test/functional/public/google-logo.png +0 -0
  255. data/_assets/yarn/retinajs/test/functional/public/google-logo@2x.png +0 -0
  256. data/_assets/yarn/retinajs/test/functional/public/google-logo@3x.png +0 -0
  257. data/_assets/yarn/retinajs/test/functional/public/index.html +190 -0
  258. data/_assets/yarn/retinajs/test/functional/public/ipad.png +0 -0
  259. data/_assets/yarn/retinajs/test/functional/public/ipad@2x.png +0 -0
  260. data/_assets/yarn/retinajs/test/functional/public/ipad@3x.png +0 -0
  261. data/_assets/yarn/retinajs/test/functional/public/styles/_retina.sass +68 -0
  262. data/_assets/yarn/retinajs/test/functional/public/styles/_retina.scss +102 -0
  263. data/_assets/yarn/retinajs/test/functional/public/styles/less-base.less +13 -0
  264. data/_assets/yarn/retinajs/test/functional/public/styles/retina.less +56 -0
  265. data/_assets/yarn/retinajs/test/functional/public/styles/retina.less.css +73 -0
  266. data/_assets/yarn/retinajs/test/functional/public/styles/retina.sass.css +42 -0
  267. data/_assets/yarn/retinajs/test/functional/public/styles/retina.scss.css +96 -0
  268. data/_assets/yarn/retinajs/test/functional/public/styles/retina.styl +56 -0
  269. data/_assets/yarn/retinajs/test/functional/public/styles/retina.styl.css +61 -0
  270. data/_assets/yarn/retinajs/test/functional/public/styles/sass-base.sass +10 -0
  271. data/_assets/yarn/retinajs/test/functional/public/styles/scss-base.scss +13 -0
  272. data/_assets/yarn/retinajs/test/functional/public/styles/styl-base.styl +10 -0
  273. data/_assets/yarn/retinajs/test/mocha-runner.js +7 -0
  274. data/_assets/yarn/retinajs/test/retina.spec.js +14 -0
  275. data/_assets/yarn/scrollreveal/.gitattributes +10 -0
  276. data/_assets/yarn/scrollreveal/.github/CONTRIBUTING.md +9 -0
  277. data/_assets/yarn/scrollreveal/.github/ISSUE_TEMPLATE.md +11 -0
  278. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/base.css +213 -0
  279. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/index.html +158 -0
  280. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/index.html +93 -0
  281. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/package.json.html +143 -0
  282. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/constructor.js.html +311 -0
  283. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/defaults.js.html +158 -0
  284. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/functions/animate.js.html +395 -0
  285. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/functions/delegate.js.html +179 -0
  286. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/functions/index.html +145 -0
  287. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/functions/initialize.js.html +197 -0
  288. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/functions/rinse.js.html +311 -0
  289. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/functions/style.js.html +617 -0
  290. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/index.html +119 -0
  291. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/methods/clean.js.html +137 -0
  292. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/methods/destroy.js.html +182 -0
  293. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/methods/index.html +132 -0
  294. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/methods/reveal.js.html +524 -0
  295. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/methods/sync.js.html +125 -0
  296. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/instance/noop.js.html +89 -0
  297. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/polyfills/index.html +93 -0
  298. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/polyfills/requestAnimationFrame.js.html +125 -0
  299. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/utils/browser.js.html +272 -0
  300. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/utils/core.js.html +434 -0
  301. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/utils/generic.js.html +218 -0
  302. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/lib/src/utils/index.html +119 -0
  303. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/prettify.css +1 -0
  304. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/prettify.js +1 -0
  305. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/sort-arrow-sprite.png +0 -0
  306. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report/sorter.js +158 -0
  307. data/_assets/yarn/scrollreveal/.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov.info +1016 -0
  308. data/_assets/yarn/scrollreveal/.ignore/coverage/server.coverage.js +11 -0
  309. data/_assets/yarn/scrollreveal/.ignore/sandbox/css/styles.css +32 -0
  310. data/_assets/yarn/scrollreveal/.ignore/sandbox/index.html +68 -0
  311. data/_assets/yarn/scrollreveal/.ignore/sandbox/js/scrollreveal.js +1271 -0
  312. data/_assets/yarn/scrollreveal/.ignore/sandbox/rollup.conf.sandbox.js +15 -0
  313. data/_assets/yarn/scrollreveal/.ignore/sandbox/server.sandbox.js +11 -0
  314. data/_assets/yarn/scrollreveal/.npmignore +8 -0
  315. data/_assets/yarn/scrollreveal/CHANGELOG.md +268 -0
  316. data/_assets/yarn/scrollreveal/LICENSE.md +12 -0
  317. data/_assets/yarn/scrollreveal/README.md +413 -0
  318. data/_assets/yarn/scrollreveal/bower.json +24 -0
  319. data/_assets/yarn/scrollreveal/dist/scrollreveal.js +860 -0
  320. data/_assets/yarn/scrollreveal/dist/scrollreveal.min.js +1 -0
  321. data/_assets/yarn/scrollreveal/gulpfile.js +33 -0
  322. data/_assets/yarn/scrollreveal/lib/gulp/gulp-clean.js +7 -0
  323. data/_assets/yarn/scrollreveal/lib/gulp/gulp-dev.js +6 -0
  324. data/_assets/yarn/scrollreveal/lib/gulp/gulp-dist-min.js +19 -0
  325. data/_assets/yarn/scrollreveal/lib/gulp/gulp-dist.js +6 -0
  326. data/_assets/yarn/scrollreveal/lib/gulp/gulp-server.js +9 -0
  327. data/_assets/yarn/scrollreveal/lib/gulp/gulp-validate-bower.js +13 -0
  328. data/_assets/yarn/scrollreveal/lib/gulp/gulp-watch.js +6 -0
  329. data/_assets/yarn/scrollreveal/src/scrollreveal.js +860 -0
  330. data/_assets/yarn/throttle-debounce-fn/.jscsrc +5 -0
  331. data/_assets/yarn/throttle-debounce-fn/.jshintrc +13 -0
  332. data/_assets/yarn/throttle-debounce-fn/.npmignore +1 -0
  333. data/_assets/yarn/throttle-debounce-fn/Gruntfile.js +76 -0
  334. data/_assets/yarn/throttle-debounce-fn/LICENSE.md +22 -0
  335. data/_assets/yarn/throttle-debounce-fn/README.md +55 -0
  336. data/_assets/yarn/throttle-debounce-fn/dist/throttle-debounce-fn.js +164 -0
  337. data/_assets/yarn/throttle-debounce-fn/dist/throttle-debounce-fn.min.js +10 -0
  338. data/_assets/yarn/throttle-debounce-fn/package.json +36 -0
  339. data/_assets/yarn/throttle-debounce-fn/src/throttle-debounce-fn.js +156 -0
  340. data/_assets/yarn/turbolinks/LICENSE +20 -0
  341. data/_assets/yarn/turbolinks/README.md +473 -0
  342. data/_assets/yarn/turbolinks/dist/turbolinks.js +6 -0
  343. data/_assets/yarn/turbolinks/src/turbolinks/BANNER.js.erb +4 -0
  344. data/_assets/yarn/turbolinks/src/turbolinks/VERSION +1 -0
  345. data/_assets/yarn/turbolinks/src/turbolinks/browser_adapter.coffee +61 -0
  346. data/_assets/yarn/turbolinks/src/turbolinks/compatibility.coffee +30 -0
  347. data/_assets/yarn/turbolinks/src/turbolinks/controller.coffee +239 -0
  348. data/_assets/yarn/turbolinks/src/turbolinks/error_renderer.coffee +21 -0
  349. data/_assets/yarn/turbolinks/src/turbolinks/head_details.coffee +51 -0
  350. data/_assets/yarn/turbolinks/src/turbolinks/helpers.coffee +57 -0
  351. data/_assets/yarn/turbolinks/src/turbolinks/history.coffee +48 -0
  352. data/_assets/yarn/turbolinks/src/turbolinks/http_request.coffee +88 -0
  353. data/_assets/yarn/turbolinks/src/turbolinks/index.coffee +18 -0
  354. data/_assets/yarn/turbolinks/src/turbolinks/location.coffee +70 -0
  355. data/_assets/yarn/turbolinks/src/turbolinks/progress_bar.coffee +83 -0
  356. data/_assets/yarn/turbolinks/src/turbolinks/renderer.coffee +27 -0
  357. data/_assets/yarn/turbolinks/src/turbolinks/scroll_manager.coffee +28 -0
  358. data/_assets/yarn/turbolinks/src/turbolinks/snapshot.coffee +47 -0
  359. data/_assets/yarn/turbolinks/src/turbolinks/snapshot_cache.coffee +43 -0
  360. data/_assets/yarn/turbolinks/src/turbolinks/snapshot_renderer.coffee +88 -0
  361. data/_assets/yarn/turbolinks/src/turbolinks/start.coffee +18 -0
  362. data/_assets/yarn/turbolinks/src/turbolinks/view.coffee +34 -0
  363. data/_assets/yarn/turbolinks/src/turbolinks/visit.coffee +162 -0
  364. data/_assets/yarn/webfontloader/CHANGELOG +419 -0
  365. data/_assets/yarn/webfontloader/LICENSE +176 -0
  366. data/_assets/yarn/webfontloader/README.md +394 -0
  367. data/_assets/yarn/webfontloader/package.json +37 -0
  368. data/_assets/yarn/webfontloader/src/closure.js +2 -0
  369. data/_assets/yarn/webfontloader/src/core/cssclassname.js +46 -0
  370. data/_assets/yarn/webfontloader/src/core/domhelper.js +405 -0
  371. data/_assets/yarn/webfontloader/src/core/eventdispatcher.js +195 -0
  372. data/_assets/yarn/webfontloader/src/core/font.js +140 -0
  373. data/_assets/yarn/webfontloader/src/core/fontmodule.js +16 -0
  374. data/_assets/yarn/webfontloader/src/core/fontmoduleloader.js +47 -0
  375. data/_assets/yarn/webfontloader/src/core/fontruler.js +60 -0
  376. data/_assets/yarn/webfontloader/src/core/fontwatcher.js +171 -0
  377. data/_assets/yarn/webfontloader/src/core/fontwatchrunner.js +249 -0
  378. data/_assets/yarn/webfontloader/src/core/initialize.js +97 -0
  379. data/_assets/yarn/webfontloader/src/core/nativefontwatchrunner.js +69 -0
  380. data/_assets/yarn/webfontloader/src/core/stylesheetwaiter.js +48 -0
  381. data/_assets/yarn/webfontloader/src/core/webfont.js +97 -0
  382. data/_assets/yarn/webfontloader/src/modules/custom.js +63 -0
  383. data/_assets/yarn/webfontloader/src/modules/fontdeck.js +66 -0
  384. data/_assets/yarn/webfontloader/src/modules/google/fontapiparser.js +181 -0
  385. data/_assets/yarn/webfontloader/src/modules/google/fontapiurlbuilder.js +77 -0
  386. data/_assets/yarn/webfontloader/src/modules/google/googlefontapi.js +54 -0
  387. data/_assets/yarn/webfontloader/src/modules/monotype.js +110 -0
  388. data/_assets/yarn/webfontloader/src/modules/typekit.js +73 -0
  389. data/_assets/yarn/webfontloader/webfontloader.js +17 -0
  390. data/_includes/footer.html +7 -0
  391. data/_includes/head.html +41 -0
  392. data/_includes/image.html +5 -0
  393. data/_includes/javascript.html +1 -0
  394. data/_includes/javascripts.html +19 -0
  395. data/_includes/navigation.html +75 -0
  396. data/_includes/stylesheet.html +1 -0
  397. data/_layouts/articles_by_tag.html +38 -0
  398. data/_layouts/default.html +16 -0
  399. data/_layouts/post.html +65 -0
  400. data/about.html +18 -0
  401. data/favicon.ico +0 -0
  402. data/feed.xml +20 -0
  403. data/index.html +49 -0
  404. data/robots.txt +5 -0
  405. metadata +596 -0
@@ -0,0 +1,11 @@
1
+ var liveServer = require('live-server');
2
+
3
+ var params = {
4
+ logLevel: 2,
5
+ port: 9001,
6
+ root: './.ignore/coverage/PhantomJS 2.1.1 (Mac OS X 0.0.0)/lcov-report',
7
+ open: false,
8
+ wait: 500,
9
+ };
10
+
11
+ liveServer.start(params);
@@ -0,0 +1,32 @@
1
+ html {
2
+ padding: 0;
3
+ margin: 0;
4
+ }
5
+
6
+ .noir { background-color: #0E141F; }
7
+ .yellow { background-color: #FFCB36; }
8
+ .orange { background-color: #FF7C35; }
9
+ .red { background-color: #E31D65; }
10
+ .green { background-color: #25A954; }
11
+ .blue { background-color: #007D97; }
12
+ .purple { background-color: #553AB8; }
13
+
14
+ body {
15
+ padding: 40px;
16
+ margin: 0;
17
+ }
18
+
19
+ .blocks {
20
+ list-style: none;
21
+ margin: 0;
22
+ padding: 0;
23
+ }
24
+
25
+ .blocks li {
26
+ height: 80px;
27
+ border-radius: 3px;
28
+ }
29
+
30
+ .blocks li:not(:last-child) {
31
+ margin-bottom: 40px;
32
+ }
@@ -0,0 +1,68 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Sandbox</title>
6
+ <link rel="stylesheet" href="./css/styles.css">
7
+ <style>
8
+ html {
9
+ overflow-x: hidden;
10
+ }
11
+ .blocks li {
12
+ visibility: hidden;
13
+ }
14
+ </style>
15
+ </head>
16
+ <body class="noir">
17
+ <ul class="blocks">
18
+ <li class="red"></li>
19
+ <li class="orange"></li>
20
+ <li class="yellow"></li>
21
+ <li class="green"></li>
22
+ <li class="blue"></li>
23
+ <li class="purple"></li>
24
+ <li class="red"></li>
25
+ <li class="orange"></li>
26
+ <li class="yellow"></li>
27
+ <li class="green"></li>
28
+ <li class="blue"></li>
29
+ <li class="purple"></li>
30
+ <li class="red"></li>
31
+ <li class="orange"></li>
32
+ <li class="yellow"></li>
33
+ <li class="green"></li>
34
+ <li class="blue"></li>
35
+ <li class="purple"></li>
36
+ <li class="red"></li>
37
+ <li class="orange"></li>
38
+ <li class="yellow"></li>
39
+ <li class="green"></li>
40
+ <li class="blue"></li>
41
+ <li class="purple"></li>
42
+ </ul>
43
+ <script src="./js/scrollreveal.js"></script>
44
+ <script>
45
+
46
+ const sr = new ScrollReveal();
47
+ const config = {
48
+ distance: '100%',
49
+ duration: 600,
50
+ origin: 'right',
51
+ scale: 0.7,
52
+ // delay: 2000,
53
+ // useDelay: 'onload',
54
+ // reset: true,
55
+ // beforeReveal: (e) => console.log('BEFORE revealed'),
56
+ // beforeReset: (e) => console.log('BEFORE reset'),
57
+ // afterReveal: (e) => console.log('AFTER revealed'),
58
+ // afterReset: (e) => console.log('AFTER reset'),
59
+ // rotate: { z: 5 },
60
+ // container: 'ul.blocks',
61
+ opacity: null,
62
+ // desktop: false,
63
+ }
64
+ sr.reveal('.blocks li', config, 60);
65
+
66
+ </script>
67
+ </body>
68
+ </html>
@@ -0,0 +1,1271 @@
1
+ var ScrollReveal = (function () {
2
+ 'use strict';
3
+
4
+ var defaults = {
5
+ origin: 'bottom',
6
+ distance: '0',
7
+ duration: 600,
8
+ delay: 0,
9
+ rotate: {
10
+ x: 0,
11
+ y: 0,
12
+ z: 0,
13
+ },
14
+ opacity: 0,
15
+ scale: 1,
16
+ easing: 'cubic-bezier(0.6, 0.2, 0.1, 1)',
17
+ container: document.documentElement,
18
+ desktop: true,
19
+ mobile: true,
20
+ reset: false,
21
+ useDelay: 'always',
22
+ viewFactor: 0.0,
23
+ viewOffset: {
24
+ top: 0,
25
+ right: 0,
26
+ bottom: 0,
27
+ left: 0,
28
+ },
29
+ beforeReveal: function beforeReveal () {},
30
+ beforeReset: function beforeReset () {},
31
+ afterReveal: function afterReveal () {},
32
+ afterReset: function afterReset () {},
33
+ };
34
+
35
+ var noop = {
36
+ clean: function clean () {},
37
+ destroy: function destroy () {},
38
+ reveal: function reveal () {},
39
+ sync: function sync () {},
40
+ get noop () { return true },
41
+ };
42
+
43
+ function deepAssign (target) {
44
+ var sources = [], len = arguments.length - 1;
45
+ while ( len-- > 0 ) sources[ len ] = arguments[ len + 1 ];
46
+
47
+ if (isObject(target)) {
48
+ each(sources, function (source) {
49
+ each(source, function (data, key) {
50
+ if (isObject(data)) {
51
+ if (!target[key] || !isObject(target[key])) {
52
+ target[key] = {};
53
+ }
54
+ deepAssign(target[key], data);
55
+ } else {
56
+ target[key] = data;
57
+ }
58
+ });
59
+ });
60
+ return target
61
+ } else {
62
+ throw new TypeError('Expected an object literal.')
63
+ }
64
+ }
65
+
66
+
67
+ function isObject (object) {
68
+ return object !== null && typeof object === 'object'
69
+ && (object.constructor === Object || Object.prototype.toString.call(object) === '[object Object]')
70
+ }
71
+
72
+
73
+ function each (collection, callback) {
74
+ if (isObject(collection)) {
75
+ var keys = Object.keys(collection);
76
+ for (var i = 0; i < keys.length; i++) {
77
+ callback(collection[ keys[i] ], keys[i], collection);
78
+ }
79
+ } else if (Array.isArray(collection)) {
80
+ for (var i$1 = 0; i$1 < collection.length; i$1++) {
81
+ callback(collection[i$1], i$1, collection);
82
+ }
83
+ } else {
84
+ throw new TypeError('Expected either an array or object literal.')
85
+ }
86
+ }
87
+
88
+
89
+ var nextUniqueId = (function () {
90
+ var uid = 0;
91
+ return function () { return uid++; }
92
+ })();
93
+
94
+ var getPrefixedStyleProperty = (function () {
95
+ var properties = {};
96
+ var style = document.documentElement.style;
97
+
98
+ function getPrefixedStyleProperty (name, source) {
99
+ if ( source === void 0 ) source = style;
100
+
101
+ if (name && typeof name === 'string') {
102
+ if (properties[name]) {
103
+ return properties[name]
104
+ }
105
+ if (typeof source[name] === 'string') {
106
+ return properties[name] = name
107
+ }
108
+ if (typeof source[("-webkit-" + name)] === 'string') {
109
+ return properties[name] = "-webkit-" + name
110
+ }
111
+ throw new RangeError(("Unable to find \"" + name + "\" style property."))
112
+ }
113
+ throw new TypeError('Expected a string.')
114
+ }
115
+
116
+ getPrefixedStyleProperty.clearCache = function () { return properties = {}; };
117
+
118
+ return getPrefixedStyleProperty
119
+ })();
120
+
121
+
122
+ function isMobile (agent) {
123
+ if ( agent === void 0 ) agent = navigator.userAgent;
124
+
125
+ return /Android|iPhone|iPad|iPod/i.test(agent)
126
+ }
127
+
128
+
129
+ function isNode (target) {
130
+ return typeof window.Node === 'object'
131
+ ? target instanceof window.Node
132
+ : target !== null
133
+ && typeof target === 'object'
134
+ && typeof target.nodeType === 'number'
135
+ && typeof target.nodeName === 'string'
136
+ }
137
+
138
+
139
+ function isNodeList (target) {
140
+ var prototypeToString = Object.prototype.toString.call(target);
141
+ var regex = /^\[object (HTMLCollection|NodeList|Object)\]$/;
142
+
143
+ return typeof window.NodeList === 'object'
144
+ ? target instanceof window.NodeList
145
+ : typeof target === 'object'
146
+ && typeof target.length === 'number'
147
+ && regex.test(prototypeToString)
148
+ && (target.length === 0 || isNode(target[0]))
149
+ }
150
+
151
+
152
+ function transformSupported () {
153
+ var style = document.documentElement.style;
154
+ return 'transform' in style || 'WebkitTransform' in style
155
+ }
156
+
157
+
158
+ function transitionSupported () {
159
+ var style = document.documentElement.style;
160
+ return 'transition' in style || 'WebkitTransition' in style
161
+ }
162
+
163
+ function isElementVisible (element) {
164
+ var container = this.store.containers[element.containerId];
165
+ var viewFactor = element.config.viewFactor;
166
+ var viewOffset = element.config.viewOffset;
167
+
168
+ var elementBounds = {
169
+ top: element.geometry.bounds.top + element.geometry.height * viewFactor,
170
+ right: element.geometry.bounds.right - element.geometry.width * viewFactor,
171
+ bottom: element.geometry.bounds.bottom - element.geometry.height * viewFactor,
172
+ left: element.geometry.bounds.left + element.geometry.width * viewFactor,
173
+ };
174
+
175
+ var containerBounds = {
176
+ top: container.geometry.bounds.top + container.scroll.top + viewOffset.top,
177
+ right: container.geometry.bounds.right + container.scroll.left + viewOffset.right,
178
+ bottom: container.geometry.bounds.bottom + container.scroll.top + viewOffset.bottom,
179
+ left: container.geometry.bounds.left + container.scroll.left + viewOffset.left,
180
+ };
181
+
182
+ return elementBounds.top < containerBounds.bottom
183
+ && elementBounds.right > containerBounds.left
184
+ && elementBounds.bottom > containerBounds.top
185
+ && elementBounds.left < containerBounds.right
186
+ || element.styles.position === 'fixed'
187
+ }
188
+
189
+
190
+ function getGeometry (target, isContainer) {
191
+ /**
192
+ * We want to ignore padding and scrollbars for container elements.
193
+ * More information here: https://goo.gl/vOZpbz
194
+ */
195
+ var height = (isContainer) ? target.node.clientHeight : target.node.offsetHeight;
196
+ var width = (isContainer) ? target.node.clientWidth : target.node.offsetWidth;
197
+
198
+ var offsetTop = 0;
199
+ var offsetLeft = 0;
200
+ var node = target.node;
201
+
202
+ do {
203
+ if (!isNaN(node.offsetTop)) {
204
+ offsetTop += node.offsetTop;
205
+ }
206
+ if (!isNaN(node.offsetLeft)) {
207
+ offsetLeft += node.offsetLeft;
208
+ }
209
+ node = node.offsetParent;
210
+ } while (node)
211
+
212
+ return {
213
+ bounds: {
214
+ top: offsetTop,
215
+ right: offsetLeft + width,
216
+ bottom: offsetTop + height,
217
+ left: offsetLeft,
218
+ },
219
+ height: height,
220
+ width: width,
221
+ }
222
+ }
223
+
224
+
225
+ function getNode (target, container) {
226
+ if ( container === void 0 ) container = document;
227
+
228
+ var node = null;
229
+ if (typeof target === 'string') {
230
+ try {
231
+ node = container.querySelector(target);
232
+ if (!node) { logger(("Querying the selector \"" + target + "\" returned nothing.")); }
233
+ } catch (err) {
234
+ logger(("\"" + target + "\" is not a valid selector."));
235
+ }
236
+ }
237
+ return isNode(target) ? target : node
238
+ }
239
+
240
+
241
+ function getNodes (target, container) {
242
+ if ( container === void 0 ) container = document;
243
+
244
+ if (isNode(target)) { return [target] }
245
+ if (isNodeList(target)) { return Array.prototype.slice.call(target) }
246
+ if (typeof target === 'string') {
247
+ try {
248
+ var query = container.querySelectorAll(target);
249
+ var nodes = Array.prototype.slice.call(query);
250
+ if (nodes.length) { return nodes }
251
+ logger(("Querying the selector \"" + target + "\" returned nothing."));
252
+ } catch (error) {
253
+ logger(("\"" + target + "\" is not a valid selector."));
254
+ }
255
+ }
256
+ return []
257
+ }
258
+
259
+
260
+ function getScrolled (container) {
261
+ return (container.node === document.documentElement)
262
+ ? {
263
+ top: window.pageYOffset,
264
+ left: window.pageXOffset,
265
+ } : {
266
+ top: container.node.scrollTop,
267
+ left: container.node.scrollLeft,
268
+ }
269
+ }
270
+
271
+
272
+ function logger (message) {
273
+ var details = [], len = arguments.length - 1;
274
+ while ( len-- > 0 ) details[ len ] = arguments[ len + 1 ];
275
+
276
+ if (console) {
277
+ var report = "ScrollReveal: " + message;
278
+ details.forEach(function (detail) { return report += "\n - " + detail; });
279
+ console.log(report); // eslint-disable-line no-console
280
+ }
281
+ }
282
+
283
+ function rinse () {
284
+ var this$1 = this;
285
+
286
+
287
+ var elementIds = {
288
+ active: [],
289
+ stale: [],
290
+ };
291
+
292
+ var containerIds = {
293
+ active: [],
294
+ stale: [],
295
+ };
296
+
297
+ var sequenceIds = {
298
+ active: [],
299
+ stale: [],
300
+ };
301
+
302
+ /**
303
+ * Take stock of active element IDs.
304
+ */
305
+ each(getNodes('[data-sr-id]'), function (node) {
306
+ var id = parseInt(node.getAttribute('data-sr-id'));
307
+ elementIds.active.push(id);
308
+ });
309
+
310
+ /**
311
+ * Destroy stale elements.
312
+ */
313
+ each(this.store.elements, function (element) {
314
+ if (elementIds.active.indexOf(element.id) === -1) {
315
+ elementIds.stale.push(element.id);
316
+ }
317
+ });
318
+
319
+ each(elementIds.stale, function (staleId) { return delete this$1.store.elements[staleId]; });
320
+
321
+ /**
322
+ * Take stock of active container and sequence IDs.
323
+ */
324
+ each(this.store.elements, function (element) {
325
+ if (containerIds.active.indexOf(element.containerId) === -1) {
326
+ containerIds.active.push(element.containerId);
327
+ }
328
+ if (element.hasOwnProperty('sequence')) {
329
+ if (sequenceIds.active.indexOf(element.sequence.id) === -1) {
330
+ sequenceIds.active.push(element.sequence.id);
331
+ }
332
+ }
333
+ });
334
+
335
+ /**
336
+ * Destroy stale containers.
337
+ */
338
+ each(this.store.containers, function (container) {
339
+ if (containerIds.active.indexOf(container.id) === -1) {
340
+ containerIds.stale.push(container.id);
341
+ }
342
+ });
343
+
344
+ each(containerIds.stale, function (staleId) {
345
+ this$1.store.containers[staleId].node.removeEventListener('scroll', this$1.delegate);
346
+ this$1.store.containers[staleId].node.removeEventListener('resize', this$1.delegate);
347
+ delete this$1.store.containers[staleId];
348
+ });
349
+
350
+ /**
351
+ * Destroy stale sequences.
352
+ */
353
+ each(this.store.sequences, function (sequence) {
354
+ if (sequenceIds.active.indexOf(sequence.id) === -1) {
355
+ sequenceIds.stale.push(sequence.id);
356
+ }
357
+ });
358
+
359
+ each(sequenceIds.stale, function (staleId) { return delete this$1.store.sequences[staleId]; });
360
+ }
361
+
362
+ function clean (target) {
363
+ var this$1 = this;
364
+
365
+
366
+ var dirty;
367
+
368
+ each(getNodes(target), function (node) {
369
+ var id = node.getAttribute('data-sr-id');
370
+ if (id !== null) {
371
+ dirty = true;
372
+ node.setAttribute('style', this$1.store.elements[id].styles.inline);
373
+ node.removeAttribute('data-sr-id');
374
+ delete this$1.store.elements[id];
375
+ }
376
+ });
377
+
378
+ if (dirty) { rinse.call(this); }
379
+ }
380
+
381
+ function destroy () {
382
+ var this$1 = this;
383
+
384
+
385
+ /**
386
+ * Remove all generated styles and element ids
387
+ */
388
+ each(this.store.elements, function (element) {
389
+ element.node.setAttribute('style', element.styles.inline);
390
+ element.node.removeAttribute('data-sr-id');
391
+ });
392
+
393
+ /**
394
+ * Remove all event listeners.
395
+ */
396
+ each(this.store.containers, function (container) {
397
+ if (container.node === document.documentElement) {
398
+ window.removeEventListener('scroll', this$1.delegate);
399
+ window.removeEventListener('resize', this$1.delegate);
400
+ } else {
401
+ container.node.removeEventListener('scroll', this$1.delegate);
402
+ container.node.removeEventListener('resize', this$1.delegate);
403
+ }
404
+ });
405
+
406
+ /**
407
+ * Clear all data from the store
408
+ */
409
+ this.store = {
410
+ containers: {},
411
+ elements: {},
412
+ history: [],
413
+ sequences: {},
414
+ };
415
+ }
416
+
417
+ /* @license Redpill v0.4.1
418
+
419
+ Copyright (c) 2017, Fisssion LLC
420
+
421
+ Permission is hereby granted, free of charge, to any person obtaining a copy
422
+ of this software and associated documentation files (the "Software"), to deal
423
+ in the Software without restriction, including without limitation the rights
424
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
425
+ copies of the Software, and to permit persons to whom the Software is
426
+ furnished to do so, subject to the following conditions:
427
+
428
+ The above copyright notice and this permission notice shall be included in
429
+ all copies or substantial portions of the Software.
430
+
431
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
432
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
433
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
434
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
435
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
436
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
437
+ THE SOFTWARE.
438
+ */
439
+ /**
440
+ * @module Redpill
441
+ */
442
+
443
+ /**
444
+ * Transformation matrices in the browser come in two flavors:
445
+ *
446
+ * - `matrix` using 6 values (short)
447
+ * - `matrix3d` using 16 values (long)
448
+ *
449
+ * This utility follows this [conversion guide](https://goo.gl/EJlUQ1)
450
+ * to expand short form matrices to their equivalent long form.
451
+ *
452
+ * @param {array} source - Accepts both short and long form matrices.
453
+ * @return {array}
454
+ */
455
+ function format (source) {
456
+ if (source.constructor !== Array) {
457
+ throw new TypeError('Expected array.')
458
+ }
459
+ if (source.length === 16) {
460
+ return source
461
+ }
462
+ if (source.length === 6) {
463
+ var matrix = identity();
464
+ matrix[0] = source[0];
465
+ matrix[1] = source[1];
466
+ matrix[4] = source[2];
467
+ matrix[5] = source[3];
468
+ matrix[12] = source[4];
469
+ matrix[13] = source[5];
470
+ return matrix
471
+ }
472
+ throw new RangeError('Expected array with either 6 or 16 values.')
473
+ }
474
+
475
+
476
+ /**
477
+ * Returns a matrix representing no transformation. The product of any matrix
478
+ * multiplied by the identity matrix will be the original matrix.
479
+ *
480
+ * > **Tip:** Similar to how `5 * 1 === 5`, where `1` is the identity number.
481
+ *
482
+ * @return {array}
483
+ */
484
+ function identity () {
485
+ var matrix = [];
486
+ for (var i = 0; i < 16; i++) {
487
+ i % 5 == 0 ? matrix.push(1) : matrix.push(0);
488
+ }
489
+ return matrix
490
+ }
491
+
492
+
493
+ /**
494
+ * Returns a 4x4 matrix describing the combined transformations
495
+ * of both arguments.
496
+ *
497
+ * > **Note:** Order is very important. For example, rotating 90°
498
+ * along the Z-axis, followed by translating 500 pixels along the
499
+ * Y-axis... is not the same as translating 500 pixels along the
500
+ * Y-axis, followed by rotating 45° along on the Z-axis.
501
+ *
502
+ * @param {array} m1 - Accepts both short and long form matrices.
503
+ * @param {array} m2 - Accepts both short and long form matrices.
504
+ * @return {array}
505
+ */
506
+ function multiply (m1, m2) {
507
+ var fm1 = format(m1);
508
+ var fm2 = format(m2);
509
+ var product = [];
510
+
511
+ for (var i = 0; i < 4; i++) {
512
+ var row = [fm1[i], fm1[i + 4], fm1[i + 8], fm1[i + 12]];
513
+ for (var j = 0; j < 4; j++) {
514
+ var k = j * 4;
515
+ var col = [fm2[k], fm2[k + 1], fm2[k + 2], fm2[k + 3]];
516
+ var result = row[0] * col[0] + row[1] * col[1] + row[2] * col[2] + row[3] * col[3];
517
+
518
+ product[i + k] = result;
519
+ }
520
+ }
521
+
522
+ return product
523
+ }
524
+
525
+
526
+ /**
527
+ * Attempts to returns a 4x4 matrix describing the CSS transform matrix passed
528
+ * in, but will return the identity matrix as a fallback.
529
+ *
530
+ * **Tip:** In virtually all cases, this method is used to convert a CSS matrix
531
+ * (retrieved as a `string` from computed styles) to its equivalent array format.
532
+ *
533
+ * @param {string} source - String containing a valid CSS `matrix` or `matrix3d` property.
534
+ * @return {array}
535
+ */
536
+ function parse (source) {
537
+ if (typeof source === 'string') {
538
+ var match = source.match(/matrix(3d)?\(([^)]+)\)/);
539
+ if (match) {
540
+ var raw = match[2].split(', ').map(function (value) { return parseFloat(value); });
541
+ return format(raw)
542
+ }
543
+ }
544
+ return identity()
545
+ }
546
+
547
+
548
+ /**
549
+ * Returns a 4x4 matrix describing X-axis rotation.
550
+ *
551
+ * @param {number} angle - Measured in degrees.
552
+ * @return {array}
553
+ */
554
+ function rotateX (angle) {
555
+ var theta = Math.PI / 180 * angle;
556
+ var matrix = identity();
557
+
558
+ matrix[5] = matrix[10] = Math.cos(theta);
559
+ matrix[6] = matrix[9] = Math.sin(theta);
560
+ matrix[9] *= -1;
561
+
562
+ return matrix
563
+ }
564
+
565
+
566
+ /**
567
+ * Returns a 4x4 matrix describing Y-axis rotation.
568
+ *
569
+ * @param {number} angle - Measured in degrees.
570
+ * @return {array}
571
+ */
572
+ function rotateY (angle) {
573
+ var theta = Math.PI / 180 * angle;
574
+ var matrix = identity();
575
+
576
+ matrix[0] = matrix[10] = Math.cos(theta);
577
+ matrix[2] = matrix[8] = Math.sin(theta);
578
+ matrix[2] *= -1;
579
+
580
+ return matrix
581
+ }
582
+
583
+
584
+ /**
585
+ * Returns a 4x4 matrix describing Z-axis rotation.
586
+ *
587
+ * @param {number} angle - Measured in degrees.
588
+ * @return {array}
589
+ */
590
+ function rotateZ (angle) {
591
+ var theta = Math.PI / 180 * angle;
592
+ var matrix = identity();
593
+
594
+ matrix[0] = matrix[5] = Math.cos(theta);
595
+ matrix[1] = matrix[4] = Math.sin(theta);
596
+ matrix[4] *= -1;
597
+
598
+ return matrix
599
+ }
600
+
601
+
602
+ /**
603
+ * Returns a 4x4 matrix describing 2D scaling. The first argument
604
+ * is used for both X and Y-axis scaling, unless an optional
605
+ * second argument is provided to explicitly define Y-axis scaling.
606
+ *
607
+ * @param {number} scalarX - Decimal multiplier.
608
+ * @param {number} [scalarY] - Decimal multiplier.
609
+ * @return {array}
610
+ */
611
+ function scale (scalarX, scalarY) {
612
+ var matrix = identity();
613
+ matrix[0] = scalarX;
614
+ matrix[5] = scalarY || scalarX;
615
+ return matrix
616
+ }
617
+
618
+
619
+ /**
620
+ * Returns a 4x4 matrix describing X-axis translation.
621
+ *
622
+ * @param {number} distance - Measured in pixels.
623
+ * @return {array}
624
+ */
625
+ function translateX (distance) {
626
+ var matrix = identity();
627
+ matrix[12] = distance;
628
+ return matrix
629
+ }
630
+
631
+
632
+ /**
633
+ * Returns a 4x4 matrix describing Y-axis translation.
634
+ *
635
+ * @param {number} distance - Measured in pixels.
636
+ * @return {array}
637
+ */
638
+ function translateY (distance) {
639
+ var matrix = identity();
640
+ matrix[13] = distance;
641
+ return matrix
642
+ }
643
+
644
+ function style (element) {
645
+ var computed = window.getComputedStyle(element.node);
646
+ var position = computed.position;
647
+ var config = element.config;
648
+
649
+ /**
650
+ * Generate inline styles
651
+ */
652
+ var inlineRegex = /.+[^;]/g;
653
+ var inlineStyle = element.node.getAttribute('style') || '';
654
+ var inlineMatch = inlineRegex.exec(inlineStyle);
655
+
656
+ var inline = (inlineMatch) ? ((inlineMatch[0]) + ";") : '';
657
+ if (inline.indexOf('visibility: visible') === -1) {
658
+ inline += (inline.length) ? ' ' : '';
659
+ inline += 'visibility: visible;';
660
+ }
661
+
662
+ /**
663
+ * Generate opacity styles
664
+ */
665
+ var computedOpacity = parseFloat(computed.opacity);
666
+ var configOpacity = !isNaN(parseFloat(config.opacity))
667
+ ? parseFloat(config.opacity)
668
+ : parseFloat(computed.opacity);
669
+
670
+ var opacity = {
671
+ computed: (computedOpacity !== configOpacity) ? ("opacity: " + computedOpacity + ";") : '',
672
+ generated: (computedOpacity !== configOpacity) ? ("opacity: " + configOpacity + ";") : '',
673
+ };
674
+
675
+ /**
676
+ * Generate transformation styles
677
+ */
678
+ var transformations = [];
679
+
680
+ if (parseFloat(config.distance)) {
681
+ var axis = (config.origin === 'top' || config.origin === 'bottom') ? 'Y' : 'X';
682
+
683
+ /**
684
+ * Let’s make sure our our pixel distances are negative for top and left.
685
+ * e.g. { origin: 'top', distance: '25px' } starts at `top: -25px` in CSS.
686
+ */
687
+ var distance = config.distance;
688
+ if (config.origin === 'top' || config.origin === 'left') {
689
+ distance = /^-/.test(distance)
690
+ ? distance.substr(1)
691
+ : ("-" + distance);
692
+ }
693
+
694
+ var ref = distance.match(/(^-?\d+\.?\d?)|(em$|px$|\%$)/g);
695
+ var value = ref[0];
696
+ var unit = ref[1];
697
+
698
+ switch (unit) {
699
+ case 'em':
700
+ distance = parseInt(computed.fontSize) * value;
701
+ break
702
+ case 'px':
703
+ distance = value;
704
+ break
705
+ case '%':
706
+ distance = (axis === 'Y')
707
+ ? element.node.getBoundingClientRect().height * value / 100
708
+ : element.node.getBoundingClientRect().width * value / 100;
709
+ break
710
+ default:
711
+ throw new RangeError('Unrecognized or missing distance unit.')
712
+ }
713
+
714
+ (axis === 'Y')
715
+ ? transformations.push(translateY(distance))
716
+ : transformations.push(translateX(distance));
717
+ }
718
+
719
+ if (config.rotate.x) { transformations.push(rotateX(config.rotate.x)); }
720
+ if (config.rotate.y) { transformations.push(rotateY(config.rotate.y)); }
721
+ if (config.rotate.z) { transformations.push(rotateZ(config.rotate.z)); }
722
+ if (config.scale !== 1) { transformations.push(scale(config.scale)); }
723
+
724
+ var transform = {};
725
+ if (transformations.length) {
726
+
727
+ transform.property = getPrefixedStyleProperty('transform');
728
+ /**
729
+ * The default computed transform value should be one of:
730
+ * undefined || 'none' || 'matrix()' || 'matrix3d()'
731
+ */
732
+ transform.computed = {
733
+ raw: computed[transform.property],
734
+ matrix: parse(computed[transform.property]),
735
+ };
736
+
737
+ transformations.unshift(transform.computed.matrix);
738
+ var product = transformations.reduce(multiply);
739
+
740
+ transform.generated = {
741
+ initial: ((transform.property) + ": matrix3d(" + (product.join(', ')) + ");"),
742
+ final: ((transform.property) + ": matrix3d(" + (transform.computed.matrix.join(', ')) + ");"),
743
+ };
744
+ } else {
745
+ transform.generated = {
746
+ initial: '',
747
+ final: '',
748
+ };
749
+ }
750
+
751
+ /**
752
+ * Generate transition styles
753
+ */
754
+ var transition = {};
755
+ if (opacity.generated || transform.generated.initial) {
756
+
757
+ transition.property = getPrefixedStyleProperty('transition');
758
+ transition.computed = computed[transition.property];
759
+ transition.fragments = [];
760
+
761
+ var delay = config.delay;
762
+ var duration = config.duration;
763
+ var easing = config.easing;
764
+
765
+ if (opacity.generated) {
766
+ transition.fragments.push({
767
+ delayed: ("opacity " + (duration / 1000) + "s " + easing + " " + (delay / 1000) + "s"),
768
+ instant: ("opacity " + (duration / 1000) + "s " + easing + " 0s"),
769
+ });
770
+ }
771
+
772
+ if (transform.generated.initial) {
773
+ transition.fragments.push({
774
+ delayed: ((transform.property) + " " + (duration / 1000) + "s " + easing + " " + (delay / 1000) + "s"),
775
+ instant: ((transform.property) + " " + (duration / 1000) + "s " + easing + " 0s"),
776
+ });
777
+ }
778
+
779
+ /**
780
+ * The default computed transition property should be one of:
781
+ * undefined || '' || 'all 0s ease 0s' || 'all 0s 0s cubic-bezier()'
782
+ */
783
+ if (transition.computed && !transition.computed.match(/all 0s/)) {
784
+ transition.fragments.unshift({
785
+ delayed: transition.computed,
786
+ instant: transition.computed,
787
+ });
788
+ }
789
+
790
+ var composed = transition.fragments.reduce(function (composition, fragment, i) {
791
+ composition.delayed += (i === 0) ? fragment.delayed : (", " + (fragment.delayed));
792
+ composition.instant += (i === 0) ? fragment.instant : (", " + (fragment.instant));
793
+ return composition
794
+ }, {
795
+ delayed: '',
796
+ instant: '',
797
+ });
798
+
799
+ transition.generated = {
800
+ delayed: ((transition.property) + ": " + (composed.delayed) + ";"),
801
+ instant: ((transition.property) + ": " + (composed.instant) + ";"),
802
+ };
803
+ }
804
+
805
+ return {
806
+ inline: inline,
807
+ opacity: opacity,
808
+ position: position,
809
+ transform: transform,
810
+ transition: transition,
811
+ }
812
+ }
813
+
814
+ function initialize () {
815
+ var this$1 = this;
816
+
817
+
818
+ rinse.call(this);
819
+
820
+ each(this.store.elements, function (element) {
821
+ var styles = [element.styles.inline];
822
+
823
+ if (element.visible) {
824
+ styles.push(element.styles.opacity.computed);
825
+ styles.push(element.styles.transform.generated.final);
826
+ } else {
827
+ styles.push(element.styles.opacity.generated);
828
+ styles.push(element.styles.transform.generated.initial);
829
+ }
830
+
831
+ element.node.setAttribute('style', styles.join(' '));
832
+ });
833
+
834
+ each(this.store.containers, function (container) {
835
+ if (container.node === document.documentElement) {
836
+ window.addEventListener('scroll', this$1.delegate);
837
+ window.addEventListener('resize', this$1.delegate);
838
+ } else {
839
+ container.node.addEventListener('scroll', this$1.delegate);
840
+ container.node.addEventListener('resize', this$1.delegate);
841
+ }
842
+ });
843
+
844
+ /**
845
+ * Manually invoke delegate once to capture
846
+ * element and container dimensions, container
847
+ * scroll position, and trigger any valid reveals
848
+ */
849
+ this.delegate();
850
+
851
+ this.initTimeout = null;
852
+ }
853
+
854
+ function reveal (target, options, interval, sync) {
855
+ var this$1 = this;
856
+
857
+
858
+ /**
859
+ * The reveal method has an optional 2nd parameter,
860
+ * so here we just shuffle things around to accept
861
+ * the interval being passed as the 2nd argument.
862
+ */
863
+ if (typeof options === 'number') {
864
+ interval = Math.abs(parseInt(options));
865
+ options = {};
866
+ } else {
867
+ interval = Math.abs(parseInt(interval));
868
+ options = options || {};
869
+ }
870
+
871
+ var config = deepAssign({}, this.defaults, options);
872
+ var containers = this.store.containers;
873
+ var container = getNode(config.container);
874
+ var targets = getNodes(target, container);
875
+
876
+ if (!targets.length) {
877
+ logger('Reveal aborted.', 'Reveal cannot be performed on 0 elements.');
878
+ return
879
+ }
880
+
881
+ /**
882
+ * Verify our platform matches our platform configuration.
883
+ */
884
+ if (!config.mobile && isMobile() || !config.desktop && !isMobile()) {
885
+ logger('Reveal aborted.', 'This platform has been disabled.');
886
+ return
887
+ }
888
+
889
+ /**
890
+ * Sequence intervals must be at least 16ms (60fps).
891
+ */
892
+ var sequence;
893
+ if (interval) {
894
+ if (interval >= 16) {
895
+ var sequenceId = nextUniqueId();
896
+ sequence = {
897
+ elementIds: [],
898
+ head: { index: null, blocked: false },
899
+ tail: { index: null, blocked: false },
900
+ id: sequenceId,
901
+ interval: Math.abs(interval),
902
+ };
903
+ } else {
904
+ logger('Reveal failed.', 'Sequence intervals must be at least 16 milliseconds.');
905
+ return
906
+ }
907
+ }
908
+
909
+ var containerId;
910
+ each(containers, function (storedContainer) {
911
+ if (!containerId && storedContainer.node === container) {
912
+ containerId = storedContainer.id;
913
+ }
914
+ });
915
+
916
+ if (isNaN(containerId)) {
917
+ containerId = nextUniqueId();
918
+ }
919
+
920
+ try {
921
+ var elements = targets.map(function (node) {
922
+ var element = {};
923
+ var existingId = node.getAttribute('data-sr-id');
924
+
925
+ if (existingId) {
926
+ deepAssign(element, this$1.store.elements[existingId]);
927
+
928
+ /**
929
+ * In order to prevent previously generated styles
930
+ * from throwing off the new styles, the style tag
931
+ * has to be reverted to it's pre-reveal state.
932
+ */
933
+ element.node.setAttribute('style', element.styles.inline);
934
+
935
+ } else {
936
+ element.id = nextUniqueId();
937
+ element.node = node;
938
+ element.seen = false;
939
+ element.visible = false;
940
+ }
941
+
942
+ element.config = config;
943
+ element.containerId = containerId;
944
+ element.styles = style(element);
945
+
946
+ if (sequence) {
947
+ element.sequence = {
948
+ id: sequence.id,
949
+ index: sequence.elementIds.length,
950
+ };
951
+ sequence.elementIds.push(element.id);
952
+ }
953
+
954
+ return element
955
+ });
956
+
957
+ /**
958
+ * Modifying the DOM via setAttribute needs to be handled
959
+ * separately from reading computed styles in the map above
960
+ * for the browser to batch DOM changes (limiting reflows)
961
+ */
962
+ each(elements, function (element) {
963
+ this$1.store.elements[element.id] = element;
964
+ element.node.setAttribute('data-sr-id', element.id);
965
+ });
966
+
967
+ } catch (error) {
968
+ logger('Reveal failed.', error.message);
969
+ return
970
+ }
971
+
972
+ containers[containerId] = containers[containerId] || {
973
+ id: containerId,
974
+ node: container,
975
+ };
976
+
977
+ if (sequence) {
978
+ this.store.sequences[sequence.id] = sequence;
979
+ }
980
+
981
+ /**
982
+ * If reveal wasn't invoked by sync, we want to
983
+ * make sure to add this call to the history.
984
+ */
985
+ if (!sync) {
986
+ this.store.history.push({ target: target, options: options, interval: interval });
987
+
988
+ /**
989
+ * Push initialization to the event queue, giving
990
+ * multiple reveal calls time to be interpretted.
991
+ */
992
+ if (this.initTimeout) {
993
+ window.clearTimeout(this.initTimeout);
994
+ }
995
+ this.initTimeout = window.setTimeout(initialize.bind(this), 0);
996
+ }
997
+ }
998
+
999
+ /**
1000
+ * Re-runs the reveal method for each record stored in history,
1001
+ * for capturing new content asynchronously loaded into the DOM.
1002
+ */
1003
+ function sync () {
1004
+ var this$1 = this;
1005
+
1006
+ each(this.store.history, function (record) {
1007
+ reveal.call(this$1, record.target, record.options, record.interval, true);
1008
+ });
1009
+
1010
+ initialize.call(this);
1011
+ }
1012
+
1013
+ function animate (element) {
1014
+ var this$1 = this;
1015
+
1016
+
1017
+ var isDelayed = element.config.useDelay === 'always'
1018
+ || element.config.useDelay === 'onload' && this.pristine
1019
+ || element.config.useDelay === 'once' && !element.seen;
1020
+
1021
+ var sequence = (element.sequence) ? this.store.sequences[element.sequence.id] : null;
1022
+ var styles = [element.styles.inline];
1023
+
1024
+ if (isElementVisible.call(this, element) && !element.visible) {
1025
+
1026
+ if (sequence !== null) {
1027
+ if (sequence.head.index === null && sequence.tail.index === null) {
1028
+ sequence.head.index = sequence.tail.index = element.sequence.index;
1029
+ sequence.head.blocked = sequence.tail.blocked = true;
1030
+
1031
+ } else if (sequence.head.index - 1 === element.sequence.index && !sequence.head.blocked) {
1032
+ sequence.head.index--;
1033
+ sequence.head.blocked = true;
1034
+
1035
+ } else if (sequence.tail.index + 1 === element.sequence.index && !sequence.tail.blocked) {
1036
+ sequence.tail.index++;
1037
+ sequence.tail.blocked = true;
1038
+
1039
+ } else { return }
1040
+
1041
+ window.setTimeout(function () {
1042
+ sequence.head.blocked = sequence.tail.blocked = false;
1043
+ this$1.delegate();
1044
+ }, sequence.interval);
1045
+ }
1046
+
1047
+ styles.push(element.styles.opacity.computed);
1048
+ styles.push(element.styles.transform.generated.final);
1049
+
1050
+ if (isDelayed) {
1051
+ styles.push(element.styles.transition.generated.delayed);
1052
+ } else {
1053
+ styles.push(element.styles.transition.generated.instant);
1054
+ }
1055
+
1056
+ element.seen = true;
1057
+ element.visible = true;
1058
+ registerCallbacks.call(this, element, isDelayed);
1059
+ element.node.setAttribute('style', styles.join(' '));
1060
+
1061
+ } else {
1062
+ if (!isElementVisible.call(this, element) && element.visible && element.config.reset) {
1063
+
1064
+ if (sequence) {
1065
+ if (sequence.head.index === element.sequence.index) {
1066
+ sequence.head.index++;
1067
+ } else if (sequence.tail.index === element.sequence.index) {
1068
+ sequence.tail.index--;
1069
+ } else { return }
1070
+ }
1071
+
1072
+ styles.push(element.styles.opacity.generated);
1073
+ styles.push(element.styles.transform.generated.initial);
1074
+ styles.push(element.styles.transition.generated.instant);
1075
+
1076
+ element.visible = false;
1077
+ registerCallbacks.call(this, element);
1078
+ element.node.setAttribute('style', styles.join(' '));
1079
+ }
1080
+ }
1081
+ }
1082
+
1083
+
1084
+ function registerCallbacks (element, isDelayed) {
1085
+ var this$1 = this;
1086
+
1087
+
1088
+ var duration = (isDelayed)
1089
+ ? element.config.duration + element.config.delay
1090
+ : element.config.duration;
1091
+
1092
+ var afterCallback;
1093
+ if (element.visible) {
1094
+ element.config.beforeReveal(element.node);
1095
+ afterCallback = element.config.afterReveal;
1096
+ } else {
1097
+ element.config.beforeReset(element.node);
1098
+ afterCallback = element.config.afterReset;
1099
+ }
1100
+
1101
+ var elapsed = 0;
1102
+ if (element.callbackTimer) {
1103
+ elapsed = Date.now() - element.callbackTimer.start;
1104
+ window.clearTimeout(element.callbackTimer.clock);
1105
+ }
1106
+
1107
+ element.callbackTimer = {
1108
+ start: Date.now(),
1109
+ clock: window.setTimeout(function () {
1110
+ afterCallback(element.node);
1111
+ element.callbackTimer = null;
1112
+ if (element.visible && !element.config.reset) {
1113
+ clean.call(this$1, element.node);
1114
+ }
1115
+ }, duration - elapsed),
1116
+ };
1117
+ }
1118
+
1119
+ var polyfill = (function () {
1120
+ var clock = Date.now();
1121
+
1122
+ return function (callback) {
1123
+ var currentTime = Date.now();
1124
+ if (currentTime - clock > 16) {
1125
+ clock = currentTime;
1126
+ callback(currentTime);
1127
+ } else {
1128
+ setTimeout(function () { return polyfill(callback); }, 0);
1129
+ }
1130
+ }
1131
+ })();
1132
+
1133
+
1134
+ var requestAnimationFrame = window.requestAnimationFrame
1135
+ || window.webkitRequestAnimationFrame
1136
+ || window.mozRequestAnimationFrame
1137
+ || polyfill;
1138
+
1139
+ function delegate (event) {
1140
+ var this$1 = this;
1141
+ if ( event === void 0 ) event = {};
1142
+
1143
+ requestAnimationFrame(function () {
1144
+ var containers = this$1.store.containers;
1145
+ var elements = this$1.store.elements;
1146
+
1147
+ switch (event.type) {
1148
+
1149
+ case 'scroll':
1150
+ each(containers, function (container) { return container.scroll = getScrolled.call(this$1, container); });
1151
+ each(elements, function (element) { return animate.call(this$1, element); });
1152
+ break
1153
+
1154
+ case 'resize':
1155
+ default:
1156
+ each(containers, function (container) {
1157
+ container.geometry = getGeometry.call(this$1, container, /* isContainer: */ true);
1158
+ container.scroll = getScrolled.call(this$1, container);
1159
+ });
1160
+ each(elements, function (element) {
1161
+ element.geometry = getGeometry.call(this$1, element);
1162
+ animate.call(this$1, element);
1163
+ });
1164
+ }
1165
+
1166
+ this$1.pristine = false;
1167
+ });
1168
+ }
1169
+
1170
+ var version = "4.0.0-beta.2";
1171
+
1172
+ function ScrollReveal (options) {
1173
+ if ( options === void 0 ) options = {};
1174
+
1175
+
1176
+ /**
1177
+ * Support instantiation without the `new` keyword.
1178
+ */
1179
+ if (typeof this === 'undefined' || Object.getPrototypeOf(this) !== ScrollReveal.prototype) {
1180
+ return new ScrollReveal(options)
1181
+ }
1182
+
1183
+ if (!ScrollReveal.isSupported()) {
1184
+ logger('Instantiation aborted.', 'This browser is not supported.');
1185
+ return noop
1186
+ }
1187
+
1188
+ try {
1189
+ Object.defineProperty(this, 'defaults', {
1190
+ get: (function () {
1191
+ var config = {};
1192
+ deepAssign(config, defaults, options);
1193
+ return function () { return config; }
1194
+ })(),
1195
+ });
1196
+ } catch (error) {
1197
+ logger('Instantiation failed.', 'Invalid configuration provided.', error.message);
1198
+ return noop
1199
+ }
1200
+
1201
+ var container = getNode(this.defaults.container);
1202
+ if (!container) {
1203
+ logger('Instantiation failed.', 'Invalid or missing container.');
1204
+ return noop
1205
+ }
1206
+
1207
+ if (this.defaults.mobile === isMobile() || this.defaults.desktop === !isMobile()) {
1208
+ document.documentElement.classList.add('sr');
1209
+ }
1210
+
1211
+ this.store = {
1212
+ containers: {},
1213
+ elements: {},
1214
+ history: [],
1215
+ sequences: {},
1216
+ };
1217
+
1218
+ this.pristine = true;
1219
+ this.delegate = delegate.bind(this);
1220
+
1221
+ Object.defineProperty(this, 'version', {
1222
+ get: function () { return version; },
1223
+ });
1224
+
1225
+ Object.defineProperty(this, 'noop', {
1226
+ get: function () { return false; },
1227
+ });
1228
+ }
1229
+
1230
+ ScrollReveal.isSupported = function () { return transformSupported() && transitionSupported(); };
1231
+
1232
+ ScrollReveal.prototype.clean = clean;
1233
+ ScrollReveal.prototype.destroy = destroy;
1234
+ ScrollReveal.prototype.reveal = reveal;
1235
+ ScrollReveal.prototype.sync = sync;
1236
+
1237
+ ///// ///// ///// /////
1238
+ ///// ///// ///// /////
1239
+ ///// ///// ///// /////
1240
+ ///// ///// ///// /////
1241
+ ///// ///// /////
1242
+ ///// ///// /////
1243
+ ///// ///// ///// /////
1244
+ ///// ///// ///// /////
1245
+ ///// /////
1246
+ ///// /////
1247
+ ///// ///// ///// /////
1248
+ ///// ///// ///// /////
1249
+ ///// ///// ///// /////
1250
+ ///// ///// ///// /////
1251
+
1252
+ /*!
1253
+ * ScrollReveal
1254
+ * ------------
1255
+ * Website : https://scrollreveal.com
1256
+ * Support : https://github.com/jlmakes/scrollreveal/issues
1257
+ * Author : https://twitter.com/jlmakes
1258
+ *
1259
+ * Licensed under the GNU General Public License 3.0 for
1260
+ * compatible open source projects and non-commercial use.
1261
+ *
1262
+ * For commercial sites, themes, projects, and applications,
1263
+ * keep your source code proprietary and please purchase a
1264
+ * commercial license from https://scrollreveal.com
1265
+ *
1266
+ * Copyright (c) 2014–2017 Julian Lloyd. All rights reserved.
1267
+ */
1268
+
1269
+ return ScrollReveal;
1270
+
1271
+ }());