jekyll-chalk 0.1.0 → 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 (275) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +21 -0
  3. data/README.md +89 -0
  4. data/_includes/footer.html +7 -0
  5. data/_includes/head.html +33 -0
  6. data/_includes/image.html +3 -0
  7. data/_includes/javascripts.html +21 -0
  8. data/_includes/navigation.html +75 -0
  9. data/_layouts/articles_by_tag.html +38 -0
  10. data/_layouts/default.html +16 -0
  11. data/_layouts/page.html +5 -0
  12. data/_layouts/post.html +71 -0
  13. data/assets/bower/fluidbox/.bower.json +44 -0
  14. data/assets/bower/fluidbox/Gruntfile.js +8 -0
  15. data/assets/bower/fluidbox/LICENSE.md +23 -0
  16. data/assets/bower/fluidbox/README.md +396 -0
  17. data/assets/bower/fluidbox/bower.json +35 -0
  18. data/assets/bower/fluidbox/demo/css/styles.min.css +2 -0
  19. data/assets/bower/fluidbox/demo/css/styles.min.css.map +1 -0
  20. data/assets/bower/fluidbox/demo/fonts/BLOKKRegular.eot +0 -0
  21. data/assets/bower/fluidbox/demo/fonts/BLOKKRegular.svg +233 -0
  22. data/assets/bower/fluidbox/demo/fonts/BLOKKRegular.ttf +0 -0
  23. data/assets/bower/fluidbox/demo/fonts/BLOKKRegular.woff +0 -0
  24. data/assets/bower/fluidbox/demo/fonts/fontello.eot +0 -0
  25. data/assets/bower/fluidbox/demo/fonts/fontello.svg +13 -0
  26. data/assets/bower/fluidbox/demo/fonts/fontello.ttf +0 -0
  27. data/assets/bower/fluidbox/demo/fonts/fontello.woff +0 -0
  28. data/assets/bower/fluidbox/demo/index.html +758 -0
  29. data/assets/bower/fluidbox/demo/src/css/styles.scss +1131 -0
  30. data/assets/bower/fluidbox/dist/css/fluidbox.min.css +2 -0
  31. data/assets/bower/fluidbox/dist/css/fluidbox.min.css.map +1 -0
  32. data/assets/bower/fluidbox/dist/js/jquery.fluidbox.min.js +1 -0
  33. data/assets/bower/fluidbox/grunt/aliases.yaml +20 -0
  34. data/assets/bower/fluidbox/grunt/clean.js +5 -0
  35. data/assets/bower/fluidbox/grunt/concurrent.js +33 -0
  36. data/assets/bower/fluidbox/grunt/jshint.js +10 -0
  37. data/assets/bower/fluidbox/grunt/postcss.js +47 -0
  38. data/assets/bower/fluidbox/grunt/sass.js +42 -0
  39. data/assets/bower/fluidbox/grunt/uglify.js +7 -0
  40. data/assets/bower/fluidbox/grunt/watch.js +28 -0
  41. data/assets/bower/fluidbox/index.html +8 -0
  42. data/assets/bower/fluidbox/license.txt +21 -0
  43. data/assets/bower/fluidbox/src/css/_fluidbox.scss +95 -0
  44. data/assets/bower/fluidbox/src/css/fluidbox.scss +2 -0
  45. data/assets/bower/fluidbox/src/js/jquery.fluidbox.js +722 -0
  46. data/assets/bower/jquery/.bower.json +25 -0
  47. data/assets/bower/jquery/AUTHORS.txt +295 -0
  48. data/assets/bower/jquery/LICENSE.txt +36 -0
  49. data/assets/bower/jquery/README.md +65 -0
  50. data/assets/bower/jquery/bower.json +14 -0
  51. data/assets/bower/jquery/dist/core.js +482 -0
  52. data/assets/bower/jquery/dist/jquery.js +10220 -0
  53. data/assets/bower/jquery/dist/jquery.min.js +4 -0
  54. data/assets/bower/jquery/dist/jquery.min.map +1 -0
  55. data/assets/bower/jquery/dist/jquery.slim.js +8107 -0
  56. data/assets/bower/jquery/dist/jquery.slim.min.js +4 -0
  57. data/assets/bower/jquery/dist/jquery.slim.min.map +1 -0
  58. data/assets/bower/jquery/external/sizzle/LICENSE.txt +36 -0
  59. data/assets/bower/jquery/external/sizzle/dist/sizzle.js +2272 -0
  60. data/assets/bower/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  61. data/assets/bower/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  62. data/assets/bower/jquery/src/.eslintrc.json +18 -0
  63. data/assets/bower/jquery/src/ajax.js +855 -0
  64. data/assets/bower/jquery/src/ajax/jsonp.js +102 -0
  65. data/assets/bower/jquery/src/ajax/load.js +76 -0
  66. data/assets/bower/jquery/src/ajax/parseXML.js +30 -0
  67. data/assets/bower/jquery/src/ajax/script.js +77 -0
  68. data/assets/bower/jquery/src/ajax/var/location.js +5 -0
  69. data/assets/bower/jquery/src/ajax/var/nonce.js +7 -0
  70. data/assets/bower/jquery/src/ajax/var/rquery.js +5 -0
  71. data/assets/bower/jquery/src/ajax/xhr.js +169 -0
  72. data/assets/bower/jquery/src/attributes.js +13 -0
  73. data/assets/bower/jquery/src/attributes/attr.js +140 -0
  74. data/assets/bower/jquery/src/attributes/classes.js +174 -0
  75. data/assets/bower/jquery/src/attributes/prop.js +143 -0
  76. data/assets/bower/jquery/src/attributes/support.js +33 -0
  77. data/assets/bower/jquery/src/attributes/val.js +188 -0
  78. data/assets/bower/jquery/src/callbacks.js +234 -0
  79. data/assets/bower/jquery/src/core.js +482 -0
  80. data/assets/bower/jquery/src/core/DOMEval.js +16 -0
  81. data/assets/bower/jquery/src/core/access.js +70 -0
  82. data/assets/bower/jquery/src/core/init.js +127 -0
  83. data/assets/bower/jquery/src/core/parseHTML.js +65 -0
  84. data/assets/bower/jquery/src/core/ready-no-deferred.js +105 -0
  85. data/assets/bower/jquery/src/core/ready.js +95 -0
  86. data/assets/bower/jquery/src/core/readyException.js +13 -0
  87. data/assets/bower/jquery/src/core/stripAndCollapse.js +14 -0
  88. data/assets/bower/jquery/src/core/support.js +20 -0
  89. data/assets/bower/jquery/src/core/var/rsingleTag.js +6 -0
  90. data/assets/bower/jquery/src/css.js +426 -0
  91. data/assets/bower/jquery/src/css/addGetHookIf.js +26 -0
  92. data/assets/bower/jquery/src/css/adjustCSS.js +71 -0
  93. data/assets/bower/jquery/src/css/curCSS.js +59 -0
  94. data/assets/bower/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  95. data/assets/bower/jquery/src/css/showHide.js +105 -0
  96. data/assets/bower/jquery/src/css/support.js +89 -0
  97. data/assets/bower/jquery/src/css/var/cssExpand.js +5 -0
  98. data/assets/bower/jquery/src/css/var/getStyles.js +17 -0
  99. data/assets/bower/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  100. data/assets/bower/jquery/src/css/var/rmargin.js +5 -0
  101. data/assets/bower/jquery/src/css/var/rnumnonpx.js +7 -0
  102. data/assets/bower/jquery/src/css/var/swap.js +26 -0
  103. data/assets/bower/jquery/src/data.js +179 -0
  104. data/assets/bower/jquery/src/data/Data.js +161 -0
  105. data/assets/bower/jquery/src/data/var/acceptData.js +19 -0
  106. data/assets/bower/jquery/src/data/var/dataPriv.js +7 -0
  107. data/assets/bower/jquery/src/data/var/dataUser.js +7 -0
  108. data/assets/bower/jquery/src/deferred.js +389 -0
  109. data/assets/bower/jquery/src/deferred/exceptionHook.js +21 -0
  110. data/assets/bower/jquery/src/deprecated.js +30 -0
  111. data/assets/bower/jquery/src/dimensions.js +56 -0
  112. data/assets/bower/jquery/src/effects.js +693 -0
  113. data/assets/bower/jquery/src/effects/Tween.js +123 -0
  114. data/assets/bower/jquery/src/effects/animatedSelector.js +15 -0
  115. data/assets/bower/jquery/src/event.js +745 -0
  116. data/assets/bower/jquery/src/event/ajax.js +22 -0
  117. data/assets/bower/jquery/src/event/alias.js +29 -0
  118. data/assets/bower/jquery/src/event/focusin.js +55 -0
  119. data/assets/bower/jquery/src/event/support.js +11 -0
  120. data/assets/bower/jquery/src/event/trigger.js +185 -0
  121. data/assets/bower/jquery/src/exports/amd.js +26 -0
  122. data/assets/bower/jquery/src/exports/global.js +34 -0
  123. data/assets/bower/jquery/src/jquery.js +41 -0
  124. data/assets/bower/jquery/src/manipulation.js +486 -0
  125. data/assets/bower/jquery/src/manipulation/_evalUrl.js +23 -0
  126. data/assets/bower/jquery/src/manipulation/buildFragment.js +104 -0
  127. data/assets/bower/jquery/src/manipulation/getAll.js +31 -0
  128. data/assets/bower/jquery/src/manipulation/setGlobalEval.js +22 -0
  129. data/assets/bower/jquery/src/manipulation/support.js +35 -0
  130. data/assets/bower/jquery/src/manipulation/var/rcheckableType.js +5 -0
  131. data/assets/bower/jquery/src/manipulation/var/rscriptType.js +5 -0
  132. data/assets/bower/jquery/src/manipulation/var/rtagName.js +5 -0
  133. data/assets/bower/jquery/src/manipulation/wrapMap.js +29 -0
  134. data/assets/bower/jquery/src/offset.js +232 -0
  135. data/assets/bower/jquery/src/queue.js +145 -0
  136. data/assets/bower/jquery/src/queue/delay.js +24 -0
  137. data/assets/bower/jquery/src/selector-native.js +237 -0
  138. data/assets/bower/jquery/src/selector-sizzle.js +19 -0
  139. data/assets/bower/jquery/src/selector.js +3 -0
  140. data/assets/bower/jquery/src/serialize.js +130 -0
  141. data/assets/bower/jquery/src/traversing.js +178 -0
  142. data/assets/bower/jquery/src/traversing/findFilter.js +106 -0
  143. data/assets/bower/jquery/src/traversing/var/dir.js +22 -0
  144. data/assets/bower/jquery/src/traversing/var/rneedsContext.js +8 -0
  145. data/assets/bower/jquery/src/traversing/var/siblings.js +17 -0
  146. data/assets/bower/jquery/src/var/ObjectFunctionString.js +7 -0
  147. data/assets/bower/jquery/src/var/arr.js +5 -0
  148. data/assets/bower/jquery/src/var/class2type.js +6 -0
  149. data/assets/bower/jquery/src/var/concat.js +7 -0
  150. data/assets/bower/jquery/src/var/document.js +5 -0
  151. data/assets/bower/jquery/src/var/documentElement.js +7 -0
  152. data/assets/bower/jquery/src/var/fnToString.js +7 -0
  153. data/assets/bower/jquery/src/var/getProto.js +5 -0
  154. data/assets/bower/jquery/src/var/hasOwn.js +7 -0
  155. data/assets/bower/jquery/src/var/indexOf.js +7 -0
  156. data/assets/bower/jquery/src/var/pnum.js +5 -0
  157. data/assets/bower/jquery/src/var/push.js +7 -0
  158. data/assets/bower/jquery/src/var/rcssNum.js +9 -0
  159. data/assets/bower/jquery/src/var/rnothtmlwhite.js +8 -0
  160. data/assets/bower/jquery/src/var/slice.js +7 -0
  161. data/assets/bower/jquery/src/var/support.js +6 -0
  162. data/assets/bower/jquery/src/var/toString.js +7 -0
  163. data/assets/bower/jquery/src/wrap.js +77 -0
  164. data/assets/bower/scrollreveal/.bower.json +36 -0
  165. data/assets/bower/scrollreveal/CHANGELOG.md +268 -0
  166. data/assets/bower/scrollreveal/LICENSE.md +12 -0
  167. data/assets/bower/scrollreveal/README.md +413 -0
  168. data/assets/bower/scrollreveal/bower.json +24 -0
  169. data/assets/bower/scrollreveal/dist/scrollreveal.js +860 -0
  170. data/assets/bower/scrollreveal/dist/scrollreveal.min.js +1 -0
  171. data/assets/bower/turbolinks5/.blade.yml +15 -0
  172. data/assets/bower/turbolinks5/.bower.json +14 -0
  173. data/assets/bower/turbolinks5/.gitignore +2 -0
  174. data/assets/bower/turbolinks5/CONDUCT.md +79 -0
  175. data/assets/bower/turbolinks5/Gemfile +9 -0
  176. data/assets/bower/turbolinks5/LICENSE +20 -0
  177. data/assets/bower/turbolinks5/README.md +435 -0
  178. data/assets/bower/turbolinks5/bin/blade +16 -0
  179. data/assets/bower/turbolinks5/bin/rackup +16 -0
  180. data/assets/bower/turbolinks5/config.ru +8 -0
  181. data/assets/bower/turbolinks5/dist/turbolinks.js +6 -0
  182. data/assets/bower/turbolinks5/package.json +31 -0
  183. data/assets/bower/turbolinks5/src/turbolinks/BANNER.js.erb +4 -0
  184. data/assets/bower/turbolinks5/src/turbolinks/VERSION +1 -0
  185. data/assets/bower/turbolinks5/src/turbolinks/browser_adapter.coffee +61 -0
  186. data/assets/bower/turbolinks5/src/turbolinks/compatibility.coffee +30 -0
  187. data/assets/bower/turbolinks5/src/turbolinks/controller.coffee +239 -0
  188. data/assets/bower/turbolinks5/src/turbolinks/error_renderer.coffee +21 -0
  189. data/assets/bower/turbolinks5/src/turbolinks/head_details.coffee +51 -0
  190. data/assets/bower/turbolinks5/src/turbolinks/helpers.coffee +51 -0
  191. data/assets/bower/turbolinks5/src/turbolinks/history.coffee +46 -0
  192. data/assets/bower/turbolinks5/src/turbolinks/http_request.coffee +88 -0
  193. data/assets/bower/turbolinks5/src/turbolinks/index.coffee +16 -0
  194. data/assets/bower/turbolinks5/src/turbolinks/location.coffee +70 -0
  195. data/assets/bower/turbolinks5/src/turbolinks/progress_bar.coffee +83 -0
  196. data/assets/bower/turbolinks5/src/turbolinks/renderer.coffee +27 -0
  197. data/assets/bower/turbolinks5/src/turbolinks/scroll_manager.coffee +27 -0
  198. data/assets/bower/turbolinks5/src/turbolinks/snapshot.coffee +47 -0
  199. data/assets/bower/turbolinks5/src/turbolinks/snapshot_cache.coffee +43 -0
  200. data/assets/bower/turbolinks5/src/turbolinks/snapshot_renderer.coffee +88 -0
  201. data/assets/bower/turbolinks5/src/turbolinks/start.coffee +18 -0
  202. data/assets/bower/turbolinks5/src/turbolinks/view.coffee +34 -0
  203. data/assets/bower/turbolinks5/src/turbolinks/visit.coffee +162 -0
  204. data/assets/bower/turbolinks5/test/src/fixtures/additional_assets.html +12 -0
  205. data/assets/bower/turbolinks5/test/src/fixtures/body_script.html +18 -0
  206. data/assets/bower/turbolinks5/test/src/fixtures/eval_false_script.html +18 -0
  207. data/assets/bower/turbolinks5/test/src/fixtures/head_script.html +18 -0
  208. data/assets/bower/turbolinks5/test/src/fixtures/navigation.html +21 -0
  209. data/assets/bower/turbolinks5/test/src/fixtures/one.html +12 -0
  210. data/assets/bower/turbolinks5/test/src/fixtures/rendering.html +20 -0
  211. data/assets/bower/turbolinks5/test/src/fixtures/tracked_asset_change.html +11 -0
  212. data/assets/bower/turbolinks5/test/src/fixtures/visit.html +14 -0
  213. data/assets/bower/turbolinks5/test/src/head.html.erb +1 -0
  214. data/assets/bower/turbolinks5/test/src/helpers/replicant_helpers.coffee +18 -0
  215. data/assets/bower/turbolinks5/test/src/modules/navigation_tests.coffee +75 -0
  216. data/assets/bower/turbolinks5/test/src/modules/rendering_tests.coffee +123 -0
  217. data/assets/bower/turbolinks5/test/src/modules/visit_tests.coffee +49 -0
  218. data/assets/bower/turbolinks5/test/src/test.coffee +4 -0
  219. data/assets/bower/turbolinks5/test/src/test.css +20 -0
  220. data/assets/bower/turbolinks5/test/vendor/replicant.js +10 -0
  221. data/assets/fonts/cormorant-garamond/Cormorant-Garamond-700.eot +0 -0
  222. data/assets/fonts/cormorant-garamond/Cormorant-Garamond-700.ttf +0 -0
  223. data/assets/fonts/cormorant-garamond/Cormorant-Garamond-700.woff +0 -0
  224. data/assets/fonts/cormorant-garamond/Cormorant-Garamond-700.woff2 +0 -0
  225. data/assets/fonts/ionicons/ionicons.eot +0 -0
  226. data/assets/fonts/ionicons/ionicons.svg +2232 -0
  227. data/assets/fonts/ionicons/ionicons.ttf +0 -0
  228. data/assets/fonts/ionicons/ionicons.woff +0 -0
  229. data/assets/fonts/lato/Lato-300.eot +0 -0
  230. data/assets/fonts/lato/Lato-300.ttf +0 -0
  231. data/assets/fonts/lato/Lato-300.woff +0 -0
  232. data/assets/fonts/lato/Lato-300.woff2 +0 -0
  233. data/assets/fonts/lato/Lato-700.eot +0 -0
  234. data/assets/fonts/lato/Lato-700.ttf +0 -0
  235. data/assets/fonts/lato/Lato-700.woff +0 -0
  236. data/assets/fonts/lato/Lato-700.woff2 +0 -0
  237. data/assets/fonts/lato/Lato-regular.eot +0 -0
  238. data/assets/fonts/lato/Lato-regular.ttf +0 -0
  239. data/assets/fonts/lato/Lato-regular.woff +0 -0
  240. data/assets/fonts/lato/Lato-regular.woff2 +0 -0
  241. data/assets/images/about.jpg +0 -0
  242. data/assets/images/about@2x.jpg +0 -0
  243. data/assets/images/apple-touch-icon.png +0 -0
  244. data/assets/images/documentation/chalk-intro.png +0 -0
  245. data/assets/images/documentation/chalk-intro@2x.png +0 -0
  246. data/assets/images/documentation/enlarge.gif +0 -0
  247. data/assets/images/documentation/enlarge@2x.gif +0 -0
  248. data/assets/images/documentation/sample-image.jpg +0 -0
  249. data/assets/images/documentation/sample-image@2x.jpg +0 -0
  250. data/assets/images/og-image.jpg +0 -0
  251. data/assets/javascripts/application.js +24 -0
  252. data/assets/javascripts/vendor.js +6 -0
  253. data/assets/javascripts/vendor/jquery-throttle-debounce.js +9 -0
  254. data/assets/javascripts/vendor/retina.js +182 -0
  255. data/assets/stylesheets/.csscomb.json +197 -0
  256. data/assets/stylesheets/.scss-lint.yml +33 -0
  257. data/assets/stylesheets/_base.scss +151 -0
  258. data/assets/stylesheets/_mixins.scss +28 -0
  259. data/assets/stylesheets/_variables.scss +47 -0
  260. data/assets/stylesheets/dark.scss +70 -0
  261. data/assets/stylesheets/fonts.scss +63 -0
  262. data/assets/stylesheets/layouts/_footer.scss +17 -0
  263. data/assets/stylesheets/layouts/_grid.scss +102 -0
  264. data/assets/stylesheets/light.scss +70 -0
  265. data/assets/stylesheets/modules/_about.scss +10 -0
  266. data/assets/stylesheets/modules/_articles.scss +211 -0
  267. data/assets/stylesheets/modules/_embed.scss +31 -0
  268. data/assets/stylesheets/modules/_header.scss +57 -0
  269. data/assets/stylesheets/modules/_highlights-dark.scss +415 -0
  270. data/assets/stylesheets/modules/_highlights-light.scss +409 -0
  271. data/assets/stylesheets/modules/_icons.scss +2967 -0
  272. data/assets/stylesheets/notfound-dark.scss +90 -0
  273. data/assets/stylesheets/notfound-light.scss +90 -0
  274. data/assets/stylesheets/vendor/_normalize.scss +461 -0
  275. metadata +276 -3
