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.
- checksums.yaml +7 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +46 -0
- data/bin/epuber +10 -0
- data/epuber.gemspec +51 -0
- data/lib/epuber.rb +14 -0
- data/lib/epuber/book.rb +267 -0
- data/lib/epuber/book/contributor.rb +90 -0
- data/lib/epuber/book/file_request.rb +68 -0
- data/lib/epuber/book/target.rb +284 -0
- data/lib/epuber/book/toc_item.rb +130 -0
- data/lib/epuber/checker.rb +19 -0
- data/lib/epuber/checker/text_checker.rb +129 -0
- data/lib/epuber/checker_transformer_base.rb +71 -0
- data/lib/epuber/command.rb +65 -0
- data/lib/epuber/command/compile.rb +142 -0
- data/lib/epuber/command/init.rb +145 -0
- data/lib/epuber/command/server.rb +59 -0
- data/lib/epuber/compiler.rb +255 -0
- data/lib/epuber/compiler/compilation_context.rb +86 -0
- data/lib/epuber/compiler/file_finders/abstract.rb +270 -0
- data/lib/epuber/compiler/file_finders/imaginary.rb +167 -0
- data/lib/epuber/compiler/file_finders/normal.rb +22 -0
- data/lib/epuber/compiler/file_resolver.rb +316 -0
- data/lib/epuber/compiler/file_types/abstract_file.rb +119 -0
- data/lib/epuber/compiler/file_types/bade_file.rb +39 -0
- data/lib/epuber/compiler/file_types/container_xml_file.rb +26 -0
- data/lib/epuber/compiler/file_types/generated_file.rb +29 -0
- data/lib/epuber/compiler/file_types/ibooks_display_options_file.rb +31 -0
- data/lib/epuber/compiler/file_types/image_file.rb +42 -0
- data/lib/epuber/compiler/file_types/mime_type_file.rb +20 -0
- data/lib/epuber/compiler/file_types/nav_file.rb +42 -0
- data/lib/epuber/compiler/file_types/opf_file.rb +27 -0
- data/lib/epuber/compiler/file_types/source_file.rb +52 -0
- data/lib/epuber/compiler/file_types/static_file.rb +18 -0
- data/lib/epuber/compiler/file_types/stylus_file.rb +20 -0
- data/lib/epuber/compiler/file_types/xhtml_file.rb +102 -0
- data/lib/epuber/compiler/generator.rb +67 -0
- data/lib/epuber/compiler/meta_inf_generator.rb +41 -0
- data/lib/epuber/compiler/nav_generator.rb +201 -0
- data/lib/epuber/compiler/opf_generator.rb +284 -0
- data/lib/epuber/compiler/xhtml_processor.rb +254 -0
- data/lib/epuber/config.rb +133 -0
- data/lib/epuber/dsl/attribute.rb +248 -0
- data/lib/epuber/dsl/attribute_support.rb +130 -0
- data/lib/epuber/dsl/object.rb +145 -0
- data/lib/epuber/dsl/tree_object.rb +101 -0
- data/lib/epuber/helper.rb +19 -0
- data/lib/epuber/lockfile.rb +55 -0
- data/lib/epuber/plugin.rb +108 -0
- data/lib/epuber/ruby_extensions/match_data.rb +40 -0
- data/lib/epuber/ruby_extensions/thread.rb +13 -0
- data/lib/epuber/server.rb +614 -0
- data/lib/epuber/server/auto_refresh/auto_refresh.coffee +97 -0
- data/lib/epuber/server/auto_refresh/connector.coffee +125 -0
- data/lib/epuber/server/auto_refresh/protocol.coffee +41 -0
- data/lib/epuber/server/auto_refresh/reloader.coffee +261 -0
- data/lib/epuber/server/base.styl +3 -0
- data/lib/epuber/server/basic.styl +211 -0
- data/lib/epuber/server/book_content.styl +39 -0
- data/lib/epuber/server/default_cover.png +0 -0
- data/lib/epuber/server/fonts/AvenirNext/AvenirNext-Bold.ttf +0 -0
- data/lib/epuber/server/fonts/AvenirNext/AvenirNext-BoldItalic.ttf +0 -0
- data/lib/epuber/server/fonts/AvenirNext/AvenirNext-Italic.ttf +0 -0
- data/lib/epuber/server/fonts/AvenirNext/AvenirNext-Regular.ttf +0 -0
- data/lib/epuber/server/handlers.rb +67 -0
- data/lib/epuber/server/keyboard_control.coffee +6 -0
- data/lib/epuber/server/pages/book.bade +75 -0
- data/lib/epuber/server/pages/common.bade +59 -0
- data/lib/epuber/server/pages/files.bade +17 -0
- data/lib/epuber/server/pages/toc.bade +29 -0
- data/lib/epuber/server/support.coffee +10 -0
- data/lib/epuber/templates/template.bookspec +143 -0
- data/lib/epuber/third_party/bower.rb +22 -0
- data/lib/epuber/third_party/bower/bower.json +10 -0
- data/lib/epuber/third_party/bower/bower_components/cookies-js/bower.json +10 -0
- data/lib/epuber/third_party/bower/bower_components/cookies-js/dist/cookies.d.ts +33 -0
- data/lib/epuber/third_party/bower/bower_components/cookies-js/dist/cookies.js +173 -0
- data/lib/epuber/third_party/bower/bower_components/cookies-js/dist/cookies.min.js +6 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/MIT-LICENSE.txt +21 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/bower.json +28 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/dist/jquery.js +9210 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/dist/jquery.min.js +5 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/dist/jquery.min.map +1 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax.js +786 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/jsonp.js +89 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/load.js +75 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/parseJSON.js +13 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/parseXML.js +28 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/script.js +64 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/var/nonce.js +5 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/var/rquery.js +3 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/ajax/xhr.js +136 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes.js +11 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/attr.js +141 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/classes.js +158 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/prop.js +94 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/support.js +35 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/attributes/val.js +161 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/callbacks.js +205 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/core.js +502 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/core/access.js +60 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/core/init.js +123 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/core/parseHTML.js +39 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/core/ready.js +97 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/core/var/rsingleTag.js +4 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/css.js +450 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/css/addGetHookIf.js +22 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/css/curCSS.js +57 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/css/defaultDisplay.js +70 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/css/support.js +96 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/css/swap.js +28 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/cssExpand.js +3 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/getStyles.js +12 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/isHidden.js +13 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/rmargin.js +3 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/data.js +178 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/data/Data.js +181 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/data/accepts.js +20 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/data/var/data_priv.js +5 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/data/var/data_user.js +5 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/deferred.js +149 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/deprecated.js +13 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/dimensions.js +50 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/effects.js +648 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/effects/Tween.js +114 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/effects/animatedSelector.js +13 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/event.js +868 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/event/ajax.js +13 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/event/alias.js +39 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/event/support.js +9 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/exports/amd.js +24 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/exports/global.js +32 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/intro.js +44 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/jquery.js +37 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation.js +580 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/_evalUrl.js +18 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/support.js +32 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/offset.js +207 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/outro.js +1 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/queue.js +142 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/queue/delay.js +22 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/selector-native.js +172 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/selector-sizzle.js +14 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/selector.js +1 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/serialize.js +111 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/sizzle/dist/sizzle.js +2067 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/traversing.js +199 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/traversing/findFilter.js +100 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/var/arr.js +3 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/var/class2type.js +4 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/var/concat.js +5 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/var/hasOwn.js +5 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/var/indexOf.js +5 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/var/pnum.js +3 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/var/push.js +5 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/var/rnotwhite.js +3 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/var/slice.js +5 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/var/strundefined.js +3 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/var/support.js +4 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/var/toString.js +5 -0
- data/lib/epuber/third_party/bower/bower_components/jquery/src/wrap.js +79 -0
- data/lib/epuber/third_party/bower/bower_components/keymaster/MIT-LICENSE +20 -0
- data/lib/epuber/third_party/bower/bower_components/keymaster/Makefile +4 -0
- data/lib/epuber/third_party/bower/bower_components/keymaster/README.markdown +212 -0
- data/lib/epuber/third_party/bower/bower_components/keymaster/bower.json +27 -0
- data/lib/epuber/third_party/bower/bower_components/keymaster/keymaster.js +296 -0
- data/lib/epuber/third_party/bower/bower_components/keymaster/package.json +11 -0
- data/lib/epuber/third_party/bower/bower_components/keymaster/test.html +93 -0
- data/lib/epuber/third_party/bower/bower_components/spin.js/LICENSE.txt +21 -0
- data/lib/epuber/third_party/bower/bower_components/spin.js/README.md +21 -0
- data/lib/epuber/third_party/bower/bower_components/spin.js/bower.json +18 -0
- data/lib/epuber/third_party/bower/bower_components/spin.js/jquery.spin.js +80 -0
- data/lib/epuber/third_party/bower/bower_components/spin.js/spin.js +337 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/LICENSE.txt +21 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/README.md +534 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/bower.json +16 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/contributing.md +19 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/src/IPv6.js +188 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/src/SecondLevelDomains.js +241 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/src/URI.fragmentQuery.js +104 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/src/URI.fragmentURI.js +97 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/src/URI.js +2115 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/src/URI.min.js +86 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/src/URITemplate.js +499 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/src/jquery.URI.js +235 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/src/jquery.URI.min.js +7 -0
- data/lib/epuber/third_party/bower/bower_components/uri.js/src/punycode.js +508 -0
- data/lib/epuber/transformer.rb +19 -0
- data/lib/epuber/transformer/text_transformer.rb +60 -0
- data/lib/epuber/user_interface.rb +186 -0
- data/lib/epuber/vendor/globals_context.rb +26 -0
- data/lib/epuber/vendor/hash_binding.rb +26 -0
- data/lib/epuber/vendor/nokogiri_extensions.rb +30 -0
- data/lib/epuber/vendor/ruby_templater.rb +71 -0
- data/lib/epuber/vendor/size.rb +20 -0
- data/lib/epuber/vendor/version.rb +83 -0
- data/lib/epuber/version.rb +4 -0
- metadata +556 -0
@@ -0,0 +1,205 @@
|
|
1
|
+
define([
|
2
|
+
"./core",
|
3
|
+
"./var/rnotwhite"
|
4
|
+
], function( jQuery, rnotwhite ) {
|
5
|
+
|
6
|
+
// String to Object options format cache
|
7
|
+
var optionsCache = {};
|
8
|
+
|
9
|
+
// Convert String-formatted options into Object-formatted ones and store in cache
|
10
|
+
function createOptions( options ) {
|
11
|
+
var object = optionsCache[ options ] = {};
|
12
|
+
jQuery.each( options.match( rnotwhite ) || [], function( _, flag ) {
|
13
|
+
object[ flag ] = true;
|
14
|
+
});
|
15
|
+
return object;
|
16
|
+
}
|
17
|
+
|
18
|
+
/*
|
19
|
+
* Create a callback list using the following parameters:
|
20
|
+
*
|
21
|
+
* options: an optional list of space-separated options that will change how
|
22
|
+
* the callback list behaves or a more traditional option object
|
23
|
+
*
|
24
|
+
* By default a callback list will act like an event callback list and can be
|
25
|
+
* "fired" multiple times.
|
26
|
+
*
|
27
|
+
* Possible options:
|
28
|
+
*
|
29
|
+
* once: will ensure the callback list can only be fired once (like a Deferred)
|
30
|
+
*
|
31
|
+
* memory: will keep track of previous values and will call any callback added
|
32
|
+
* after the list has been fired right away with the latest "memorized"
|
33
|
+
* values (like a Deferred)
|
34
|
+
*
|
35
|
+
* unique: will ensure a callback can only be added once (no duplicate in the list)
|
36
|
+
*
|
37
|
+
* stopOnFalse: interrupt callings when a callback returns false
|
38
|
+
*
|
39
|
+
*/
|
40
|
+
jQuery.Callbacks = function( options ) {
|
41
|
+
|
42
|
+
// Convert options from String-formatted to Object-formatted if needed
|
43
|
+
// (we check in cache first)
|
44
|
+
options = typeof options === "string" ?
|
45
|
+
( optionsCache[ options ] || createOptions( options ) ) :
|
46
|
+
jQuery.extend( {}, options );
|
47
|
+
|
48
|
+
var // Last fire value (for non-forgettable lists)
|
49
|
+
memory,
|
50
|
+
// Flag to know if list was already fired
|
51
|
+
fired,
|
52
|
+
// Flag to know if list is currently firing
|
53
|
+
firing,
|
54
|
+
// First callback to fire (used internally by add and fireWith)
|
55
|
+
firingStart,
|
56
|
+
// End of the loop when firing
|
57
|
+
firingLength,
|
58
|
+
// Index of currently firing callback (modified by remove if needed)
|
59
|
+
firingIndex,
|
60
|
+
// Actual callback list
|
61
|
+
list = [],
|
62
|
+
// Stack of fire calls for repeatable lists
|
63
|
+
stack = !options.once && [],
|
64
|
+
// Fire callbacks
|
65
|
+
fire = function( data ) {
|
66
|
+
memory = options.memory && data;
|
67
|
+
fired = true;
|
68
|
+
firingIndex = firingStart || 0;
|
69
|
+
firingStart = 0;
|
70
|
+
firingLength = list.length;
|
71
|
+
firing = true;
|
72
|
+
for ( ; list && firingIndex < firingLength; firingIndex++ ) {
|
73
|
+
if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) {
|
74
|
+
memory = false; // To prevent further calls using add
|
75
|
+
break;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
firing = false;
|
79
|
+
if ( list ) {
|
80
|
+
if ( stack ) {
|
81
|
+
if ( stack.length ) {
|
82
|
+
fire( stack.shift() );
|
83
|
+
}
|
84
|
+
} else if ( memory ) {
|
85
|
+
list = [];
|
86
|
+
} else {
|
87
|
+
self.disable();
|
88
|
+
}
|
89
|
+
}
|
90
|
+
},
|
91
|
+
// Actual Callbacks object
|
92
|
+
self = {
|
93
|
+
// Add a callback or a collection of callbacks to the list
|
94
|
+
add: function() {
|
95
|
+
if ( list ) {
|
96
|
+
// First, we save the current length
|
97
|
+
var start = list.length;
|
98
|
+
(function add( args ) {
|
99
|
+
jQuery.each( args, function( _, arg ) {
|
100
|
+
var type = jQuery.type( arg );
|
101
|
+
if ( type === "function" ) {
|
102
|
+
if ( !options.unique || !self.has( arg ) ) {
|
103
|
+
list.push( arg );
|
104
|
+
}
|
105
|
+
} else if ( arg && arg.length && type !== "string" ) {
|
106
|
+
// Inspect recursively
|
107
|
+
add( arg );
|
108
|
+
}
|
109
|
+
});
|
110
|
+
})( arguments );
|
111
|
+
// Do we need to add the callbacks to the
|
112
|
+
// current firing batch?
|
113
|
+
if ( firing ) {
|
114
|
+
firingLength = list.length;
|
115
|
+
// With memory, if we're not firing then
|
116
|
+
// we should call right away
|
117
|
+
} else if ( memory ) {
|
118
|
+
firingStart = start;
|
119
|
+
fire( memory );
|
120
|
+
}
|
121
|
+
}
|
122
|
+
return this;
|
123
|
+
},
|
124
|
+
// Remove a callback from the list
|
125
|
+
remove: function() {
|
126
|
+
if ( list ) {
|
127
|
+
jQuery.each( arguments, function( _, arg ) {
|
128
|
+
var index;
|
129
|
+
while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {
|
130
|
+
list.splice( index, 1 );
|
131
|
+
// Handle firing indexes
|
132
|
+
if ( firing ) {
|
133
|
+
if ( index <= firingLength ) {
|
134
|
+
firingLength--;
|
135
|
+
}
|
136
|
+
if ( index <= firingIndex ) {
|
137
|
+
firingIndex--;
|
138
|
+
}
|
139
|
+
}
|
140
|
+
}
|
141
|
+
});
|
142
|
+
}
|
143
|
+
return this;
|
144
|
+
},
|
145
|
+
// Check if a given callback is in the list.
|
146
|
+
// If no argument is given, return whether or not list has callbacks attached.
|
147
|
+
has: function( fn ) {
|
148
|
+
return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length );
|
149
|
+
},
|
150
|
+
// Remove all callbacks from the list
|
151
|
+
empty: function() {
|
152
|
+
list = [];
|
153
|
+
firingLength = 0;
|
154
|
+
return this;
|
155
|
+
},
|
156
|
+
// Have the list do nothing anymore
|
157
|
+
disable: function() {
|
158
|
+
list = stack = memory = undefined;
|
159
|
+
return this;
|
160
|
+
},
|
161
|
+
// Is it disabled?
|
162
|
+
disabled: function() {
|
163
|
+
return !list;
|
164
|
+
},
|
165
|
+
// Lock the list in its current state
|
166
|
+
lock: function() {
|
167
|
+
stack = undefined;
|
168
|
+
if ( !memory ) {
|
169
|
+
self.disable();
|
170
|
+
}
|
171
|
+
return this;
|
172
|
+
},
|
173
|
+
// Is it locked?
|
174
|
+
locked: function() {
|
175
|
+
return !stack;
|
176
|
+
},
|
177
|
+
// Call all callbacks with the given context and arguments
|
178
|
+
fireWith: function( context, args ) {
|
179
|
+
if ( list && ( !fired || stack ) ) {
|
180
|
+
args = args || [];
|
181
|
+
args = [ context, args.slice ? args.slice() : args ];
|
182
|
+
if ( firing ) {
|
183
|
+
stack.push( args );
|
184
|
+
} else {
|
185
|
+
fire( args );
|
186
|
+
}
|
187
|
+
}
|
188
|
+
return this;
|
189
|
+
},
|
190
|
+
// Call all the callbacks with the given arguments
|
191
|
+
fire: function() {
|
192
|
+
self.fireWith( this, arguments );
|
193
|
+
return this;
|
194
|
+
},
|
195
|
+
// To know if the callbacks have already been called at least once
|
196
|
+
fired: function() {
|
197
|
+
return !!fired;
|
198
|
+
}
|
199
|
+
};
|
200
|
+
|
201
|
+
return self;
|
202
|
+
};
|
203
|
+
|
204
|
+
return jQuery;
|
205
|
+
});
|
@@ -0,0 +1,502 @@
|
|
1
|
+
define([
|
2
|
+
"./var/arr",
|
3
|
+
"./var/slice",
|
4
|
+
"./var/concat",
|
5
|
+
"./var/push",
|
6
|
+
"./var/indexOf",
|
7
|
+
"./var/class2type",
|
8
|
+
"./var/toString",
|
9
|
+
"./var/hasOwn",
|
10
|
+
"./var/support"
|
11
|
+
], function( arr, slice, concat, push, indexOf, class2type, toString, hasOwn, support ) {
|
12
|
+
|
13
|
+
var
|
14
|
+
// Use the correct document accordingly with window argument (sandbox)
|
15
|
+
document = window.document,
|
16
|
+
|
17
|
+
version = "@VERSION",
|
18
|
+
|
19
|
+
// Define a local copy of jQuery
|
20
|
+
jQuery = function( selector, context ) {
|
21
|
+
// The jQuery object is actually just the init constructor 'enhanced'
|
22
|
+
// Need init if jQuery is called (just allow error to be thrown if not included)
|
23
|
+
return new jQuery.fn.init( selector, context );
|
24
|
+
},
|
25
|
+
|
26
|
+
// Support: Android<4.1
|
27
|
+
// Make sure we trim BOM and NBSP
|
28
|
+
rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,
|
29
|
+
|
30
|
+
// Matches dashed string for camelizing
|
31
|
+
rmsPrefix = /^-ms-/,
|
32
|
+
rdashAlpha = /-([\da-z])/gi,
|
33
|
+
|
34
|
+
// Used by jQuery.camelCase as callback to replace()
|
35
|
+
fcamelCase = function( all, letter ) {
|
36
|
+
return letter.toUpperCase();
|
37
|
+
};
|
38
|
+
|
39
|
+
jQuery.fn = jQuery.prototype = {
|
40
|
+
// The current version of jQuery being used
|
41
|
+
jquery: version,
|
42
|
+
|
43
|
+
constructor: jQuery,
|
44
|
+
|
45
|
+
// Start with an empty selector
|
46
|
+
selector: "",
|
47
|
+
|
48
|
+
// The default length of a jQuery object is 0
|
49
|
+
length: 0,
|
50
|
+
|
51
|
+
toArray: function() {
|
52
|
+
return slice.call( this );
|
53
|
+
},
|
54
|
+
|
55
|
+
// Get the Nth element in the matched element set OR
|
56
|
+
// Get the whole matched element set as a clean array
|
57
|
+
get: function( num ) {
|
58
|
+
return num != null ?
|
59
|
+
|
60
|
+
// Return just the one element from the set
|
61
|
+
( num < 0 ? this[ num + this.length ] : this[ num ] ) :
|
62
|
+
|
63
|
+
// Return all the elements in a clean array
|
64
|
+
slice.call( this );
|
65
|
+
},
|
66
|
+
|
67
|
+
// Take an array of elements and push it onto the stack
|
68
|
+
// (returning the new matched element set)
|
69
|
+
pushStack: function( elems ) {
|
70
|
+
|
71
|
+
// Build a new jQuery matched element set
|
72
|
+
var ret = jQuery.merge( this.constructor(), elems );
|
73
|
+
|
74
|
+
// Add the old object onto the stack (as a reference)
|
75
|
+
ret.prevObject = this;
|
76
|
+
ret.context = this.context;
|
77
|
+
|
78
|
+
// Return the newly-formed element set
|
79
|
+
return ret;
|
80
|
+
},
|
81
|
+
|
82
|
+
// Execute a callback for every element in the matched set.
|
83
|
+
// (You can seed the arguments with an array of args, but this is
|
84
|
+
// only used internally.)
|
85
|
+
each: function( callback, args ) {
|
86
|
+
return jQuery.each( this, callback, args );
|
87
|
+
},
|
88
|
+
|
89
|
+
map: function( callback ) {
|
90
|
+
return this.pushStack( jQuery.map(this, function( elem, i ) {
|
91
|
+
return callback.call( elem, i, elem );
|
92
|
+
}));
|
93
|
+
},
|
94
|
+
|
95
|
+
slice: function() {
|
96
|
+
return this.pushStack( slice.apply( this, arguments ) );
|
97
|
+
},
|
98
|
+
|
99
|
+
first: function() {
|
100
|
+
return this.eq( 0 );
|
101
|
+
},
|
102
|
+
|
103
|
+
last: function() {
|
104
|
+
return this.eq( -1 );
|
105
|
+
},
|
106
|
+
|
107
|
+
eq: function( i ) {
|
108
|
+
var len = this.length,
|
109
|
+
j = +i + ( i < 0 ? len : 0 );
|
110
|
+
return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] );
|
111
|
+
},
|
112
|
+
|
113
|
+
end: function() {
|
114
|
+
return this.prevObject || this.constructor(null);
|
115
|
+
},
|
116
|
+
|
117
|
+
// For internal use only.
|
118
|
+
// Behaves like an Array's method, not like a jQuery method.
|
119
|
+
push: push,
|
120
|
+
sort: arr.sort,
|
121
|
+
splice: arr.splice
|
122
|
+
};
|
123
|
+
|
124
|
+
jQuery.extend = jQuery.fn.extend = function() {
|
125
|
+
var options, name, src, copy, copyIsArray, clone,
|
126
|
+
target = arguments[0] || {},
|
127
|
+
i = 1,
|
128
|
+
length = arguments.length,
|
129
|
+
deep = false;
|
130
|
+
|
131
|
+
// Handle a deep copy situation
|
132
|
+
if ( typeof target === "boolean" ) {
|
133
|
+
deep = target;
|
134
|
+
|
135
|
+
// Skip the boolean and the target
|
136
|
+
target = arguments[ i ] || {};
|
137
|
+
i++;
|
138
|
+
}
|
139
|
+
|
140
|
+
// Handle case when target is a string or something (possible in deep copy)
|
141
|
+
if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
|
142
|
+
target = {};
|
143
|
+
}
|
144
|
+
|
145
|
+
// Extend jQuery itself if only one argument is passed
|
146
|
+
if ( i === length ) {
|
147
|
+
target = this;
|
148
|
+
i--;
|
149
|
+
}
|
150
|
+
|
151
|
+
for ( ; i < length; i++ ) {
|
152
|
+
// Only deal with non-null/undefined values
|
153
|
+
if ( (options = arguments[ i ]) != null ) {
|
154
|
+
// Extend the base object
|
155
|
+
for ( name in options ) {
|
156
|
+
src = target[ name ];
|
157
|
+
copy = options[ name ];
|
158
|
+
|
159
|
+
// Prevent never-ending loop
|
160
|
+
if ( target === copy ) {
|
161
|
+
continue;
|
162
|
+
}
|
163
|
+
|
164
|
+
// Recurse if we're merging plain objects or arrays
|
165
|
+
if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
|
166
|
+
if ( copyIsArray ) {
|
167
|
+
copyIsArray = false;
|
168
|
+
clone = src && jQuery.isArray(src) ? src : [];
|
169
|
+
|
170
|
+
} else {
|
171
|
+
clone = src && jQuery.isPlainObject(src) ? src : {};
|
172
|
+
}
|
173
|
+
|
174
|
+
// Never move original objects, clone them
|
175
|
+
target[ name ] = jQuery.extend( deep, clone, copy );
|
176
|
+
|
177
|
+
// Don't bring in undefined values
|
178
|
+
} else if ( copy !== undefined ) {
|
179
|
+
target[ name ] = copy;
|
180
|
+
}
|
181
|
+
}
|
182
|
+
}
|
183
|
+
}
|
184
|
+
|
185
|
+
// Return the modified object
|
186
|
+
return target;
|
187
|
+
};
|
188
|
+
|
189
|
+
jQuery.extend({
|
190
|
+
// Unique for each copy of jQuery on the page
|
191
|
+
expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ),
|
192
|
+
|
193
|
+
// Assume jQuery is ready without the ready module
|
194
|
+
isReady: true,
|
195
|
+
|
196
|
+
error: function( msg ) {
|
197
|
+
throw new Error( msg );
|
198
|
+
},
|
199
|
+
|
200
|
+
noop: function() {},
|
201
|
+
|
202
|
+
isFunction: function( obj ) {
|
203
|
+
return jQuery.type(obj) === "function";
|
204
|
+
},
|
205
|
+
|
206
|
+
isArray: Array.isArray,
|
207
|
+
|
208
|
+
isWindow: function( obj ) {
|
209
|
+
return obj != null && obj === obj.window;
|
210
|
+
},
|
211
|
+
|
212
|
+
isNumeric: function( obj ) {
|
213
|
+
// parseFloat NaNs numeric-cast false positives (null|true|false|"")
|
214
|
+
// ...but misinterprets leading-number strings, particularly hex literals ("0x...")
|
215
|
+
// subtraction forces infinities to NaN
|
216
|
+
// adding 1 corrects loss of precision from parseFloat (#15100)
|
217
|
+
return !jQuery.isArray( obj ) && (obj - parseFloat( obj ) + 1) >= 0;
|
218
|
+
},
|
219
|
+
|
220
|
+
isPlainObject: function( obj ) {
|
221
|
+
// Not plain objects:
|
222
|
+
// - Any object or value whose internal [[Class]] property is not "[object Object]"
|
223
|
+
// - DOM nodes
|
224
|
+
// - window
|
225
|
+
if ( jQuery.type( obj ) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
|
226
|
+
return false;
|
227
|
+
}
|
228
|
+
|
229
|
+
if ( obj.constructor &&
|
230
|
+
!hasOwn.call( obj.constructor.prototype, "isPrototypeOf" ) ) {
|
231
|
+
return false;
|
232
|
+
}
|
233
|
+
|
234
|
+
// If the function hasn't returned already, we're confident that
|
235
|
+
// |obj| is a plain object, created by {} or constructed with new Object
|
236
|
+
return true;
|
237
|
+
},
|
238
|
+
|
239
|
+
isEmptyObject: function( obj ) {
|
240
|
+
var name;
|
241
|
+
for ( name in obj ) {
|
242
|
+
return false;
|
243
|
+
}
|
244
|
+
return true;
|
245
|
+
},
|
246
|
+
|
247
|
+
type: function( obj ) {
|
248
|
+
if ( obj == null ) {
|
249
|
+
return obj + "";
|
250
|
+
}
|
251
|
+
// Support: Android<4.0, iOS<6 (functionish RegExp)
|
252
|
+
return typeof obj === "object" || typeof obj === "function" ?
|
253
|
+
class2type[ toString.call(obj) ] || "object" :
|
254
|
+
typeof obj;
|
255
|
+
},
|
256
|
+
|
257
|
+
// Evaluates a script in a global context
|
258
|
+
globalEval: function( code ) {
|
259
|
+
var script,
|
260
|
+
indirect = eval;
|
261
|
+
|
262
|
+
code = jQuery.trim( code );
|
263
|
+
|
264
|
+
if ( code ) {
|
265
|
+
// If the code includes a valid, prologue position
|
266
|
+
// strict mode pragma, execute code by injecting a
|
267
|
+
// script tag into the document.
|
268
|
+
if ( code.indexOf("use strict") === 1 ) {
|
269
|
+
script = document.createElement("script");
|
270
|
+
script.text = code;
|
271
|
+
document.head.appendChild( script ).parentNode.removeChild( script );
|
272
|
+
} else {
|
273
|
+
// Otherwise, avoid the DOM node creation, insertion
|
274
|
+
// and removal by using an indirect global eval
|
275
|
+
indirect( code );
|
276
|
+
}
|
277
|
+
}
|
278
|
+
},
|
279
|
+
|
280
|
+
// Convert dashed to camelCase; used by the css and data modules
|
281
|
+
// Support: IE9-11+
|
282
|
+
// Microsoft forgot to hump their vendor prefix (#9572)
|
283
|
+
camelCase: function( string ) {
|
284
|
+
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
|
285
|
+
},
|
286
|
+
|
287
|
+
nodeName: function( elem, name ) {
|
288
|
+
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
|
289
|
+
},
|
290
|
+
|
291
|
+
// args is for internal usage only
|
292
|
+
each: function( obj, callback, args ) {
|
293
|
+
var value,
|
294
|
+
i = 0,
|
295
|
+
length = obj.length,
|
296
|
+
isArray = isArraylike( obj );
|
297
|
+
|
298
|
+
if ( args ) {
|
299
|
+
if ( isArray ) {
|
300
|
+
for ( ; i < length; i++ ) {
|
301
|
+
value = callback.apply( obj[ i ], args );
|
302
|
+
|
303
|
+
if ( value === false ) {
|
304
|
+
break;
|
305
|
+
}
|
306
|
+
}
|
307
|
+
} else {
|
308
|
+
for ( i in obj ) {
|
309
|
+
value = callback.apply( obj[ i ], args );
|
310
|
+
|
311
|
+
if ( value === false ) {
|
312
|
+
break;
|
313
|
+
}
|
314
|
+
}
|
315
|
+
}
|
316
|
+
|
317
|
+
// A special, fast, case for the most common use of each
|
318
|
+
} else {
|
319
|
+
if ( isArray ) {
|
320
|
+
for ( ; i < length; i++ ) {
|
321
|
+
value = callback.call( obj[ i ], i, obj[ i ] );
|
322
|
+
|
323
|
+
if ( value === false ) {
|
324
|
+
break;
|
325
|
+
}
|
326
|
+
}
|
327
|
+
} else {
|
328
|
+
for ( i in obj ) {
|
329
|
+
value = callback.call( obj[ i ], i, obj[ i ] );
|
330
|
+
|
331
|
+
if ( value === false ) {
|
332
|
+
break;
|
333
|
+
}
|
334
|
+
}
|
335
|
+
}
|
336
|
+
}
|
337
|
+
|
338
|
+
return obj;
|
339
|
+
},
|
340
|
+
|
341
|
+
// Support: Android<4.1
|
342
|
+
trim: function( text ) {
|
343
|
+
return text == null ?
|
344
|
+
"" :
|
345
|
+
( text + "" ).replace( rtrim, "" );
|
346
|
+
},
|
347
|
+
|
348
|
+
// results is for internal usage only
|
349
|
+
makeArray: function( arr, results ) {
|
350
|
+
var ret = results || [];
|
351
|
+
|
352
|
+
if ( arr != null ) {
|
353
|
+
if ( isArraylike( Object(arr) ) ) {
|
354
|
+
jQuery.merge( ret,
|
355
|
+
typeof arr === "string" ?
|
356
|
+
[ arr ] : arr
|
357
|
+
);
|
358
|
+
} else {
|
359
|
+
push.call( ret, arr );
|
360
|
+
}
|
361
|
+
}
|
362
|
+
|
363
|
+
return ret;
|
364
|
+
},
|
365
|
+
|
366
|
+
inArray: function( elem, arr, i ) {
|
367
|
+
return arr == null ? -1 : indexOf.call( arr, elem, i );
|
368
|
+
},
|
369
|
+
|
370
|
+
merge: function( first, second ) {
|
371
|
+
var len = +second.length,
|
372
|
+
j = 0,
|
373
|
+
i = first.length;
|
374
|
+
|
375
|
+
for ( ; j < len; j++ ) {
|
376
|
+
first[ i++ ] = second[ j ];
|
377
|
+
}
|
378
|
+
|
379
|
+
first.length = i;
|
380
|
+
|
381
|
+
return first;
|
382
|
+
},
|
383
|
+
|
384
|
+
grep: function( elems, callback, invert ) {
|
385
|
+
var callbackInverse,
|
386
|
+
matches = [],
|
387
|
+
i = 0,
|
388
|
+
length = elems.length,
|
389
|
+
callbackExpect = !invert;
|
390
|
+
|
391
|
+
// Go through the array, only saving the items
|
392
|
+
// that pass the validator function
|
393
|
+
for ( ; i < length; i++ ) {
|
394
|
+
callbackInverse = !callback( elems[ i ], i );
|
395
|
+
if ( callbackInverse !== callbackExpect ) {
|
396
|
+
matches.push( elems[ i ] );
|
397
|
+
}
|
398
|
+
}
|
399
|
+
|
400
|
+
return matches;
|
401
|
+
},
|
402
|
+
|
403
|
+
// arg is for internal usage only
|
404
|
+
map: function( elems, callback, arg ) {
|
405
|
+
var value,
|
406
|
+
i = 0,
|
407
|
+
length = elems.length,
|
408
|
+
isArray = isArraylike( elems ),
|
409
|
+
ret = [];
|
410
|
+
|
411
|
+
// Go through the array, translating each of the items to their new values
|
412
|
+
if ( isArray ) {
|
413
|
+
for ( ; i < length; i++ ) {
|
414
|
+
value = callback( elems[ i ], i, arg );
|
415
|
+
|
416
|
+
if ( value != null ) {
|
417
|
+
ret.push( value );
|
418
|
+
}
|
419
|
+
}
|
420
|
+
|
421
|
+
// Go through every key on the object,
|
422
|
+
} else {
|
423
|
+
for ( i in elems ) {
|
424
|
+
value = callback( elems[ i ], i, arg );
|
425
|
+
|
426
|
+
if ( value != null ) {
|
427
|
+
ret.push( value );
|
428
|
+
}
|
429
|
+
}
|
430
|
+
}
|
431
|
+
|
432
|
+
// Flatten any nested arrays
|
433
|
+
return concat.apply( [], ret );
|
434
|
+
},
|
435
|
+
|
436
|
+
// A global GUID counter for objects
|
437
|
+
guid: 1,
|
438
|
+
|
439
|
+
// Bind a function to a context, optionally partially applying any
|
440
|
+
// arguments.
|
441
|
+
proxy: function( fn, context ) {
|
442
|
+
var tmp, args, proxy;
|
443
|
+
|
444
|
+
if ( typeof context === "string" ) {
|
445
|
+
tmp = fn[ context ];
|
446
|
+
context = fn;
|
447
|
+
fn = tmp;
|
448
|
+
}
|
449
|
+
|
450
|
+
// Quick check to determine if target is callable, in the spec
|
451
|
+
// this throws a TypeError, but we will just return undefined.
|
452
|
+
if ( !jQuery.isFunction( fn ) ) {
|
453
|
+
return undefined;
|
454
|
+
}
|
455
|
+
|
456
|
+
// Simulated bind
|
457
|
+
args = slice.call( arguments, 2 );
|
458
|
+
proxy = function() {
|
459
|
+
return fn.apply( context || this, args.concat( slice.call( arguments ) ) );
|
460
|
+
};
|
461
|
+
|
462
|
+
// Set the guid of unique handler to the same of original handler, so it can be removed
|
463
|
+
proxy.guid = fn.guid = fn.guid || jQuery.guid++;
|
464
|
+
|
465
|
+
return proxy;
|
466
|
+
},
|
467
|
+
|
468
|
+
now: Date.now,
|
469
|
+
|
470
|
+
// jQuery.support is not used in Core but other projects attach their
|
471
|
+
// properties to it so it needs to exist.
|
472
|
+
support: support
|
473
|
+
});
|
474
|
+
|
475
|
+
// Populate the class2type map
|
476
|
+
jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {
|
477
|
+
class2type[ "[object " + name + "]" ] = name.toLowerCase();
|
478
|
+
});
|
479
|
+
|
480
|
+
function isArraylike( obj ) {
|
481
|
+
|
482
|
+
// Support: iOS 8.2 (not reproducible in simulator)
|
483
|
+
// `in` check used to prevent JIT error (gh-2145)
|
484
|
+
// hasOwn isn't used here due to false negatives
|
485
|
+
// regarding Nodelist length in IE
|
486
|
+
var length = "length" in obj && obj.length,
|
487
|
+
type = jQuery.type( obj );
|
488
|
+
|
489
|
+
if ( type === "function" || jQuery.isWindow( obj ) ) {
|
490
|
+
return false;
|
491
|
+
}
|
492
|
+
|
493
|
+
if ( obj.nodeType === 1 && length ) {
|
494
|
+
return true;
|
495
|
+
}
|
496
|
+
|
497
|
+
return type === "array" || length === 0 ||
|
498
|
+
typeof length === "number" && length > 0 && ( length - 1 ) in obj;
|
499
|
+
}
|
500
|
+
|
501
|
+
return jQuery;
|
502
|
+
});
|