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,18 @@
|
|
1
|
+
define([
|
2
|
+
"../ajax"
|
3
|
+
], function( jQuery ) {
|
4
|
+
|
5
|
+
jQuery._evalUrl = function( url ) {
|
6
|
+
return jQuery.ajax({
|
7
|
+
url: url,
|
8
|
+
type: "GET",
|
9
|
+
dataType: "script",
|
10
|
+
async: false,
|
11
|
+
global: false,
|
12
|
+
"throws": true
|
13
|
+
});
|
14
|
+
};
|
15
|
+
|
16
|
+
return jQuery._evalUrl;
|
17
|
+
|
18
|
+
});
|
@@ -0,0 +1,32 @@
|
|
1
|
+
define([
|
2
|
+
"../var/support"
|
3
|
+
], function( support ) {
|
4
|
+
|
5
|
+
(function() {
|
6
|
+
var fragment = document.createDocumentFragment(),
|
7
|
+
div = fragment.appendChild( document.createElement( "div" ) ),
|
8
|
+
input = document.createElement( "input" );
|
9
|
+
|
10
|
+
// Support: Safari<=5.1
|
11
|
+
// Check state lost if the name is set (#11217)
|
12
|
+
// Support: Windows Web Apps (WWA)
|
13
|
+
// `name` and `type` must use .setAttribute for WWA (#14901)
|
14
|
+
input.setAttribute( "type", "radio" );
|
15
|
+
input.setAttribute( "checked", "checked" );
|
16
|
+
input.setAttribute( "name", "t" );
|
17
|
+
|
18
|
+
div.appendChild( input );
|
19
|
+
|
20
|
+
// Support: Safari<=5.1, Android<4.2
|
21
|
+
// Older WebKit doesn't clone checked state correctly in fragments
|
22
|
+
support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;
|
23
|
+
|
24
|
+
// Support: IE<=11+
|
25
|
+
// Make sure textarea (and checkbox) defaultValue is properly cloned
|
26
|
+
div.innerHTML = "<textarea>x</textarea>";
|
27
|
+
support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
|
28
|
+
})();
|
29
|
+
|
30
|
+
return support;
|
31
|
+
|
32
|
+
});
|
@@ -0,0 +1,207 @@
|
|
1
|
+
define([
|
2
|
+
"./core",
|
3
|
+
"./var/strundefined",
|
4
|
+
"./core/access",
|
5
|
+
"./css/var/rnumnonpx",
|
6
|
+
"./css/curCSS",
|
7
|
+
"./css/addGetHookIf",
|
8
|
+
"./css/support",
|
9
|
+
|
10
|
+
"./core/init",
|
11
|
+
"./css",
|
12
|
+
"./selector" // contains
|
13
|
+
], function( jQuery, strundefined, access, rnumnonpx, curCSS, addGetHookIf, support ) {
|
14
|
+
|
15
|
+
var docElem = window.document.documentElement;
|
16
|
+
|
17
|
+
/**
|
18
|
+
* Gets a window from an element
|
19
|
+
*/
|
20
|
+
function getWindow( elem ) {
|
21
|
+
return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
|
22
|
+
}
|
23
|
+
|
24
|
+
jQuery.offset = {
|
25
|
+
setOffset: function( elem, options, i ) {
|
26
|
+
var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
|
27
|
+
position = jQuery.css( elem, "position" ),
|
28
|
+
curElem = jQuery( elem ),
|
29
|
+
props = {};
|
30
|
+
|
31
|
+
// Set position first, in-case top/left are set even on static elem
|
32
|
+
if ( position === "static" ) {
|
33
|
+
elem.style.position = "relative";
|
34
|
+
}
|
35
|
+
|
36
|
+
curOffset = curElem.offset();
|
37
|
+
curCSSTop = jQuery.css( elem, "top" );
|
38
|
+
curCSSLeft = jQuery.css( elem, "left" );
|
39
|
+
calculatePosition = ( position === "absolute" || position === "fixed" ) &&
|
40
|
+
( curCSSTop + curCSSLeft ).indexOf("auto") > -1;
|
41
|
+
|
42
|
+
// Need to be able to calculate position if either
|
43
|
+
// top or left is auto and position is either absolute or fixed
|
44
|
+
if ( calculatePosition ) {
|
45
|
+
curPosition = curElem.position();
|
46
|
+
curTop = curPosition.top;
|
47
|
+
curLeft = curPosition.left;
|
48
|
+
|
49
|
+
} else {
|
50
|
+
curTop = parseFloat( curCSSTop ) || 0;
|
51
|
+
curLeft = parseFloat( curCSSLeft ) || 0;
|
52
|
+
}
|
53
|
+
|
54
|
+
if ( jQuery.isFunction( options ) ) {
|
55
|
+
options = options.call( elem, i, curOffset );
|
56
|
+
}
|
57
|
+
|
58
|
+
if ( options.top != null ) {
|
59
|
+
props.top = ( options.top - curOffset.top ) + curTop;
|
60
|
+
}
|
61
|
+
if ( options.left != null ) {
|
62
|
+
props.left = ( options.left - curOffset.left ) + curLeft;
|
63
|
+
}
|
64
|
+
|
65
|
+
if ( "using" in options ) {
|
66
|
+
options.using.call( elem, props );
|
67
|
+
|
68
|
+
} else {
|
69
|
+
curElem.css( props );
|
70
|
+
}
|
71
|
+
}
|
72
|
+
};
|
73
|
+
|
74
|
+
jQuery.fn.extend({
|
75
|
+
offset: function( options ) {
|
76
|
+
if ( arguments.length ) {
|
77
|
+
return options === undefined ?
|
78
|
+
this :
|
79
|
+
this.each(function( i ) {
|
80
|
+
jQuery.offset.setOffset( this, options, i );
|
81
|
+
});
|
82
|
+
}
|
83
|
+
|
84
|
+
var docElem, win,
|
85
|
+
elem = this[ 0 ],
|
86
|
+
box = { top: 0, left: 0 },
|
87
|
+
doc = elem && elem.ownerDocument;
|
88
|
+
|
89
|
+
if ( !doc ) {
|
90
|
+
return;
|
91
|
+
}
|
92
|
+
|
93
|
+
docElem = doc.documentElement;
|
94
|
+
|
95
|
+
// Make sure it's not a disconnected DOM node
|
96
|
+
if ( !jQuery.contains( docElem, elem ) ) {
|
97
|
+
return box;
|
98
|
+
}
|
99
|
+
|
100
|
+
// Support: BlackBerry 5, iOS 3 (original iPhone)
|
101
|
+
// If we don't have gBCR, just use 0,0 rather than error
|
102
|
+
if ( typeof elem.getBoundingClientRect !== strundefined ) {
|
103
|
+
box = elem.getBoundingClientRect();
|
104
|
+
}
|
105
|
+
win = getWindow( doc );
|
106
|
+
return {
|
107
|
+
top: box.top + win.pageYOffset - docElem.clientTop,
|
108
|
+
left: box.left + win.pageXOffset - docElem.clientLeft
|
109
|
+
};
|
110
|
+
},
|
111
|
+
|
112
|
+
position: function() {
|
113
|
+
if ( !this[ 0 ] ) {
|
114
|
+
return;
|
115
|
+
}
|
116
|
+
|
117
|
+
var offsetParent, offset,
|
118
|
+
elem = this[ 0 ],
|
119
|
+
parentOffset = { top: 0, left: 0 };
|
120
|
+
|
121
|
+
// Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent
|
122
|
+
if ( jQuery.css( elem, "position" ) === "fixed" ) {
|
123
|
+
// Assume getBoundingClientRect is there when computed position is fixed
|
124
|
+
offset = elem.getBoundingClientRect();
|
125
|
+
|
126
|
+
} else {
|
127
|
+
// Get *real* offsetParent
|
128
|
+
offsetParent = this.offsetParent();
|
129
|
+
|
130
|
+
// Get correct offsets
|
131
|
+
offset = this.offset();
|
132
|
+
if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) {
|
133
|
+
parentOffset = offsetParent.offset();
|
134
|
+
}
|
135
|
+
|
136
|
+
// Add offsetParent borders
|
137
|
+
parentOffset.top += jQuery.css( offsetParent[ 0 ], "borderTopWidth", true );
|
138
|
+
parentOffset.left += jQuery.css( offsetParent[ 0 ], "borderLeftWidth", true );
|
139
|
+
}
|
140
|
+
|
141
|
+
// Subtract parent offsets and element margins
|
142
|
+
return {
|
143
|
+
top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ),
|
144
|
+
left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true )
|
145
|
+
};
|
146
|
+
},
|
147
|
+
|
148
|
+
offsetParent: function() {
|
149
|
+
return this.map(function() {
|
150
|
+
var offsetParent = this.offsetParent || docElem;
|
151
|
+
|
152
|
+
while ( offsetParent && ( !jQuery.nodeName( offsetParent, "html" ) && jQuery.css( offsetParent, "position" ) === "static" ) ) {
|
153
|
+
offsetParent = offsetParent.offsetParent;
|
154
|
+
}
|
155
|
+
|
156
|
+
return offsetParent || docElem;
|
157
|
+
});
|
158
|
+
}
|
159
|
+
});
|
160
|
+
|
161
|
+
// Create scrollLeft and scrollTop methods
|
162
|
+
jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) {
|
163
|
+
var top = "pageYOffset" === prop;
|
164
|
+
|
165
|
+
jQuery.fn[ method ] = function( val ) {
|
166
|
+
return access( this, function( elem, method, val ) {
|
167
|
+
var win = getWindow( elem );
|
168
|
+
|
169
|
+
if ( val === undefined ) {
|
170
|
+
return win ? win[ prop ] : elem[ method ];
|
171
|
+
}
|
172
|
+
|
173
|
+
if ( win ) {
|
174
|
+
win.scrollTo(
|
175
|
+
!top ? val : window.pageXOffset,
|
176
|
+
top ? val : window.pageYOffset
|
177
|
+
);
|
178
|
+
|
179
|
+
} else {
|
180
|
+
elem[ method ] = val;
|
181
|
+
}
|
182
|
+
}, method, val, arguments.length, null );
|
183
|
+
};
|
184
|
+
});
|
185
|
+
|
186
|
+
// Support: Safari<7+, Chrome<37+
|
187
|
+
// Add the top/left cssHooks using jQuery.fn.position
|
188
|
+
// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084
|
189
|
+
// Blink bug: https://code.google.com/p/chromium/issues/detail?id=229280
|
190
|
+
// getComputedStyle returns percent when specified for top/left/bottom/right;
|
191
|
+
// rather than make the css module depend on the offset module, just check for it here
|
192
|
+
jQuery.each( [ "top", "left" ], function( i, prop ) {
|
193
|
+
jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,
|
194
|
+
function( elem, computed ) {
|
195
|
+
if ( computed ) {
|
196
|
+
computed = curCSS( elem, prop );
|
197
|
+
// If curCSS returns percentage, fallback to offset
|
198
|
+
return rnumnonpx.test( computed ) ?
|
199
|
+
jQuery( elem ).position()[ prop ] + "px" :
|
200
|
+
computed;
|
201
|
+
}
|
202
|
+
}
|
203
|
+
);
|
204
|
+
});
|
205
|
+
|
206
|
+
return jQuery;
|
207
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
}));
|
@@ -0,0 +1,142 @@
|
|
1
|
+
define([
|
2
|
+
"./core",
|
3
|
+
"./data/var/data_priv",
|
4
|
+
"./deferred",
|
5
|
+
"./callbacks"
|
6
|
+
], function( jQuery, data_priv ) {
|
7
|
+
|
8
|
+
jQuery.extend({
|
9
|
+
queue: function( elem, type, data ) {
|
10
|
+
var queue;
|
11
|
+
|
12
|
+
if ( elem ) {
|
13
|
+
type = ( type || "fx" ) + "queue";
|
14
|
+
queue = data_priv.get( elem, type );
|
15
|
+
|
16
|
+
// Speed up dequeue by getting out quickly if this is just a lookup
|
17
|
+
if ( data ) {
|
18
|
+
if ( !queue || jQuery.isArray( data ) ) {
|
19
|
+
queue = data_priv.access( elem, type, jQuery.makeArray(data) );
|
20
|
+
} else {
|
21
|
+
queue.push( data );
|
22
|
+
}
|
23
|
+
}
|
24
|
+
return queue || [];
|
25
|
+
}
|
26
|
+
},
|
27
|
+
|
28
|
+
dequeue: function( elem, type ) {
|
29
|
+
type = type || "fx";
|
30
|
+
|
31
|
+
var queue = jQuery.queue( elem, type ),
|
32
|
+
startLength = queue.length,
|
33
|
+
fn = queue.shift(),
|
34
|
+
hooks = jQuery._queueHooks( elem, type ),
|
35
|
+
next = function() {
|
36
|
+
jQuery.dequeue( elem, type );
|
37
|
+
};
|
38
|
+
|
39
|
+
// If the fx queue is dequeued, always remove the progress sentinel
|
40
|
+
if ( fn === "inprogress" ) {
|
41
|
+
fn = queue.shift();
|
42
|
+
startLength--;
|
43
|
+
}
|
44
|
+
|
45
|
+
if ( fn ) {
|
46
|
+
|
47
|
+
// Add a progress sentinel to prevent the fx queue from being
|
48
|
+
// automatically dequeued
|
49
|
+
if ( type === "fx" ) {
|
50
|
+
queue.unshift( "inprogress" );
|
51
|
+
}
|
52
|
+
|
53
|
+
// Clear up the last queue stop function
|
54
|
+
delete hooks.stop;
|
55
|
+
fn.call( elem, next, hooks );
|
56
|
+
}
|
57
|
+
|
58
|
+
if ( !startLength && hooks ) {
|
59
|
+
hooks.empty.fire();
|
60
|
+
}
|
61
|
+
},
|
62
|
+
|
63
|
+
// Not public - generate a queueHooks object, or return the current one
|
64
|
+
_queueHooks: function( elem, type ) {
|
65
|
+
var key = type + "queueHooks";
|
66
|
+
return data_priv.get( elem, key ) || data_priv.access( elem, key, {
|
67
|
+
empty: jQuery.Callbacks("once memory").add(function() {
|
68
|
+
data_priv.remove( elem, [ type + "queue", key ] );
|
69
|
+
})
|
70
|
+
});
|
71
|
+
}
|
72
|
+
});
|
73
|
+
|
74
|
+
jQuery.fn.extend({
|
75
|
+
queue: function( type, data ) {
|
76
|
+
var setter = 2;
|
77
|
+
|
78
|
+
if ( typeof type !== "string" ) {
|
79
|
+
data = type;
|
80
|
+
type = "fx";
|
81
|
+
setter--;
|
82
|
+
}
|
83
|
+
|
84
|
+
if ( arguments.length < setter ) {
|
85
|
+
return jQuery.queue( this[0], type );
|
86
|
+
}
|
87
|
+
|
88
|
+
return data === undefined ?
|
89
|
+
this :
|
90
|
+
this.each(function() {
|
91
|
+
var queue = jQuery.queue( this, type, data );
|
92
|
+
|
93
|
+
// Ensure a hooks for this queue
|
94
|
+
jQuery._queueHooks( this, type );
|
95
|
+
|
96
|
+
if ( type === "fx" && queue[0] !== "inprogress" ) {
|
97
|
+
jQuery.dequeue( this, type );
|
98
|
+
}
|
99
|
+
});
|
100
|
+
},
|
101
|
+
dequeue: function( type ) {
|
102
|
+
return this.each(function() {
|
103
|
+
jQuery.dequeue( this, type );
|
104
|
+
});
|
105
|
+
},
|
106
|
+
clearQueue: function( type ) {
|
107
|
+
return this.queue( type || "fx", [] );
|
108
|
+
},
|
109
|
+
// Get a promise resolved when queues of a certain type
|
110
|
+
// are emptied (fx is the type by default)
|
111
|
+
promise: function( type, obj ) {
|
112
|
+
var tmp,
|
113
|
+
count = 1,
|
114
|
+
defer = jQuery.Deferred(),
|
115
|
+
elements = this,
|
116
|
+
i = this.length,
|
117
|
+
resolve = function() {
|
118
|
+
if ( !( --count ) ) {
|
119
|
+
defer.resolveWith( elements, [ elements ] );
|
120
|
+
}
|
121
|
+
};
|
122
|
+
|
123
|
+
if ( typeof type !== "string" ) {
|
124
|
+
obj = type;
|
125
|
+
type = undefined;
|
126
|
+
}
|
127
|
+
type = type || "fx";
|
128
|
+
|
129
|
+
while ( i-- ) {
|
130
|
+
tmp = data_priv.get( elements[ i ], type + "queueHooks" );
|
131
|
+
if ( tmp && tmp.empty ) {
|
132
|
+
count++;
|
133
|
+
tmp.empty.add( resolve );
|
134
|
+
}
|
135
|
+
}
|
136
|
+
resolve();
|
137
|
+
return defer.promise( obj );
|
138
|
+
}
|
139
|
+
});
|
140
|
+
|
141
|
+
return jQuery;
|
142
|
+
});
|
@@ -0,0 +1,22 @@
|
|
1
|
+
define([
|
2
|
+
"../core",
|
3
|
+
"../queue",
|
4
|
+
"../effects" // Delay is optional because of this dependency
|
5
|
+
], function( jQuery ) {
|
6
|
+
|
7
|
+
// Based off of the plugin by Clint Helfers, with permission.
|
8
|
+
// http://blindsignals.com/index.php/2009/07/jquery-delay/
|
9
|
+
jQuery.fn.delay = function( time, type ) {
|
10
|
+
time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
|
11
|
+
type = type || "fx";
|
12
|
+
|
13
|
+
return this.queue( type, function( next, hooks ) {
|
14
|
+
var timeout = setTimeout( next, time );
|
15
|
+
hooks.stop = function() {
|
16
|
+
clearTimeout( timeout );
|
17
|
+
};
|
18
|
+
});
|
19
|
+
};
|
20
|
+
|
21
|
+
return jQuery.fn.delay;
|
22
|
+
});
|
@@ -0,0 +1,172 @@
|
|
1
|
+
define([
|
2
|
+
"./core"
|
3
|
+
], function( jQuery ) {
|
4
|
+
|
5
|
+
/*
|
6
|
+
* Optional (non-Sizzle) selector module for custom builds.
|
7
|
+
*
|
8
|
+
* Note that this DOES NOT SUPPORT many documented jQuery
|
9
|
+
* features in exchange for its smaller size:
|
10
|
+
*
|
11
|
+
* Attribute not equal selector
|
12
|
+
* Positional selectors (:first; :eq(n); :odd; etc.)
|
13
|
+
* Type selectors (:input; :checkbox; :button; etc.)
|
14
|
+
* State-based selectors (:animated; :visible; :hidden; etc.)
|
15
|
+
* :has(selector)
|
16
|
+
* :not(complex selector)
|
17
|
+
* custom selectors via Sizzle extensions
|
18
|
+
* Leading combinators (e.g., $collection.find("> *"))
|
19
|
+
* Reliable functionality on XML fragments
|
20
|
+
* Requiring all parts of a selector to match elements under context
|
21
|
+
* (e.g., $div.find("div > *") now matches children of $div)
|
22
|
+
* Matching against non-elements
|
23
|
+
* Reliable sorting of disconnected nodes
|
24
|
+
* querySelectorAll bug fixes (e.g., unreliable :focus on WebKit)
|
25
|
+
*
|
26
|
+
* If any of these are unacceptable tradeoffs, either use Sizzle or
|
27
|
+
* customize this stub for the project's specific needs.
|
28
|
+
*/
|
29
|
+
|
30
|
+
var docElem = window.document.documentElement,
|
31
|
+
selector_hasDuplicate,
|
32
|
+
matches = docElem.matches ||
|
33
|
+
docElem.webkitMatchesSelector ||
|
34
|
+
docElem.mozMatchesSelector ||
|
35
|
+
docElem.oMatchesSelector ||
|
36
|
+
docElem.msMatchesSelector,
|
37
|
+
selector_sortOrder = function( a, b ) {
|
38
|
+
// Flag for duplicate removal
|
39
|
+
if ( a === b ) {
|
40
|
+
selector_hasDuplicate = true;
|
41
|
+
return 0;
|
42
|
+
}
|
43
|
+
|
44
|
+
var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b );
|
45
|
+
|
46
|
+
if ( compare ) {
|
47
|
+
// Disconnected nodes
|
48
|
+
if ( compare & 1 ) {
|
49
|
+
|
50
|
+
// Choose the first element that is related to our document
|
51
|
+
if ( a === document || jQuery.contains(document, a) ) {
|
52
|
+
return -1;
|
53
|
+
}
|
54
|
+
if ( b === document || jQuery.contains(document, b) ) {
|
55
|
+
return 1;
|
56
|
+
}
|
57
|
+
|
58
|
+
// Maintain original order
|
59
|
+
return 0;
|
60
|
+
}
|
61
|
+
|
62
|
+
return compare & 4 ? -1 : 1;
|
63
|
+
}
|
64
|
+
|
65
|
+
// Not directly comparable, sort on existence of method
|
66
|
+
return a.compareDocumentPosition ? -1 : 1;
|
67
|
+
};
|
68
|
+
|
69
|
+
jQuery.extend({
|
70
|
+
find: function( selector, context, results, seed ) {
|
71
|
+
var elem, nodeType,
|
72
|
+
i = 0;
|
73
|
+
|
74
|
+
results = results || [];
|
75
|
+
context = context || document;
|
76
|
+
|
77
|
+
// Same basic safeguard as Sizzle
|
78
|
+
if ( !selector || typeof selector !== "string" ) {
|
79
|
+
return results;
|
80
|
+
}
|
81
|
+
|
82
|
+
// Early return if context is not an element or document
|
83
|
+
if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) {
|
84
|
+
return [];
|
85
|
+
}
|
86
|
+
|
87
|
+
if ( seed ) {
|
88
|
+
while ( (elem = seed[i++]) ) {
|
89
|
+
if ( jQuery.find.matchesSelector(elem, selector) ) {
|
90
|
+
results.push( elem );
|
91
|
+
}
|
92
|
+
}
|
93
|
+
} else {
|
94
|
+
jQuery.merge( results, context.querySelectorAll(selector) );
|
95
|
+
}
|
96
|
+
|
97
|
+
return results;
|
98
|
+
},
|
99
|
+
unique: function( results ) {
|
100
|
+
var elem,
|
101
|
+
duplicates = [],
|
102
|
+
i = 0,
|
103
|
+
j = 0;
|
104
|
+
|
105
|
+
selector_hasDuplicate = false;
|
106
|
+
results.sort( selector_sortOrder );
|
107
|
+
|
108
|
+
if ( selector_hasDuplicate ) {
|
109
|
+
while ( (elem = results[i++]) ) {
|
110
|
+
if ( elem === results[ i ] ) {
|
111
|
+
j = duplicates.push( i );
|
112
|
+
}
|
113
|
+
}
|
114
|
+
while ( j-- ) {
|
115
|
+
results.splice( duplicates[ j ], 1 );
|
116
|
+
}
|
117
|
+
}
|
118
|
+
|
119
|
+
return results;
|
120
|
+
},
|
121
|
+
text: function( elem ) {
|
122
|
+
var node,
|
123
|
+
ret = "",
|
124
|
+
i = 0,
|
125
|
+
nodeType = elem.nodeType;
|
126
|
+
|
127
|
+
if ( !nodeType ) {
|
128
|
+
// If no nodeType, this is expected to be an array
|
129
|
+
while ( (node = elem[i++]) ) {
|
130
|
+
// Do not traverse comment nodes
|
131
|
+
ret += jQuery.text( node );
|
132
|
+
}
|
133
|
+
} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {
|
134
|
+
// Use textContent for elements
|
135
|
+
return elem.textContent;
|
136
|
+
} else if ( nodeType === 3 || nodeType === 4 ) {
|
137
|
+
return elem.nodeValue;
|
138
|
+
}
|
139
|
+
// Do not include comment or processing instruction nodes
|
140
|
+
|
141
|
+
return ret;
|
142
|
+
},
|
143
|
+
contains: function( a, b ) {
|
144
|
+
var adown = a.nodeType === 9 ? a.documentElement : a,
|
145
|
+
bup = b && b.parentNode;
|
146
|
+
return a === bup || !!( bup && bup.nodeType === 1 && adown.contains(bup) );
|
147
|
+
},
|
148
|
+
isXMLDoc: function( elem ) {
|
149
|
+
return (elem.ownerDocument || elem).documentElement.nodeName !== "HTML";
|
150
|
+
},
|
151
|
+
expr: {
|
152
|
+
attrHandle: {},
|
153
|
+
match: {
|
154
|
+
bool: /^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i,
|
155
|
+
needsContext: /^[\x20\t\r\n\f]*[>+~]/
|
156
|
+
}
|
157
|
+
}
|
158
|
+
});
|
159
|
+
|
160
|
+
jQuery.extend( jQuery.find, {
|
161
|
+
matches: function( expr, elements ) {
|
162
|
+
return jQuery.find( expr, null, null, elements );
|
163
|
+
},
|
164
|
+
matchesSelector: function( elem, expr ) {
|
165
|
+
return matches.call( elem, expr );
|
166
|
+
},
|
167
|
+
attr: function( elem, name ) {
|
168
|
+
return elem.getAttribute( name );
|
169
|
+
}
|
170
|
+
});
|
171
|
+
|
172
|
+
});
|