@@ -0,0 +1,26 @@
1
+ define( function() {
2
+
3
+ "use strict";
4
+
5
+ // A method for quickly swapping in/out CSS properties to get correct calculations.
6
+ return function( elem, options, callback, args ) {
7
+ var ret, name,
8
+ old = {};
9
+
10
+ // Remember the old values, and insert the new ones
11
+ for ( name in options ) {
12
+ old[ name ] = elem.style[ name ];
13
+ elem.style[ name ] = options[ name ];
14
+ }
15
+
16
+ ret = callback.apply( elem, args || [] );
17
+
18
+ // Revert the old values
19
+ for ( name in options ) {
20
+ elem.style[ name ] = old[ name ];
21
+ }
22
+
23
+ return ret;
24
+ };
25
+
26
+ } );
@@ -0,0 +1,179 @@
1
+ define( [
2
+ "./core",
3
+ "./core/access",
4
+ "./data/var/dataPriv",
5
+ "./data/var/dataUser"
6
+ ], function( jQuery, access, dataPriv, dataUser ) {
7
+
8
+ "use strict";
9
+
10
+ // Implementation Summary
11
+ //
12
+ // 1. Enforce API surface and semantic compatibility with 1.9.x branch
13
+ // 2. Improve the module's maintainability by reducing the storage
14
+ // paths to a single mechanism.
15
+ // 3. Use the same single mechanism to support "private" and "user" data.
16
+ // 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
17
+ // 5. Avoid exposing implementation details on user objects (eg. expando properties)
18
+ // 6. Provide a clear path for implementation upgrade to WeakMap in 2014
19
+
20
+ var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
21
+ rmultiDash = /[A-Z]/g;
22
+
23
+ function getData( data ) {
24
+ if ( data === "true" ) {
25
+ return true;
26
+ }
27
+
28
+ if ( data === "false" ) {
29
+ return false;
30
+ }
31
+
32
+ if ( data === "null" ) {
33
+ return null;
34
+ }
35
+
36
+ // Only convert to a number if it doesn't change the string
37
+ if ( data === +data + "" ) {
38
+ return +data;
39
+ }
40
+
41
+ if ( rbrace.test( data ) ) {
42
+ return JSON.parse( data );
43
+ }
44
+
45
+ return data;
46
+ }
47
+
48
+ function dataAttr( elem, key, data ) {
49
+ var name;
50
+
51
+ // If nothing was found internally, try to fetch any
52
+ // data from the HTML5 data-* attribute
53
+ if ( data === undefined && elem.nodeType === 1 ) {
54
+ name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
55
+ data = elem.getAttribute( name );
56
+
57
+ if ( typeof data === "string" ) {
58
+ try {
59
+ data = getData( data );
60
+ } catch ( e ) {}
61
+
62
+ // Make sure we set the data so it isn't changed later
63
+ dataUser.set( elem, key, data );
64
+ } else {
65
+ data = undefined;
66
+ }
67
+ }
68
+ return data;
69
+ }
70
+
71
+ jQuery.extend( {
72
+ hasData: function( elem ) {
73
+ return dataUser.hasData( elem ) || dataPriv.hasData( elem );
74
+ },
75
+
76
+ data: function( elem, name, data ) {
77
+ return dataUser.access( elem, name, data );
78
+ },
79
+
80
+ removeData: function( elem, name ) {
81
+ dataUser.remove( elem, name );
82
+ },
83
+
84
+ // TODO: Now that all calls to _data and _removeData have been replaced
85
+ // with direct calls to dataPriv methods, these can be deprecated.
86
+ _data: function( elem, name, data ) {
87
+ return dataPriv.access( elem, name, data );
88
+ },
89
+
90
+ _removeData: function( elem, name ) {
91
+ dataPriv.remove( elem, name );
92
+ }
93
+ } );
94
+
95
+ jQuery.fn.extend( {
96
+ data: function( key, value ) {
97
+ var i, name, data,
98
+ elem = this[ 0 ],
99
+ attrs = elem && elem.attributes;
100
+
101
+ // Gets all values
102
+ if ( key === undefined ) {
103
+ if ( this.length ) {
104
+ data = dataUser.get( elem );
105
+
106
+ if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
107
+ i = attrs.length;
108
+ while ( i-- ) {
109
+
110
+ // Support: IE 11 only
111
+ // The attrs elements can be null (#14894)
112
+ if ( attrs[ i ] ) {
113
+ name = attrs[ i ].name;
114
+ if ( name.indexOf( "data-" ) === 0 ) {
115
+ name = jQuery.camelCase( name.slice( 5 ) );
116
+ dataAttr( elem, name, data[ name ] );
117
+ }
118
+ }
119
+ }
120
+ dataPriv.set( elem, "hasDataAttrs", true );
121
+ }
122
+ }
123
+
124
+ return data;
125
+ }
126
+
127
+ // Sets multiple values
128
+ if ( typeof key === "object" ) {
129
+ return this.each( function() {
130
+ dataUser.set( this, key );
131
+ } );
132
+ }
133
+
134
+ return access( this, function( value ) {
135
+ var data;
136
+
137
+ // The calling jQuery object (element matches) is not empty
138
+ // (and therefore has an element appears at this[ 0 ]) and the
139
+ // `value` parameter was not undefined. An empty jQuery object
140
+ // will result in `undefined` for elem = this[ 0 ] which will
141
+ // throw an exception if an attempt to read a data cache is made.
142
+ if ( elem && value === undefined ) {
143
+
144
+ // Attempt to get data from the cache
145
+ // The key will always be camelCased in Data
146
+ data = dataUser.get( elem, key );
147
+ if ( data !== undefined ) {
148
+ return data;
149
+ }
150
+
151
+ // Attempt to "discover" the data in
152
+ // HTML5 custom data-* attrs
153
+ data = dataAttr( elem, key );
154
+ if ( data !== undefined ) {
155
+ return data;
156
+ }
157
+
158
+ // We tried really hard, but the data doesn't exist.
159
+ return;
160
+ }
161
+
162
+ // Set the data...
163
+ this.each( function() {
164
+
165
+ // We always store the camelCased key
166
+ dataUser.set( this, key, value );
167
+ } );
168
+ }, null, value, arguments.length > 1, null, true );
169
+ },
170
+
171
+ removeData: function( key ) {
172
+ return this.each( function() {
173
+ dataUser.remove( this, key );
174
+ } );
175
+ }
176
+ } );
177
+
178
+ return jQuery;
179
+ } );
@@ -0,0 +1,161 @@
1
+ define( [
2
+ "../core",
3
+ "../var/rnothtmlwhite",
4
+ "./var/acceptData"
5
+ ], function( jQuery, rnothtmlwhite, acceptData ) {
6
+
7
+ "use strict";
8
+
9
+ function Data() {
10
+ this.expando = jQuery.expando + Data.uid++;
11
+ }
12
+
13
+ Data.uid = 1;
14
+
15
+ Data.prototype = {
16
+
17
+ cache: function( owner ) {
18
+
19
+ // Check if the owner object already has a cache
20
+ var value = owner[ this.expando ];
21
+
22
+ // If not, create one
23
+ if ( !value ) {
24
+ value = {};
25
+
26
+ // We can accept data for non-element nodes in modern browsers,
27
+ // but we should not, see #8335.
28
+ // Always return an empty object.
29
+ if ( acceptData( owner ) ) {
30
+
31
+ // If it is a node unlikely to be stringify-ed or looped over
32
+ // use plain assignment
33
+ if ( owner.nodeType ) {
34
+ owner[ this.expando ] = value;
35
+
36
+ // Otherwise secure it in a non-enumerable property
37
+ // configurable must be true to allow the property to be
38
+ // deleted when data is removed
39
+ } else {
40
+ Object.defineProperty( owner, this.expando, {
41
+ value: value,
42
+ configurable: true
43
+ } );
44
+ }
45
+ }
46
+ }
47
+
48
+ return value;
49
+ },
50
+ set: function( owner, data, value ) {
51
+ var prop,
52
+ cache = this.cache( owner );
53
+
54
+ // Handle: [ owner, key, value ] args
55
+ // Always use camelCase key (gh-2257)
56
+ if ( typeof data === "string" ) {
57
+ cache[ jQuery.camelCase( data ) ] = value;
58
+
59
+ // Handle: [ owner, { properties } ] args
60
+ } else {
61
+
62
+ // Copy the properties one-by-one to the cache object
63
+ for ( prop in data ) {
64
+ cache[ jQuery.camelCase( prop ) ] = data[ prop ];
65
+ }
66
+ }
67
+ return cache;
68
+ },
69
+ get: function( owner, key ) {
70
+ return key === undefined ?
71
+ this.cache( owner ) :
72
+
73
+ // Always use camelCase key (gh-2257)
74
+ owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
75
+ },
76
+ access: function( owner, key, value ) {
77
+
78
+ // In cases where either:
79
+ //
80
+ // 1. No key was specified
81
+ // 2. A string key was specified, but no value provided
82
+ //
83
+ // Take the "read" path and allow the get method to determine
84
+ // which value to return, respectively either:
85
+ //
86
+ // 1. The entire cache object
87
+ // 2. The data stored at the key
88
+ //
89
+ if ( key === undefined ||
90
+ ( ( key && typeof key === "string" ) && value === undefined ) ) {
91
+
92
+ return this.get( owner, key );
93
+ }
94
+
95
+ // When the key is not a string, or both a key and value
96
+ // are specified, set or extend (existing objects) with either:
97
+ //
98
+ // 1. An object of properties
99
+ // 2. A key and value
100
+ //
101
+ this.set( owner, key, value );
102
+
103
+ // Since the "set" path can have two possible entry points
104
+ // return the expected data based on which path was taken[*]
105
+ return value !== undefined ? value : key;
106
+ },
107
+ remove: function( owner, key ) {
108
+ var i,
109
+ cache = owner[ this.expando ];
110
+
111
+ if ( cache === undefined ) {
112
+ return;
113
+ }
114
+
115
+ if ( key !== undefined ) {
116
+
117
+ // Support array or space separated string of keys
118
+ if ( jQuery.isArray( key ) ) {
119
+
120
+ // If key is an array of keys...
121
+ // We always set camelCase keys, so remove that.
122
+ key = key.map( jQuery.camelCase );
123
+ } else {
124
+ key = jQuery.camelCase( key );
125
+
126
+ // If a key with the spaces exists, use it.
127
+ // Otherwise, create an array by matching non-whitespace
128
+ key = key in cache ?
129
+ [ key ] :
130
+ ( key.match( rnothtmlwhite ) || [] );
131
+ }
132
+
133
+ i = key.length;
134
+
135
+ while ( i-- ) {
136
+ delete cache[ key[ i ] ];
137
+ }
138
+ }
139
+
140
+ // Remove the expando if there's no more data
141
+ if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
142
+
143
+ // Support: Chrome <=35 - 45
144
+ // Webkit & Blink performance suffers when deleting properties
145
+ // from DOM nodes, so set to undefined instead
146
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
147
+ if ( owner.nodeType ) {
148
+ owner[ this.expando ] = undefined;
149
+ } else {
150
+ delete owner[ this.expando ];
151
+ }
152
+ }
153
+ },
154
+ hasData: function( owner ) {
155
+ var cache = owner[ this.expando ];
156
+ return cache !== undefined && !jQuery.isEmptyObject( cache );
157
+ }
158
+ };
159
+
160
+ return Data;
161
+ } );
@@ -0,0 +1,19 @@
1
+ define( function() {
2
+
3
+ "use strict";
4
+
5
+ /**
6
+ * Determines whether an object can have data
7
+ */
8
+ return function( owner ) {
9
+
10
+ // Accepts only:
11
+ // - Node
12
+ // - Node.ELEMENT_NODE
13
+ // - Node.DOCUMENT_NODE
14
+ // - Object
15
+ // - Any
16
+ return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
17
+ };
18
+
19
+ } );
@@ -0,0 +1,7 @@
1
+ define( [
2
+ "../Data"
3
+ ], function( Data ) {
4
+ "use strict";
5
+
6
+ return new Data();
7
+ } );
@@ -0,0 +1,7 @@
1
+ define( [
2
+ "../Data"
3
+ ], function( Data ) {
4
+ "use strict";
5
+
6
+ return new Data();
7
+ } );
@@ -0,0 +1,389 @@
1
+ define( [
2
+ "./core",
3
+ "./var/slice",
4
+ "./callbacks"
5
+ ], function( jQuery, slice ) {
6
+
7
+ "use strict";
8
+
9
+ function Identity( v ) {
10
+ return v;
11
+ }
12
+ function Thrower( ex ) {
13
+ throw ex;
14
+ }
15
+
16
+ function adoptValue( value, resolve, reject ) {
17
+ var method;
18
+
19
+ try {
20
+
21
+ // Check for promise aspect first to privilege synchronous behavior
22
+ if ( value && jQuery.isFunction( ( method = value.promise ) ) ) {
23
+ method.call( value ).done( resolve ).fail( reject );
24
+
25
+ // Other thenables
26
+ } else if ( value && jQuery.isFunction( ( method = value.then ) ) ) {
27
+ method.call( value, resolve, reject );
28
+
29
+ // Other non-thenables
30
+ } else {
31
+
32
+ // Support: Android 4.0 only
33
+ // Strict mode functions invoked without .call/.apply get global-object context
34
+ resolve.call( undefined, value );
35
+ }
36
+
37
+ // For Promises/A+, convert exceptions into rejections
38
+ // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in
39
+ // Deferred#then to conditionally suppress rejection.
40
+ } catch ( value ) {
41
+
42
+ // Support: Android 4.0 only
43
+ // Strict mode functions invoked without .call/.apply get global-object context
44
+ reject.call( undefined, value );
45
+ }
46
+ }
47
+
48
+ jQuery.extend( {
49
+
50
+ Deferred: function( func ) {
51
+ var tuples = [
52
+
53
+ // action, add listener, callbacks,
54
+ // ... .then handlers, argument index, [final state]
55
+ [ "notify", "progress", jQuery.Callbacks( "memory" ),
56
+ jQuery.Callbacks( "memory" ), 2 ],
57
+ [ "resolve", "done", jQuery.Callbacks( "once memory" ),
58
+ jQuery.Callbacks( "once memory" ), 0, "resolved" ],
59
+ [ "reject", "fail", jQuery.Callbacks( "once memory" ),
60
+ jQuery.Callbacks( "once memory" ), 1, "rejected" ]
61
+ ],
62
+ state = "pending",
63
+ promise = {
64
+ state: function() {
65
+ return state;
66
+ },
67
+ always: function() {
68
+ deferred.done( arguments ).fail( arguments );
69
+ return this;
70
+ },
71
+ "catch": function( fn ) {
72
+ return promise.then( null, fn );
73
+ },
74
+
75
+ // Keep pipe for back-compat
76
+ pipe: function( /* fnDone, fnFail, fnProgress */ ) {
77
+ var fns = arguments;
78
+
79
+ return jQuery.Deferred( function( newDefer ) {
80
+ jQuery.each( tuples, function( i, tuple ) {
81
+
82
+ // Map tuples (progress, done, fail) to arguments (done, fail, progress)
83
+ var fn = jQuery.isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];
84
+
85
+ // deferred.progress(function() { bind to newDefer or newDefer.notify })
86
+ // deferred.done(function() { bind to newDefer or newDefer.resolve })
87
+ // deferred.fail(function() { bind to newDefer or newDefer.reject })
88
+ deferred[ tuple[ 1 ] ]( function() {
89
+ var returned = fn && fn.apply( this, arguments );
90
+ if ( returned && jQuery.isFunction( returned.promise ) ) {
91
+ returned.promise()
92
+ .progress( newDefer.notify )
93
+ .done( newDefer.resolve )
94
+ .fail( newDefer.reject );
95
+ } else {
96
+ newDefer[ tuple[ 0 ] + "With" ](
97
+ this,
98
+ fn ? [ returned ] : arguments
99
+ );
100
+ }
101
+ } );
102
+ } );
103
+ fns = null;
104
+ } ).promise();
105
+ },
106
+ then: function( onFulfilled, onRejected, onProgress ) {
107
+ var maxDepth = 0;
108
+ function resolve( depth, deferred, handler, special ) {
109
+ return function() {
110
+ var that = this,
111
+ args = arguments,
112
+ mightThrow = function() {
113
+ var returned, then;
114
+
115
+ // Support: Promises/A+ section 2.3.3.3.3
116
+ // https://promisesaplus.com/#point-59
117
+ // Ignore double-resolution attempts
118
+ if ( depth < maxDepth ) {
119
+ return;
120
+ }
121
+
122
+ returned = handler.apply( that, args );
123
+
124
+ // Support: Promises/A+ section 2.3.1
125
+ // https://promisesaplus.com/#point-48
126
+ if ( returned === deferred.promise() ) {
127
+ throw new TypeError( "Thenable self-resolution" );
128
+ }
129
+
130
+ // Support: Promises/A+ sections 2.3.3.1, 3.5
131
+ // https://promisesaplus.com/#point-54
132
+ // https://promisesaplus.com/#point-75
133
+ // Retrieve `then` only once
134
+ then = returned &&
135
+
136
+ // Support: Promises/A+ section 2.3.4
137
+ // https://promisesaplus.com/#point-64
138
+ // Only check objects and functions for thenability
139
+ ( typeof returned === "object" ||
140
+ typeof returned === "function" ) &&
141
+ returned.then;
142
+
143
+ // Handle a returned thenable
144
+ if ( jQuery.isFunction( then ) ) {
145
+
146
+ // Special processors (notify) just wait for resolution
147
+ if ( special ) {
148
+ then.call(
149
+ returned,
150
+ resolve( maxDepth, deferred, Identity, special ),
151
+ resolve( maxDepth, deferred, Thrower, special )
152
+ );
153
+
154
+ // Normal processors (resolve) also hook into progress
155
+ } else {
156
+
157
+ // ...and disregard older resolution values
158
+ maxDepth++;
159
+
160
+ then.call(
161
+ returned,
162
+ resolve( maxDepth, deferred, Identity, special ),
163
+ resolve( maxDepth, deferred, Thrower, special ),
164
+ resolve( maxDepth, deferred, Identity,
165
+ deferred.notifyWith )
166
+ );
167
+ }
168
+
169
+ // Handle all other returned values
170
+ } else {
171
+
172
+ // Only substitute handlers pass on context
173
+ // and multiple values (non-spec behavior)
174
+ if ( handler !== Identity ) {
175
+ that = undefined;
176
+ args = [ returned ];
177
+ }
178
+
179
+ // Process the value(s)
180
+ // Default process is resolve
181
+ ( special || deferred.resolveWith )( that, args );
182
+ }
183
+ },
184
+
185
+ // Only normal processors (resolve) catch and reject exceptions
186
+ process = special ?
187
+ mightThrow :
188
+ function() {
189
+ try {
190
+ mightThrow();
191
+ } catch ( e ) {
192
+
193
+ if ( jQuery.Deferred.exceptionHook ) {
194
+ jQuery.Deferred.exceptionHook( e,
195
+ process.stackTrace );
196
+ }
197
+
198
+ // Support: Promises/A+ section 2.3.3.3.4.1
199
+ // https://promisesaplus.com/#point-61
200
+ // Ignore post-resolution exceptions
201
+ if ( depth + 1 >= maxDepth ) {
202
+
203
+ // Only substitute handlers pass on context
204
+ // and multiple values (non-spec behavior)
205
+ if ( handler !== Thrower ) {
206
+ that = undefined;
207
+ args = [ e ];
208
+ }
209
+
210
+ deferred.rejectWith( that, args );
211
+ }
212
+ }
213
+ };
214
+
215
+ // Support: Promises/A+ section 2.3.3.3.1
216
+ // https://promisesaplus.com/#point-57
217
+ // Re-resolve promises immediately to dodge false rejection from
218
+ // subsequent errors
219
+ if ( depth ) {
220
+ process();
221
+ } else {
222
+
223
+ // Call an optional hook to record the stack, in case of exception
224
+ // since it's otherwise lost when execution goes async
225
+ if ( jQuery.Deferred.getStackHook ) {
226
+ process.stackTrace = jQuery.Deferred.getStackHook();
227
+ }
228
+ window.setTimeout( process );
229
+ }
230
+ };
231
+ }
232
+
233
+ return jQuery.Deferred( function( newDefer ) {
234
+
235
+ // progress_handlers.add( ... )
236
+ tuples[ 0 ][ 3 ].add(
237
+ resolve(
238
+ 0,
239
+ newDefer,
240
+ jQuery.isFunction( onProgress ) ?
241
+ onProgress :
242
+ Identity,
243
+ newDefer.notifyWith
244
+ )
245
+ );
246
+
247
+ // fulfilled_handlers.add( ... )
248
+ tuples[ 1 ][ 3 ].add(
249
+ resolve(
250
+ 0,
251
+ newDefer,
252
+ jQuery.isFunction( onFulfilled ) ?
253
+ onFulfilled :
254
+ Identity
255
+ )
256
+ );
257
+
258
+ // rejected_handlers.add( ... )
259
+ tuples[ 2 ][ 3 ].add(
260
+ resolve(
261
+ 0,
262
+ newDefer,
263
+ jQuery.isFunction( onRejected ) ?
264
+ onRejected :
265
+ Thrower
266
+ )
267
+ );
268
+ } ).promise();
269
+ },
270
+
271
+ // Get a promise for this deferred
272
+ // If obj is provided, the promise aspect is added to the object
273
+ promise: function( obj ) {
274
+ return obj != null ? jQuery.extend( obj, promise ) : promise;
275
+ }
276
+ },
277
+ deferred = {};
278
+
279
+ // Add list-specific methods
280
+ jQuery.each( tuples, function( i, tuple ) {
281
+ var list = tuple[ 2 ],
282
+ stateString = tuple[ 5 ];
283
+
284
+ // promise.progress = list.add
285
+ // promise.done = list.add
286
+ // promise.fail = list.add
287
+ promise[ tuple[ 1 ] ] = list.add;
288
+
289
+ // Handle state
290
+ if ( stateString ) {
291
+ list.add(
292
+ function() {
293
+
294
+ // state = "resolved" (i.e., fulfilled)
295
+ // state = "rejected"
296
+ state = stateString;
297
+ },
298
+
299
+ // rejected_callbacks.disable
300
+ // fulfilled_callbacks.disable
301
+ tuples[ 3 - i ][ 2 ].disable,
302
+
303
+ // progress_callbacks.lock
304
+ tuples[ 0 ][ 2 ].lock
305
+ );
306
+ }
307
+
308
+ // progress_handlers.fire
309
+ // fulfilled_handlers.fire
310
+ // rejected_handlers.fire
311
+ list.add( tuple[ 3 ].fire );
312
+
313
+ // deferred.notify = function() { deferred.notifyWith(...) }
314
+ // deferred.resolve = function() { deferred.resolveWith(...) }
315
+ // deferred.reject = function() { deferred.rejectWith(...) }
316
+ deferred[ tuple[ 0 ] ] = function() {
317
+ deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments );
318
+ return this;
319
+ };
320
+
321
+ // deferred.notifyWith = list.fireWith
322
+ // deferred.resolveWith = list.fireWith
323
+ // deferred.rejectWith = list.fireWith
324
+ deferred[ tuple[ 0 ] + "With" ] = list.fireWith;
325
+ } );
326
+
327
+ // Make the deferred a promise
328
+ promise.promise( deferred );
329
+
330
+ // Call given func if any
331
+ if ( func ) {
332
+ func.call( deferred, deferred );
333
+ }
334
+
335
+ // All done!
336
+ return deferred;
337
+ },
338
+
339
+ // Deferred helper
340
+ when: function( singleValue ) {
341
+ var
342
+
343
+ // count of uncompleted subordinates
344
+ remaining = arguments.length,
345
+
346
+ // count of unprocessed arguments
347
+ i = remaining,
348
+
349
+ // subordinate fulfillment data
350
+ resolveContexts = Array( i ),
351
+ resolveValues = slice.call( arguments ),
352
+
353
+ // the master Deferred
354
+ master = jQuery.Deferred(),
355
+
356
+ // subordinate callback factory
357
+ updateFunc = function( i ) {
358
+ return function( value ) {
359
+ resolveContexts[ i ] = this;
360
+ resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;
361
+ if ( !( --remaining ) ) {
362
+ master.resolveWith( resolveContexts, resolveValues );
363
+ }
364
+ };
365
+ };
366
+
367
+ // Single- and empty arguments are adopted like Promise.resolve
368
+ if ( remaining <= 1 ) {
369
+ adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject );
370
+
371
+ // Use .then() to unwrap secondary thenables (cf. gh-3000)
372
+ if ( master.state() === "pending" ||
373
+ jQuery.isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {
374
+
375
+ return master.then();
376
+ }
377
+ }
378
+
379
+ // Multiple arguments are aggregated like Promise.all array elements
380
+ while ( i-- ) {
381
+ adoptValue( resolveValues[ i ], updateFunc( i ), master.reject );
382
+ }
383
+
384
+ return master.promise();
385
+ }
386
+ } );
387
+
388
+ return jQuery;
389
+ } );