epuber 0.3.5

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 (206) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +6 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +46 -0
  5. data/bin/epuber +10 -0
  6. data/epuber.gemspec +51 -0
  7. data/lib/epuber.rb +14 -0
  8. data/lib/epuber/book.rb +267 -0
  9. data/lib/epuber/book/contributor.rb +90 -0
  10. data/lib/epuber/book/file_request.rb +68 -0
  11. data/lib/epuber/book/target.rb +284 -0
  12. data/lib/epuber/book/toc_item.rb +130 -0
  13. data/lib/epuber/checker.rb +19 -0
  14. data/lib/epuber/checker/text_checker.rb +129 -0
  15. data/lib/epuber/checker_transformer_base.rb +71 -0
  16. data/lib/epuber/command.rb +65 -0
  17. data/lib/epuber/command/compile.rb +142 -0
  18. data/lib/epuber/command/init.rb +145 -0
  19. data/lib/epuber/command/server.rb +59 -0
  20. data/lib/epuber/compiler.rb +255 -0
  21. data/lib/epuber/compiler/compilation_context.rb +86 -0
  22. data/lib/epuber/compiler/file_finders/abstract.rb +270 -0
  23. data/lib/epuber/compiler/file_finders/imaginary.rb +167 -0
  24. data/lib/epuber/compiler/file_finders/normal.rb +22 -0
  25. data/lib/epuber/compiler/file_resolver.rb +316 -0
  26. data/lib/epuber/compiler/file_types/abstract_file.rb +119 -0
  27. data/lib/epuber/compiler/file_types/bade_file.rb +39 -0
  28. data/lib/epuber/compiler/file_types/container_xml_file.rb +26 -0
  29. data/lib/epuber/compiler/file_types/generated_file.rb +29 -0
  30. data/lib/epuber/compiler/file_types/ibooks_display_options_file.rb +31 -0
  31. data/lib/epuber/compiler/file_types/image_file.rb +42 -0
  32. data/lib/epuber/compiler/file_types/mime_type_file.rb +20 -0
  33. data/lib/epuber/compiler/file_types/nav_file.rb +42 -0
  34. data/lib/epuber/compiler/file_types/opf_file.rb +27 -0
  35. data/lib/epuber/compiler/file_types/source_file.rb +52 -0
  36. data/lib/epuber/compiler/file_types/static_file.rb +18 -0
  37. data/lib/epuber/compiler/file_types/stylus_file.rb +20 -0
  38. data/lib/epuber/compiler/file_types/xhtml_file.rb +102 -0
  39. data/lib/epuber/compiler/generator.rb +67 -0
  40. data/lib/epuber/compiler/meta_inf_generator.rb +41 -0
  41. data/lib/epuber/compiler/nav_generator.rb +201 -0
  42. data/lib/epuber/compiler/opf_generator.rb +284 -0
  43. data/lib/epuber/compiler/xhtml_processor.rb +254 -0
  44. data/lib/epuber/config.rb +133 -0
  45. data/lib/epuber/dsl/attribute.rb +248 -0
  46. data/lib/epuber/dsl/attribute_support.rb +130 -0
  47. data/lib/epuber/dsl/object.rb +145 -0
  48. data/lib/epuber/dsl/tree_object.rb +101 -0
  49. data/lib/epuber/helper.rb +19 -0
  50. data/lib/epuber/lockfile.rb +55 -0
  51. data/lib/epuber/plugin.rb +108 -0
  52. data/lib/epuber/ruby_extensions/match_data.rb +40 -0
  53. data/lib/epuber/ruby_extensions/thread.rb +13 -0
  54. data/lib/epuber/server.rb +614 -0
  55. data/lib/epuber/server/auto_refresh/auto_refresh.coffee +97 -0
  56. data/lib/epuber/server/auto_refresh/connector.coffee +125 -0
  57. data/lib/epuber/server/auto_refresh/protocol.coffee +41 -0
  58. data/lib/epuber/server/auto_refresh/reloader.coffee +261 -0
  59. data/lib/epuber/server/base.styl +3 -0
  60. data/lib/epuber/server/basic.styl +211 -0
  61. data/lib/epuber/server/book_content.styl +39 -0
  62. data/lib/epuber/server/default_cover.png +0 -0
  63. data/lib/epuber/server/fonts/AvenirNext/AvenirNext-Bold.ttf +0 -0
  64. data/lib/epuber/server/fonts/AvenirNext/AvenirNext-BoldItalic.ttf +0 -0
  65. data/lib/epuber/server/fonts/AvenirNext/AvenirNext-Italic.ttf +0 -0
  66. data/lib/epuber/server/fonts/AvenirNext/AvenirNext-Regular.ttf +0 -0
  67. data/lib/epuber/server/handlers.rb +67 -0
  68. data/lib/epuber/server/keyboard_control.coffee +6 -0
  69. data/lib/epuber/server/pages/book.bade +75 -0
  70. data/lib/epuber/server/pages/common.bade +59 -0
  71. data/lib/epuber/server/pages/files.bade +17 -0
  72. data/lib/epuber/server/pages/toc.bade +29 -0
  73. data/lib/epuber/server/support.coffee +10 -0
  74. data/lib/epuber/templates/template.bookspec +143 -0
  75. data/lib/epuber/third_party/bower.rb +22 -0
  76. data/lib/epuber/third_party/bower/bower.json +10 -0
  77. data/lib/epuber/third_party/bower/bower_components/cookies-js/bower.json +10 -0
  78. data/lib/epuber/third_party/bower/bower_components/cookies-js/dist/cookies.d.ts +33 -0
  79. data/lib/epuber/third_party/bower/bower_components/cookies-js/dist/cookies.js +173 -0
  80. data/lib/epuber/third_party/bower/bower_components/cookies-js/dist/cookies.min.js +6 -0
  81. data/lib/epuber/third_party/bower/bower_components/jquery/MIT-LICENSE.txt +21 -0
  82. data/lib/epuber/third_party/bower/bower_components/jquery/bower.json +28 -0
  83. data/lib/epuber/third_party/bower/bower_components/jquery/dist/jquery.js +9210 -0
  84. data/lib/epuber/third_party/bower/bower_components/jquery/dist/jquery.min.js +5 -0
  85. data/lib/epuber/third_party/bower/bower_components/jquery/dist/jquery.min.map +1 -0
  86. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax.js +786 -0
  87. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/jsonp.js +89 -0
  88. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/load.js +75 -0
  89. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/parseJSON.js +13 -0
  90. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/parseXML.js +28 -0
  91. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/script.js +64 -0
  92. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/var/nonce.js +5 -0
  93. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/var/rquery.js +3 -0
  94. data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/xhr.js +136 -0
  95. data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes.js +11 -0
  96. data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/attr.js +141 -0
  97. data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/classes.js +158 -0
  98. data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/prop.js +94 -0
  99. data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/support.js +35 -0
  100. data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/val.js +161 -0
  101. data/lib/epuber/third_party/bower/bower_components/jquery/src/callbacks.js +205 -0
  102. data/lib/epuber/third_party/bower/bower_components/jquery/src/core.js +502 -0
  103. data/lib/epuber/third_party/bower/bower_components/jquery/src/core/access.js +60 -0
  104. data/lib/epuber/third_party/bower/bower_components/jquery/src/core/init.js +123 -0
  105. data/lib/epuber/third_party/bower/bower_components/jquery/src/core/parseHTML.js +39 -0
  106. data/lib/epuber/third_party/bower/bower_components/jquery/src/core/ready.js +97 -0
  107. data/lib/epuber/third_party/bower/bower_components/jquery/src/core/var/rsingleTag.js +4 -0
  108. data/lib/epuber/third_party/bower/bower_components/jquery/src/css.js +450 -0
  109. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/addGetHookIf.js +22 -0
  110. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/curCSS.js +57 -0
  111. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/defaultDisplay.js +70 -0
  112. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  113. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/support.js +96 -0
  114. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/swap.js +28 -0
  115. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/cssExpand.js +3 -0
  116. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/getStyles.js +12 -0
  117. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/isHidden.js +13 -0
  118. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/rmargin.js +3 -0
  119. data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
  120. data/lib/epuber/third_party/bower/bower_components/jquery/src/data.js +178 -0
  121. data/lib/epuber/third_party/bower/bower_components/jquery/src/data/Data.js +181 -0
  122. data/lib/epuber/third_party/bower/bower_components/jquery/src/data/accepts.js +20 -0
  123. data/lib/epuber/third_party/bower/bower_components/jquery/src/data/var/data_priv.js +5 -0
  124. data/lib/epuber/third_party/bower/bower_components/jquery/src/data/var/data_user.js +5 -0
  125. data/lib/epuber/third_party/bower/bower_components/jquery/src/deferred.js +149 -0
  126. data/lib/epuber/third_party/bower/bower_components/jquery/src/deprecated.js +13 -0
  127. data/lib/epuber/third_party/bower/bower_components/jquery/src/dimensions.js +50 -0
  128. data/lib/epuber/third_party/bower/bower_components/jquery/src/effects.js +648 -0
  129. data/lib/epuber/third_party/bower/bower_components/jquery/src/effects/Tween.js +114 -0
  130. data/lib/epuber/third_party/bower/bower_components/jquery/src/effects/animatedSelector.js +13 -0
  131. data/lib/epuber/third_party/bower/bower_components/jquery/src/event.js +868 -0
  132. data/lib/epuber/third_party/bower/bower_components/jquery/src/event/ajax.js +13 -0
  133. data/lib/epuber/third_party/bower/bower_components/jquery/src/event/alias.js +39 -0
  134. data/lib/epuber/third_party/bower/bower_components/jquery/src/event/support.js +9 -0
  135. data/lib/epuber/third_party/bower/bower_components/jquery/src/exports/amd.js +24 -0
  136. data/lib/epuber/third_party/bower/bower_components/jquery/src/exports/global.js +32 -0
  137. data/lib/epuber/third_party/bower/bower_components/jquery/src/intro.js +44 -0
  138. data/lib/epuber/third_party/bower/bower_components/jquery/src/jquery.js +37 -0
  139. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation.js +580 -0
  140. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/_evalUrl.js +18 -0
  141. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/support.js +32 -0
  142. data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
  143. data/lib/epuber/third_party/bower/bower_components/jquery/src/offset.js +207 -0
  144. data/lib/epuber/third_party/bower/bower_components/jquery/src/outro.js +1 -0
  145. data/lib/epuber/third_party/bower/bower_components/jquery/src/queue.js +142 -0
  146. data/lib/epuber/third_party/bower/bower_components/jquery/src/queue/delay.js +22 -0
  147. data/lib/epuber/third_party/bower/bower_components/jquery/src/selector-native.js +172 -0
  148. data/lib/epuber/third_party/bower/bower_components/jquery/src/selector-sizzle.js +14 -0
  149. data/lib/epuber/third_party/bower/bower_components/jquery/src/selector.js +1 -0
  150. data/lib/epuber/third_party/bower/bower_components/jquery/src/serialize.js +111 -0
  151. data/lib/epuber/third_party/bower/bower_components/jquery/src/sizzle/dist/sizzle.js +2067 -0
  152. data/lib/epuber/third_party/bower/bower_components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  153. data/lib/epuber/third_party/bower/bower_components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  154. data/lib/epuber/third_party/bower/bower_components/jquery/src/traversing.js +199 -0
  155. data/lib/epuber/third_party/bower/bower_components/jquery/src/traversing/findFilter.js +100 -0
  156. data/lib/epuber/third_party/bower/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
  157. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/arr.js +3 -0
  158. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/class2type.js +4 -0
  159. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/concat.js +5 -0
  160. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/hasOwn.js +5 -0
  161. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/indexOf.js +5 -0
  162. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/pnum.js +3 -0
  163. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/push.js +5 -0
  164. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/rnotwhite.js +3 -0
  165. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/slice.js +5 -0
  166. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/strundefined.js +3 -0
  167. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/support.js +4 -0
  168. data/lib/epuber/third_party/bower/bower_components/jquery/src/var/toString.js +5 -0
  169. data/lib/epuber/third_party/bower/bower_components/jquery/src/wrap.js +79 -0
  170. data/lib/epuber/third_party/bower/bower_components/keymaster/MIT-LICENSE +20 -0
  171. data/lib/epuber/third_party/bower/bower_components/keymaster/Makefile +4 -0
  172. data/lib/epuber/third_party/bower/bower_components/keymaster/README.markdown +212 -0
  173. data/lib/epuber/third_party/bower/bower_components/keymaster/bower.json +27 -0
  174. data/lib/epuber/third_party/bower/bower_components/keymaster/keymaster.js +296 -0
  175. data/lib/epuber/third_party/bower/bower_components/keymaster/package.json +11 -0
  176. data/lib/epuber/third_party/bower/bower_components/keymaster/test.html +93 -0
  177. data/lib/epuber/third_party/bower/bower_components/spin.js/LICENSE.txt +21 -0
  178. data/lib/epuber/third_party/bower/bower_components/spin.js/README.md +21 -0
  179. data/lib/epuber/third_party/bower/bower_components/spin.js/bower.json +18 -0
  180. data/lib/epuber/third_party/bower/bower_components/spin.js/jquery.spin.js +80 -0
  181. data/lib/epuber/third_party/bower/bower_components/spin.js/spin.js +337 -0
  182. data/lib/epuber/third_party/bower/bower_components/uri.js/LICENSE.txt +21 -0
  183. data/lib/epuber/third_party/bower/bower_components/uri.js/README.md +534 -0
  184. data/lib/epuber/third_party/bower/bower_components/uri.js/bower.json +16 -0
  185. data/lib/epuber/third_party/bower/bower_components/uri.js/contributing.md +19 -0
  186. data/lib/epuber/third_party/bower/bower_components/uri.js/src/IPv6.js +188 -0
  187. data/lib/epuber/third_party/bower/bower_components/uri.js/src/SecondLevelDomains.js +241 -0
  188. data/lib/epuber/third_party/bower/bower_components/uri.js/src/URI.fragmentQuery.js +104 -0
  189. data/lib/epuber/third_party/bower/bower_components/uri.js/src/URI.fragmentURI.js +97 -0
  190. data/lib/epuber/third_party/bower/bower_components/uri.js/src/URI.js +2115 -0
  191. data/lib/epuber/third_party/bower/bower_components/uri.js/src/URI.min.js +86 -0
  192. data/lib/epuber/third_party/bower/bower_components/uri.js/src/URITemplate.js +499 -0
  193. data/lib/epuber/third_party/bower/bower_components/uri.js/src/jquery.URI.js +235 -0
  194. data/lib/epuber/third_party/bower/bower_components/uri.js/src/jquery.URI.min.js +7 -0
  195. data/lib/epuber/third_party/bower/bower_components/uri.js/src/punycode.js +508 -0
  196. data/lib/epuber/transformer.rb +19 -0
  197. data/lib/epuber/transformer/text_transformer.rb +60 -0
  198. data/lib/epuber/user_interface.rb +186 -0
  199. data/lib/epuber/vendor/globals_context.rb +26 -0
  200. data/lib/epuber/vendor/hash_binding.rb +26 -0
  201. data/lib/epuber/vendor/nokogiri_extensions.rb +30 -0
  202. data/lib/epuber/vendor/ruby_templater.rb +71 -0
  203. data/lib/epuber/vendor/size.rb +20 -0
  204. data/lib/epuber/vendor/version.rb +83 -0
  205. data/lib/epuber/version.rb +4 -0
  206. metadata +556 -0
@@ -0,0 +1,60 @@
1
+ define([
2
+ "../core"
3
+ ], function( jQuery ) {
4
+
5
+ // Multifunctional method to get and set values of a collection
6
+ // The value/s can optionally be executed if it's a function
7
+ var access = jQuery.access = function( elems, fn, key, value, chainable, emptyGet, raw ) {
8
+ var i = 0,
9
+ len = elems.length,
10
+ bulk = key == null;
11
+
12
+ // Sets many values
13
+ if ( jQuery.type( key ) === "object" ) {
14
+ chainable = true;
15
+ for ( i in key ) {
16
+ jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
17
+ }
18
+
19
+ // Sets one value
20
+ } else if ( value !== undefined ) {
21
+ chainable = true;
22
+
23
+ if ( !jQuery.isFunction( value ) ) {
24
+ raw = true;
25
+ }
26
+
27
+ if ( bulk ) {
28
+ // Bulk operations run against the entire set
29
+ if ( raw ) {
30
+ fn.call( elems, value );
31
+ fn = null;
32
+
33
+ // ...except when executing function values
34
+ } else {
35
+ bulk = fn;
36
+ fn = function( elem, key, value ) {
37
+ return bulk.call( jQuery( elem ), value );
38
+ };
39
+ }
40
+ }
41
+
42
+ if ( fn ) {
43
+ for ( ; i < len; i++ ) {
44
+ fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) );
45
+ }
46
+ }
47
+ }
48
+
49
+ return chainable ?
50
+ elems :
51
+
52
+ // Gets
53
+ bulk ?
54
+ fn.call( elems ) :
55
+ len ? fn( elems[0], key ) : emptyGet;
56
+ };
57
+
58
+ return access;
59
+
60
+ });
@@ -0,0 +1,123 @@
1
+ // Initialize a jQuery object
2
+ define([
3
+ "../core",
4
+ "./var/rsingleTag",
5
+ "../traversing/findFilter"
6
+ ], function( jQuery, rsingleTag ) {
7
+
8
+ // A central reference to the root jQuery(document)
9
+ var rootjQuery,
10
+
11
+ // A simple way to check for HTML strings
12
+ // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
13
+ // Strict HTML recognition (#11290: must start with <)
14
+ rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,
15
+
16
+ init = jQuery.fn.init = function( selector, context ) {
17
+ var match, elem;
18
+
19
+ // HANDLE: $(""), $(null), $(undefined), $(false)
20
+ if ( !selector ) {
21
+ return this;
22
+ }
23
+
24
+ // Handle HTML strings
25
+ if ( typeof selector === "string" ) {
26
+ if ( selector[0] === "<" && selector[ selector.length - 1 ] === ">" && selector.length >= 3 ) {
27
+ // Assume that strings that start and end with <> are HTML and skip the regex check
28
+ match = [ null, selector, null ];
29
+
30
+ } else {
31
+ match = rquickExpr.exec( selector );
32
+ }
33
+
34
+ // Match html or make sure no context is specified for #id
35
+ if ( match && (match[1] || !context) ) {
36
+
37
+ // HANDLE: $(html) -> $(array)
38
+ if ( match[1] ) {
39
+ context = context instanceof jQuery ? context[0] : context;
40
+
41
+ // Option to run scripts is true for back-compat
42
+ // Intentionally let the error be thrown if parseHTML is not present
43
+ jQuery.merge( this, jQuery.parseHTML(
44
+ match[1],
45
+ context && context.nodeType ? context.ownerDocument || context : document,
46
+ true
47
+ ) );
48
+
49
+ // HANDLE: $(html, props)
50
+ if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) {
51
+ for ( match in context ) {
52
+ // Properties of context are called as methods if possible
53
+ if ( jQuery.isFunction( this[ match ] ) ) {
54
+ this[ match ]( context[ match ] );
55
+
56
+ // ...and otherwise set as attributes
57
+ } else {
58
+ this.attr( match, context[ match ] );
59
+ }
60
+ }
61
+ }
62
+
63
+ return this;
64
+
65
+ // HANDLE: $(#id)
66
+ } else {
67
+ elem = document.getElementById( match[2] );
68
+
69
+ // Support: Blackberry 4.6
70
+ // gEBID returns nodes no longer in the document (#6963)
71
+ if ( elem && elem.parentNode ) {
72
+ // Inject the element directly into the jQuery object
73
+ this.length = 1;
74
+ this[0] = elem;
75
+ }
76
+
77
+ this.context = document;
78
+ this.selector = selector;
79
+ return this;
80
+ }
81
+
82
+ // HANDLE: $(expr, $(...))
83
+ } else if ( !context || context.jquery ) {
84
+ return ( context || rootjQuery ).find( selector );
85
+
86
+ // HANDLE: $(expr, context)
87
+ // (which is just equivalent to: $(context).find(expr)
88
+ } else {
89
+ return this.constructor( context ).find( selector );
90
+ }
91
+
92
+ // HANDLE: $(DOMElement)
93
+ } else if ( selector.nodeType ) {
94
+ this.context = this[0] = selector;
95
+ this.length = 1;
96
+ return this;
97
+
98
+ // HANDLE: $(function)
99
+ // Shortcut for document ready
100
+ } else if ( jQuery.isFunction( selector ) ) {
101
+ return typeof rootjQuery.ready !== "undefined" ?
102
+ rootjQuery.ready( selector ) :
103
+ // Execute immediately if ready is not present
104
+ selector( jQuery );
105
+ }
106
+
107
+ if ( selector.selector !== undefined ) {
108
+ this.selector = selector.selector;
109
+ this.context = selector.context;
110
+ }
111
+
112
+ return jQuery.makeArray( selector, this );
113
+ };
114
+
115
+ // Give the init function the jQuery prototype for later instantiation
116
+ init.prototype = jQuery.fn;
117
+
118
+ // Initialize central reference
119
+ rootjQuery = jQuery( document );
120
+
121
+ return init;
122
+
123
+ });
@@ -0,0 +1,39 @@
1
+ define([
2
+ "../core",
3
+ "./var/rsingleTag",
4
+ "../manipulation" // buildFragment
5
+ ], function( jQuery, rsingleTag ) {
6
+
7
+ // data: string of html
8
+ // context (optional): If specified, the fragment will be created in this context, defaults to document
9
+ // keepScripts (optional): If true, will include scripts passed in the html string
10
+ jQuery.parseHTML = function( data, context, keepScripts ) {
11
+ if ( !data || typeof data !== "string" ) {
12
+ return null;
13
+ }
14
+ if ( typeof context === "boolean" ) {
15
+ keepScripts = context;
16
+ context = false;
17
+ }
18
+ context = context || document;
19
+
20
+ var parsed = rsingleTag.exec( data ),
21
+ scripts = !keepScripts && [];
22
+
23
+ // Single tag
24
+ if ( parsed ) {
25
+ return [ context.createElement( parsed[1] ) ];
26
+ }
27
+
28
+ parsed = jQuery.buildFragment( [ data ], context, scripts );
29
+
30
+ if ( scripts && scripts.length ) {
31
+ jQuery( scripts ).remove();
32
+ }
33
+
34
+ return jQuery.merge( [], parsed.childNodes );
35
+ };
36
+
37
+ return jQuery.parseHTML;
38
+
39
+ });
@@ -0,0 +1,97 @@
1
+ define([
2
+ "../core",
3
+ "../core/init",
4
+ "../deferred"
5
+ ], function( jQuery ) {
6
+
7
+ // The deferred used on DOM ready
8
+ var readyList;
9
+
10
+ jQuery.fn.ready = function( fn ) {
11
+ // Add the callback
12
+ jQuery.ready.promise().done( fn );
13
+
14
+ return this;
15
+ };
16
+
17
+ jQuery.extend({
18
+ // Is the DOM ready to be used? Set to true once it occurs.
19
+ isReady: false,
20
+
21
+ // A counter to track how many items to wait for before
22
+ // the ready event fires. See #6781
23
+ readyWait: 1,
24
+
25
+ // Hold (or release) the ready event
26
+ holdReady: function( hold ) {
27
+ if ( hold ) {
28
+ jQuery.readyWait++;
29
+ } else {
30
+ jQuery.ready( true );
31
+ }
32
+ },
33
+
34
+ // Handle when the DOM is ready
35
+ ready: function( wait ) {
36
+
37
+ // Abort if there are pending holds or we're already ready
38
+ if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
39
+ return;
40
+ }
41
+
42
+ // Remember that the DOM is ready
43
+ jQuery.isReady = true;
44
+
45
+ // If a normal DOM Ready event fired, decrement, and wait if need be
46
+ if ( wait !== true && --jQuery.readyWait > 0 ) {
47
+ return;
48
+ }
49
+
50
+ // If there are functions bound, to execute
51
+ readyList.resolveWith( document, [ jQuery ] );
52
+
53
+ // Trigger any bound ready events
54
+ if ( jQuery.fn.triggerHandler ) {
55
+ jQuery( document ).triggerHandler( "ready" );
56
+ jQuery( document ).off( "ready" );
57
+ }
58
+ }
59
+ });
60
+
61
+ /**
62
+ * The ready event handler and self cleanup method
63
+ */
64
+ function completed() {
65
+ document.removeEventListener( "DOMContentLoaded", completed, false );
66
+ window.removeEventListener( "load", completed, false );
67
+ jQuery.ready();
68
+ }
69
+
70
+ jQuery.ready.promise = function( obj ) {
71
+ if ( !readyList ) {
72
+
73
+ readyList = jQuery.Deferred();
74
+
75
+ // Catch cases where $(document).ready() is called after the browser event has already occurred.
76
+ // We once tried to use readyState "interactive" here, but it caused issues like the one
77
+ // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
78
+ if ( document.readyState === "complete" ) {
79
+ // Handle it asynchronously to allow scripts the opportunity to delay ready
80
+ setTimeout( jQuery.ready );
81
+
82
+ } else {
83
+
84
+ // Use the handy event callback
85
+ document.addEventListener( "DOMContentLoaded", completed, false );
86
+
87
+ // A fallback to window.onload, that will always work
88
+ window.addEventListener( "load", completed, false );
89
+ }
90
+ }
91
+ return readyList.promise( obj );
92
+ };
93
+
94
+ // Kick off the DOM ready check even if the user does not
95
+ jQuery.ready.promise();
96
+
97
+ });
@@ -0,0 +1,4 @@
1
+ define(function() {
2
+ // Match a standalone tag
3
+ return (/^<(\w+)\s*\/?>(?:<\/\1>|)$/);
4
+ });
@@ -0,0 +1,450 @@
1
+ define([
2
+ "./core",
3
+ "./var/pnum",
4
+ "./core/access",
5
+ "./css/var/rmargin",
6
+ "./css/var/rnumnonpx",
7
+ "./css/var/cssExpand",
8
+ "./css/var/isHidden",
9
+ "./css/var/getStyles",
10
+ "./css/curCSS",
11
+ "./css/defaultDisplay",
12
+ "./css/addGetHookIf",
13
+ "./css/support",
14
+ "./data/var/data_priv",
15
+
16
+ "./core/init",
17
+ "./css/swap",
18
+ "./core/ready",
19
+ "./selector" // contains
20
+ ], function( jQuery, pnum, access, rmargin, rnumnonpx, cssExpand, isHidden,
21
+ getStyles, curCSS, defaultDisplay, addGetHookIf, support, data_priv ) {
22
+
23
+ var
24
+ // Swappable if display is none or starts with table except "table", "table-cell", or "table-caption"
25
+ // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
26
+ rdisplayswap = /^(none|table(?!-c[ea]).+)/,
27
+ rnumsplit = new RegExp( "^(" + pnum + ")(.*)$", "i" ),
28
+ rrelNum = new RegExp( "^([+-])=(" + pnum + ")", "i" ),
29
+
30
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
31
+ cssNormalTransform = {
32
+ letterSpacing: "0",
33
+ fontWeight: "400"
34
+ },
35
+
36
+ cssPrefixes = [ "Webkit", "O", "Moz", "ms" ];
37
+
38
+ // Return a css property mapped to a potentially vendor prefixed property
39
+ function vendorPropName( style, name ) {
40
+
41
+ // Shortcut for names that are not vendor prefixed
42
+ if ( name in style ) {
43
+ return name;
44
+ }
45
+
46
+ // Check for vendor prefixed names
47
+ var capName = name[0].toUpperCase() + name.slice(1),
48
+ origName = name,
49
+ i = cssPrefixes.length;
50
+
51
+ while ( i-- ) {
52
+ name = cssPrefixes[ i ] + capName;
53
+ if ( name in style ) {
54
+ return name;
55
+ }
56
+ }
57
+
58
+ return origName;
59
+ }
60
+
61
+ function setPositiveNumber( elem, value, subtract ) {
62
+ var matches = rnumsplit.exec( value );
63
+ return matches ?
64
+ // Guard against undefined "subtract", e.g., when used as in cssHooks
65
+ Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) :
66
+ value;
67
+ }
68
+
69
+ function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
70
+ var i = extra === ( isBorderBox ? "border" : "content" ) ?
71
+ // If we already have the right measurement, avoid augmentation
72
+ 4 :
73
+ // Otherwise initialize for horizontal or vertical properties
74
+ name === "width" ? 1 : 0,
75
+
76
+ val = 0;
77
+
78
+ for ( ; i < 4; i += 2 ) {
79
+ // Both box models exclude margin, so add it if we want it
80
+ if ( extra === "margin" ) {
81
+ val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
82
+ }
83
+
84
+ if ( isBorderBox ) {
85
+ // border-box includes padding, so remove it if we want content
86
+ if ( extra === "content" ) {
87
+ val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
88
+ }
89
+
90
+ // At this point, extra isn't border nor margin, so remove border
91
+ if ( extra !== "margin" ) {
92
+ val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
93
+ }
94
+ } else {
95
+ // At this point, extra isn't content, so add padding
96
+ val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
97
+
98
+ // At this point, extra isn't content nor padding, so add border
99
+ if ( extra !== "padding" ) {
100
+ val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
101
+ }
102
+ }
103
+ }
104
+
105
+ return val;
106
+ }
107
+
108
+ function getWidthOrHeight( elem, name, extra ) {
109
+
110
+ // Start with offset property, which is equivalent to the border-box value
111
+ var valueIsBorderBox = true,
112
+ val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
113
+ styles = getStyles( elem ),
114
+ isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
115
+
116
+ // Some non-html elements return undefined for offsetWidth, so check for null/undefined
117
+ // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
118
+ // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
119
+ if ( val <= 0 || val == null ) {
120
+ // Fall back to computed then uncomputed css if necessary
121
+ val = curCSS( elem, name, styles );
122
+ if ( val < 0 || val == null ) {
123
+ val = elem.style[ name ];
124
+ }
125
+
126
+ // Computed unit is not pixels. Stop here and return.
127
+ if ( rnumnonpx.test(val) ) {
128
+ return val;
129
+ }
130
+
131
+ // Check for style in case a browser which returns unreliable values
132
+ // for getComputedStyle silently falls back to the reliable elem.style
133
+ valueIsBorderBox = isBorderBox &&
134
+ ( support.boxSizingReliable() || val === elem.style[ name ] );
135
+
136
+ // Normalize "", auto, and prepare for extra
137
+ val = parseFloat( val ) || 0;
138
+ }
139
+
140
+ // Use the active box-sizing model to add/subtract irrelevant styles
141
+ return ( val +
142
+ augmentWidthOrHeight(
143
+ elem,
144
+ name,
145
+ extra || ( isBorderBox ? "border" : "content" ),
146
+ valueIsBorderBox,
147
+ styles
148
+ )
149
+ ) + "px";
150
+ }
151
+
152
+ function showHide( elements, show ) {
153
+ var display, elem, hidden,
154
+ values = [],
155
+ index = 0,
156
+ length = elements.length;
157
+
158
+ for ( ; index < length; index++ ) {
159
+ elem = elements[ index ];
160
+ if ( !elem.style ) {
161
+ continue;
162
+ }
163
+
164
+ values[ index ] = data_priv.get( elem, "olddisplay" );
165
+ display = elem.style.display;
166
+ if ( show ) {
167
+ // Reset the inline display of this element to learn if it is
168
+ // being hidden by cascaded rules or not
169
+ if ( !values[ index ] && display === "none" ) {
170
+ elem.style.display = "";
171
+ }
172
+
173
+ // Set elements which have been overridden with display: none
174
+ // in a stylesheet to whatever the default browser style is
175
+ // for such an element
176
+ if ( elem.style.display === "" && isHidden( elem ) ) {
177
+ values[ index ] = data_priv.access( elem, "olddisplay", defaultDisplay(elem.nodeName) );
178
+ }
179
+ } else {
180
+ hidden = isHidden( elem );
181
+
182
+ if ( display !== "none" || !hidden ) {
183
+ data_priv.set( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) );
184
+ }
185
+ }
186
+ }
187
+
188
+ // Set the display of most of the elements in a second loop
189
+ // to avoid the constant reflow
190
+ for ( index = 0; index < length; index++ ) {
191
+ elem = elements[ index ];
192
+ if ( !elem.style ) {
193
+ continue;
194
+ }
195
+ if ( !show || elem.style.display === "none" || elem.style.display === "" ) {
196
+ elem.style.display = show ? values[ index ] || "" : "none";
197
+ }
198
+ }
199
+
200
+ return elements;
201
+ }
202
+
203
+ jQuery.extend({
204
+
205
+ // Add in style property hooks for overriding the default
206
+ // behavior of getting and setting a style property
207
+ cssHooks: {
208
+ opacity: {
209
+ get: function( elem, computed ) {
210
+ if ( computed ) {
211
+
212
+ // We should always get a number back from opacity
213
+ var ret = curCSS( elem, "opacity" );
214
+ return ret === "" ? "1" : ret;
215
+ }
216
+ }
217
+ }
218
+ },
219
+
220
+ // Don't automatically add "px" to these possibly-unitless properties
221
+ cssNumber: {
222
+ "columnCount": true,
223
+ "fillOpacity": true,
224
+ "flexGrow": true,
225
+ "flexShrink": true,
226
+ "fontWeight": true,
227
+ "lineHeight": true,
228
+ "opacity": true,
229
+ "order": true,
230
+ "orphans": true,
231
+ "widows": true,
232
+ "zIndex": true,
233
+ "zoom": true
234
+ },
235
+
236
+ // Add in properties whose names you wish to fix before
237
+ // setting or getting the value
238
+ cssProps: {
239
+ "float": "cssFloat"
240
+ },
241
+
242
+ // Get and set the style property on a DOM Node
243
+ style: function( elem, name, value, extra ) {
244
+
245
+ // Don't set styles on text and comment nodes
246
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
247
+ return;
248
+ }
249
+
250
+ // Make sure that we're working with the right name
251
+ var ret, type, hooks,
252
+ origName = jQuery.camelCase( name ),
253
+ style = elem.style;
254
+
255
+ name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) );
256
+
257
+ // Gets hook for the prefixed version, then unprefixed version
258
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
259
+
260
+ // Check if we're setting a value
261
+ if ( value !== undefined ) {
262
+ type = typeof value;
263
+
264
+ // Convert "+=" or "-=" to relative numbers (#7345)
265
+ if ( type === "string" && (ret = rrelNum.exec( value )) ) {
266
+ value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) );
267
+ // Fixes bug #9237
268
+ type = "number";
269
+ }
270
+
271
+ // Make sure that null and NaN values aren't set (#7116)
272
+ if ( value == null || value !== value ) {
273
+ return;
274
+ }
275
+
276
+ // If a number, add 'px' to the (except for certain CSS properties)
277
+ if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
278
+ value += "px";
279
+ }
280
+
281
+ // Support: IE9-11+
282
+ // background-* props affect original clone's values
283
+ if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
284
+ style[ name ] = "inherit";
285
+ }
286
+
287
+ // If a hook was provided, use that value, otherwise just set the specified value
288
+ if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) {
289
+ style[ name ] = value;
290
+ }
291
+
292
+ } else {
293
+ // If a hook was provided get the non-computed value from there
294
+ if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
295
+ return ret;
296
+ }
297
+
298
+ // Otherwise just get the value from the style object
299
+ return style[ name ];
300
+ }
301
+ },
302
+
303
+ css: function( elem, name, extra, styles ) {
304
+ var val, num, hooks,
305
+ origName = jQuery.camelCase( name );
306
+
307
+ // Make sure that we're working with the right name
308
+ name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) );
309
+
310
+ // Try prefixed name followed by the unprefixed name
311
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
312
+
313
+ // If a hook was provided get the computed value from there
314
+ if ( hooks && "get" in hooks ) {
315
+ val = hooks.get( elem, true, extra );
316
+ }
317
+
318
+ // Otherwise, if a way to get the computed value exists, use that
319
+ if ( val === undefined ) {
320
+ val = curCSS( elem, name, styles );
321
+ }
322
+
323
+ // Convert "normal" to computed value
324
+ if ( val === "normal" && name in cssNormalTransform ) {
325
+ val = cssNormalTransform[ name ];
326
+ }
327
+
328
+ // Make numeric if forced or a qualifier was provided and val looks numeric
329
+ if ( extra === "" || extra ) {
330
+ num = parseFloat( val );
331
+ return extra === true || jQuery.isNumeric( num ) ? num || 0 : val;
332
+ }
333
+ return val;
334
+ }
335
+ });
336
+
337
+ jQuery.each([ "height", "width" ], function( i, name ) {
338
+ jQuery.cssHooks[ name ] = {
339
+ get: function( elem, computed, extra ) {
340
+ if ( computed ) {
341
+
342
+ // Certain elements can have dimension info if we invisibly show them
343
+ // but it must have a current display style that would benefit
344
+ return rdisplayswap.test( jQuery.css( elem, "display" ) ) && elem.offsetWidth === 0 ?
345
+ jQuery.swap( elem, cssShow, function() {
346
+ return getWidthOrHeight( elem, name, extra );
347
+ }) :
348
+ getWidthOrHeight( elem, name, extra );
349
+ }
350
+ },
351
+
352
+ set: function( elem, value, extra ) {
353
+ var styles = extra && getStyles( elem );
354
+ return setPositiveNumber( elem, value, extra ?
355
+ augmentWidthOrHeight(
356
+ elem,
357
+ name,
358
+ extra,
359
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
360
+ styles
361
+ ) : 0
362
+ );
363
+ }
364
+ };
365
+ });
366
+
367
+ // Support: Android 2.3
368
+ jQuery.cssHooks.marginRight = addGetHookIf( support.reliableMarginRight,
369
+ function( elem, computed ) {
370
+ if ( computed ) {
371
+ return jQuery.swap( elem, { "display": "inline-block" },
372
+ curCSS, [ elem, "marginRight" ] );
373
+ }
374
+ }
375
+ );
376
+
377
+ // These hooks are used by animate to expand properties
378
+ jQuery.each({
379
+ margin: "",
380
+ padding: "",
381
+ border: "Width"
382
+ }, function( prefix, suffix ) {
383
+ jQuery.cssHooks[ prefix + suffix ] = {
384
+ expand: function( value ) {
385
+ var i = 0,
386
+ expanded = {},
387
+
388
+ // Assumes a single number if not a string
389
+ parts = typeof value === "string" ? value.split(" ") : [ value ];
390
+
391
+ for ( ; i < 4; i++ ) {
392
+ expanded[ prefix + cssExpand[ i ] + suffix ] =
393
+ parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
394
+ }
395
+
396
+ return expanded;
397
+ }
398
+ };
399
+
400
+ if ( !rmargin.test( prefix ) ) {
401
+ jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
402
+ }
403
+ });
404
+
405
+ jQuery.fn.extend({
406
+ css: function( name, value ) {
407
+ return access( this, function( elem, name, value ) {
408
+ var styles, len,
409
+ map = {},
410
+ i = 0;
411
+
412
+ if ( jQuery.isArray( name ) ) {
413
+ styles = getStyles( elem );
414
+ len = name.length;
415
+
416
+ for ( ; i < len; i++ ) {
417
+ map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
418
+ }
419
+
420
+ return map;
421
+ }
422
+
423
+ return value !== undefined ?
424
+ jQuery.style( elem, name, value ) :
425
+ jQuery.css( elem, name );
426
+ }, name, value, arguments.length > 1 );
427
+ },
428
+ show: function() {
429
+ return showHide( this, true );
430
+ },
431
+ hide: function() {
432
+ return showHide( this );
433
+ },
434
+ toggle: function( state ) {
435
+ if ( typeof state === "boolean" ) {
436
+ return state ? this.show() : this.hide();
437
+ }
438
+
439
+ return this.each(function() {
440
+ if ( isHidden( this ) ) {
441
+ jQuery( this ).show();
442
+ } else {
443
+ jQuery( this ).hide();
444
+ }
445
+ });
446
+ }
447
+ });
448
+
449
+ return jQuery;
450
+ });