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,89 @@
|
|
1
|
+
define([
|
2
|
+
"../core",
|
3
|
+
"./var/nonce",
|
4
|
+
"./var/rquery",
|
5
|
+
"../ajax"
|
6
|
+
], function( jQuery, nonce, rquery ) {
|
7
|
+
|
8
|
+
var oldCallbacks = [],
|
9
|
+
rjsonp = /(=)\?(?=&|$)|\?\?/;
|
10
|
+
|
11
|
+
// Default jsonp settings
|
12
|
+
jQuery.ajaxSetup({
|
13
|
+
jsonp: "callback",
|
14
|
+
jsonpCallback: function() {
|
15
|
+
var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
|
16
|
+
this[ callback ] = true;
|
17
|
+
return callback;
|
18
|
+
}
|
19
|
+
});
|
20
|
+
|
21
|
+
// Detect, normalize options and install callbacks for jsonp requests
|
22
|
+
jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
|
23
|
+
|
24
|
+
var callbackName, overwritten, responseContainer,
|
25
|
+
jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
|
26
|
+
"url" :
|
27
|
+
typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
|
28
|
+
);
|
29
|
+
|
30
|
+
// Handle iff the expected data type is "jsonp" or we have a parameter to set
|
31
|
+
if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
|
32
|
+
|
33
|
+
// Get callback name, remembering preexisting value associated with it
|
34
|
+
callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
|
35
|
+
s.jsonpCallback() :
|
36
|
+
s.jsonpCallback;
|
37
|
+
|
38
|
+
// Insert callback into url or form data
|
39
|
+
if ( jsonProp ) {
|
40
|
+
s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
|
41
|
+
} else if ( s.jsonp !== false ) {
|
42
|
+
s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
|
43
|
+
}
|
44
|
+
|
45
|
+
// Use data converter to retrieve json after script execution
|
46
|
+
s.converters["script json"] = function() {
|
47
|
+
if ( !responseContainer ) {
|
48
|
+
jQuery.error( callbackName + " was not called" );
|
49
|
+
}
|
50
|
+
return responseContainer[ 0 ];
|
51
|
+
};
|
52
|
+
|
53
|
+
// force json dataType
|
54
|
+
s.dataTypes[ 0 ] = "json";
|
55
|
+
|
56
|
+
// Install callback
|
57
|
+
overwritten = window[ callbackName ];
|
58
|
+
window[ callbackName ] = function() {
|
59
|
+
responseContainer = arguments;
|
60
|
+
};
|
61
|
+
|
62
|
+
// Clean-up function (fires after converters)
|
63
|
+
jqXHR.always(function() {
|
64
|
+
// Restore preexisting value
|
65
|
+
window[ callbackName ] = overwritten;
|
66
|
+
|
67
|
+
// Save back as free
|
68
|
+
if ( s[ callbackName ] ) {
|
69
|
+
// make sure that re-using the options doesn't screw things around
|
70
|
+
s.jsonpCallback = originalSettings.jsonpCallback;
|
71
|
+
|
72
|
+
// save the callback name for future use
|
73
|
+
oldCallbacks.push( callbackName );
|
74
|
+
}
|
75
|
+
|
76
|
+
// Call if it was a function and we have a response
|
77
|
+
if ( responseContainer && jQuery.isFunction( overwritten ) ) {
|
78
|
+
overwritten( responseContainer[ 0 ] );
|
79
|
+
}
|
80
|
+
|
81
|
+
responseContainer = overwritten = undefined;
|
82
|
+
});
|
83
|
+
|
84
|
+
// Delegate to script
|
85
|
+
return "script";
|
86
|
+
}
|
87
|
+
});
|
88
|
+
|
89
|
+
});
|
@@ -0,0 +1,75 @@
|
|
1
|
+
define([
|
2
|
+
"../core",
|
3
|
+
"../core/parseHTML",
|
4
|
+
"../ajax",
|
5
|
+
"../traversing",
|
6
|
+
"../manipulation",
|
7
|
+
"../selector",
|
8
|
+
// Optional event/alias dependency
|
9
|
+
"../event/alias"
|
10
|
+
], function( jQuery ) {
|
11
|
+
|
12
|
+
// Keep a copy of the old load method
|
13
|
+
var _load = jQuery.fn.load;
|
14
|
+
|
15
|
+
/**
|
16
|
+
* Load a url into a page
|
17
|
+
*/
|
18
|
+
jQuery.fn.load = function( url, params, callback ) {
|
19
|
+
if ( typeof url !== "string" && _load ) {
|
20
|
+
return _load.apply( this, arguments );
|
21
|
+
}
|
22
|
+
|
23
|
+
var selector, type, response,
|
24
|
+
self = this,
|
25
|
+
off = url.indexOf(" ");
|
26
|
+
|
27
|
+
if ( off >= 0 ) {
|
28
|
+
selector = jQuery.trim( url.slice( off ) );
|
29
|
+
url = url.slice( 0, off );
|
30
|
+
}
|
31
|
+
|
32
|
+
// If it's a function
|
33
|
+
if ( jQuery.isFunction( params ) ) {
|
34
|
+
|
35
|
+
// We assume that it's the callback
|
36
|
+
callback = params;
|
37
|
+
params = undefined;
|
38
|
+
|
39
|
+
// Otherwise, build a param string
|
40
|
+
} else if ( params && typeof params === "object" ) {
|
41
|
+
type = "POST";
|
42
|
+
}
|
43
|
+
|
44
|
+
// If we have elements to modify, make the request
|
45
|
+
if ( self.length > 0 ) {
|
46
|
+
jQuery.ajax({
|
47
|
+
url: url,
|
48
|
+
|
49
|
+
// if "type" variable is undefined, then "GET" method will be used
|
50
|
+
type: type,
|
51
|
+
dataType: "html",
|
52
|
+
data: params
|
53
|
+
}).done(function( responseText ) {
|
54
|
+
|
55
|
+
// Save response for use in complete callback
|
56
|
+
response = arguments;
|
57
|
+
|
58
|
+
self.html( selector ?
|
59
|
+
|
60
|
+
// If a selector was specified, locate the right elements in a dummy div
|
61
|
+
// Exclude scripts to avoid IE 'Permission Denied' errors
|
62
|
+
jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
|
63
|
+
|
64
|
+
// Otherwise use the full result
|
65
|
+
responseText );
|
66
|
+
|
67
|
+
}).complete( callback && function( jqXHR, status ) {
|
68
|
+
self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
|
69
|
+
});
|
70
|
+
}
|
71
|
+
|
72
|
+
return this;
|
73
|
+
};
|
74
|
+
|
75
|
+
});
|
@@ -0,0 +1,28 @@
|
|
1
|
+
define([
|
2
|
+
"../core"
|
3
|
+
], function( jQuery ) {
|
4
|
+
|
5
|
+
// Cross-browser xml parsing
|
6
|
+
jQuery.parseXML = function( data ) {
|
7
|
+
var xml, tmp;
|
8
|
+
if ( !data || typeof data !== "string" ) {
|
9
|
+
return null;
|
10
|
+
}
|
11
|
+
|
12
|
+
// Support: IE9
|
13
|
+
try {
|
14
|
+
tmp = new DOMParser();
|
15
|
+
xml = tmp.parseFromString( data, "text/xml" );
|
16
|
+
} catch ( e ) {
|
17
|
+
xml = undefined;
|
18
|
+
}
|
19
|
+
|
20
|
+
if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
|
21
|
+
jQuery.error( "Invalid XML: " + data );
|
22
|
+
}
|
23
|
+
return xml;
|
24
|
+
};
|
25
|
+
|
26
|
+
return jQuery.parseXML;
|
27
|
+
|
28
|
+
});
|
@@ -0,0 +1,64 @@
|
|
1
|
+
define([
|
2
|
+
"../core",
|
3
|
+
"../ajax"
|
4
|
+
], function( jQuery ) {
|
5
|
+
|
6
|
+
// Install script dataType
|
7
|
+
jQuery.ajaxSetup({
|
8
|
+
accepts: {
|
9
|
+
script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
|
10
|
+
},
|
11
|
+
contents: {
|
12
|
+
script: /(?:java|ecma)script/
|
13
|
+
},
|
14
|
+
converters: {
|
15
|
+
"text script": function( text ) {
|
16
|
+
jQuery.globalEval( text );
|
17
|
+
return text;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
});
|
21
|
+
|
22
|
+
// Handle cache's special case and crossDomain
|
23
|
+
jQuery.ajaxPrefilter( "script", function( s ) {
|
24
|
+
if ( s.cache === undefined ) {
|
25
|
+
s.cache = false;
|
26
|
+
}
|
27
|
+
if ( s.crossDomain ) {
|
28
|
+
s.type = "GET";
|
29
|
+
}
|
30
|
+
});
|
31
|
+
|
32
|
+
// Bind script tag hack transport
|
33
|
+
jQuery.ajaxTransport( "script", function( s ) {
|
34
|
+
// This transport only deals with cross domain requests
|
35
|
+
if ( s.crossDomain ) {
|
36
|
+
var script, callback;
|
37
|
+
return {
|
38
|
+
send: function( _, complete ) {
|
39
|
+
script = jQuery("<script>").prop({
|
40
|
+
async: true,
|
41
|
+
charset: s.scriptCharset,
|
42
|
+
src: s.url
|
43
|
+
}).on(
|
44
|
+
"load error",
|
45
|
+
callback = function( evt ) {
|
46
|
+
script.remove();
|
47
|
+
callback = null;
|
48
|
+
if ( evt ) {
|
49
|
+
complete( evt.type === "error" ? 404 : 200, evt.type );
|
50
|
+
}
|
51
|
+
}
|
52
|
+
);
|
53
|
+
document.head.appendChild( script[ 0 ] );
|
54
|
+
},
|
55
|
+
abort: function() {
|
56
|
+
if ( callback ) {
|
57
|
+
callback();
|
58
|
+
}
|
59
|
+
}
|
60
|
+
};
|
61
|
+
}
|
62
|
+
});
|
63
|
+
|
64
|
+
});
|
@@ -0,0 +1,136 @@
|
|
1
|
+
define([
|
2
|
+
"../core",
|
3
|
+
"../var/support",
|
4
|
+
"../ajax"
|
5
|
+
], function( jQuery, support ) {
|
6
|
+
|
7
|
+
jQuery.ajaxSettings.xhr = function() {
|
8
|
+
try {
|
9
|
+
return new XMLHttpRequest();
|
10
|
+
} catch( e ) {}
|
11
|
+
};
|
12
|
+
|
13
|
+
var xhrId = 0,
|
14
|
+
xhrCallbacks = {},
|
15
|
+
xhrSuccessStatus = {
|
16
|
+
// file protocol always yields status code 0, assume 200
|
17
|
+
0: 200,
|
18
|
+
// Support: IE9
|
19
|
+
// #1450: sometimes IE returns 1223 when it should be 204
|
20
|
+
1223: 204
|
21
|
+
},
|
22
|
+
xhrSupported = jQuery.ajaxSettings.xhr();
|
23
|
+
|
24
|
+
// Support: IE9
|
25
|
+
// Open requests must be manually aborted on unload (#5280)
|
26
|
+
// See https://support.microsoft.com/kb/2856746 for more info
|
27
|
+
if ( window.attachEvent ) {
|
28
|
+
window.attachEvent( "onunload", function() {
|
29
|
+
for ( var key in xhrCallbacks ) {
|
30
|
+
xhrCallbacks[ key ]();
|
31
|
+
}
|
32
|
+
});
|
33
|
+
}
|
34
|
+
|
35
|
+
support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
|
36
|
+
support.ajax = xhrSupported = !!xhrSupported;
|
37
|
+
|
38
|
+
jQuery.ajaxTransport(function( options ) {
|
39
|
+
var callback;
|
40
|
+
|
41
|
+
// Cross domain only allowed if supported through XMLHttpRequest
|
42
|
+
if ( support.cors || xhrSupported && !options.crossDomain ) {
|
43
|
+
return {
|
44
|
+
send: function( headers, complete ) {
|
45
|
+
var i,
|
46
|
+
xhr = options.xhr(),
|
47
|
+
id = ++xhrId;
|
48
|
+
|
49
|
+
xhr.open( options.type, options.url, options.async, options.username, options.password );
|
50
|
+
|
51
|
+
// Apply custom fields if provided
|
52
|
+
if ( options.xhrFields ) {
|
53
|
+
for ( i in options.xhrFields ) {
|
54
|
+
xhr[ i ] = options.xhrFields[ i ];
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
// Override mime type if needed
|
59
|
+
if ( options.mimeType && xhr.overrideMimeType ) {
|
60
|
+
xhr.overrideMimeType( options.mimeType );
|
61
|
+
}
|
62
|
+
|
63
|
+
// X-Requested-With header
|
64
|
+
// For cross-domain requests, seeing as conditions for a preflight are
|
65
|
+
// akin to a jigsaw puzzle, we simply never set it to be sure.
|
66
|
+
// (it can always be set on a per-request basis or even using ajaxSetup)
|
67
|
+
// For same-domain requests, won't change header if already provided.
|
68
|
+
if ( !options.crossDomain && !headers["X-Requested-With"] ) {
|
69
|
+
headers["X-Requested-With"] = "XMLHttpRequest";
|
70
|
+
}
|
71
|
+
|
72
|
+
// Set headers
|
73
|
+
for ( i in headers ) {
|
74
|
+
xhr.setRequestHeader( i, headers[ i ] );
|
75
|
+
}
|
76
|
+
|
77
|
+
// Callback
|
78
|
+
callback = function( type ) {
|
79
|
+
return function() {
|
80
|
+
if ( callback ) {
|
81
|
+
delete xhrCallbacks[ id ];
|
82
|
+
callback = xhr.onload = xhr.onerror = null;
|
83
|
+
|
84
|
+
if ( type === "abort" ) {
|
85
|
+
xhr.abort();
|
86
|
+
} else if ( type === "error" ) {
|
87
|
+
complete(
|
88
|
+
// file: protocol always yields status 0; see #8605, #14207
|
89
|
+
xhr.status,
|
90
|
+
xhr.statusText
|
91
|
+
);
|
92
|
+
} else {
|
93
|
+
complete(
|
94
|
+
xhrSuccessStatus[ xhr.status ] || xhr.status,
|
95
|
+
xhr.statusText,
|
96
|
+
// Support: IE9
|
97
|
+
// Accessing binary-data responseText throws an exception
|
98
|
+
// (#11426)
|
99
|
+
typeof xhr.responseText === "string" ? {
|
100
|
+
text: xhr.responseText
|
101
|
+
} : undefined,
|
102
|
+
xhr.getAllResponseHeaders()
|
103
|
+
);
|
104
|
+
}
|
105
|
+
}
|
106
|
+
};
|
107
|
+
};
|
108
|
+
|
109
|
+
// Listen to events
|
110
|
+
xhr.onload = callback();
|
111
|
+
xhr.onerror = callback("error");
|
112
|
+
|
113
|
+
// Create the abort callback
|
114
|
+
callback = xhrCallbacks[ id ] = callback("abort");
|
115
|
+
|
116
|
+
try {
|
117
|
+
// Do send the request (this may raise an exception)
|
118
|
+
xhr.send( options.hasContent && options.data || null );
|
119
|
+
} catch ( e ) {
|
120
|
+
// #14683: Only rethrow if this hasn't been notified as an error yet
|
121
|
+
if ( callback ) {
|
122
|
+
throw e;
|
123
|
+
}
|
124
|
+
}
|
125
|
+
},
|
126
|
+
|
127
|
+
abort: function() {
|
128
|
+
if ( callback ) {
|
129
|
+
callback();
|
130
|
+
}
|
131
|
+
}
|
132
|
+
};
|
133
|
+
}
|
134
|
+
});
|
135
|
+
|
136
|
+
});
|
@@ -0,0 +1,141 @@
|
|
1
|
+
define([
|
2
|
+
"../core",
|
3
|
+
"../var/rnotwhite",
|
4
|
+
"../var/strundefined",
|
5
|
+
"../core/access",
|
6
|
+
"./support",
|
7
|
+
"../selector"
|
8
|
+
], function( jQuery, rnotwhite, strundefined, access, support ) {
|
9
|
+
|
10
|
+
var nodeHook, boolHook,
|
11
|
+
attrHandle = jQuery.expr.attrHandle;
|
12
|
+
|
13
|
+
jQuery.fn.extend({
|
14
|
+
attr: function( name, value ) {
|
15
|
+
return access( this, jQuery.attr, name, value, arguments.length > 1 );
|
16
|
+
},
|
17
|
+
|
18
|
+
removeAttr: function( name ) {
|
19
|
+
return this.each(function() {
|
20
|
+
jQuery.removeAttr( this, name );
|
21
|
+
});
|
22
|
+
}
|
23
|
+
});
|
24
|
+
|
25
|
+
jQuery.extend({
|
26
|
+
attr: function( elem, name, value ) {
|
27
|
+
var hooks, ret,
|
28
|
+
nType = elem.nodeType;
|
29
|
+
|
30
|
+
// don't get/set attributes on text, comment and attribute nodes
|
31
|
+
if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
|
32
|
+
return;
|
33
|
+
}
|
34
|
+
|
35
|
+
// Fallback to prop when attributes are not supported
|
36
|
+
if ( typeof elem.getAttribute === strundefined ) {
|
37
|
+
return jQuery.prop( elem, name, value );
|
38
|
+
}
|
39
|
+
|
40
|
+
// All attributes are lowercase
|
41
|
+
// Grab necessary hook if one is defined
|
42
|
+
if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
|
43
|
+
name = name.toLowerCase();
|
44
|
+
hooks = jQuery.attrHooks[ name ] ||
|
45
|
+
( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
|
46
|
+
}
|
47
|
+
|
48
|
+
if ( value !== undefined ) {
|
49
|
+
|
50
|
+
if ( value === null ) {
|
51
|
+
jQuery.removeAttr( elem, name );
|
52
|
+
|
53
|
+
} else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
|
54
|
+
return ret;
|
55
|
+
|
56
|
+
} else {
|
57
|
+
elem.setAttribute( name, value + "" );
|
58
|
+
return value;
|
59
|
+
}
|
60
|
+
|
61
|
+
} else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
|
62
|
+
return ret;
|
63
|
+
|
64
|
+
} else {
|
65
|
+
ret = jQuery.find.attr( elem, name );
|
66
|
+
|
67
|
+
// Non-existent attributes return null, we normalize to undefined
|
68
|
+
return ret == null ?
|
69
|
+
undefined :
|
70
|
+
ret;
|
71
|
+
}
|
72
|
+
},
|
73
|
+
|
74
|
+
removeAttr: function( elem, value ) {
|
75
|
+
var name, propName,
|
76
|
+
i = 0,
|
77
|
+
attrNames = value && value.match( rnotwhite );
|
78
|
+
|
79
|
+
if ( attrNames && elem.nodeType === 1 ) {
|
80
|
+
while ( (name = attrNames[i++]) ) {
|
81
|
+
propName = jQuery.propFix[ name ] || name;
|
82
|
+
|
83
|
+
// Boolean attributes get special treatment (#10870)
|
84
|
+
if ( jQuery.expr.match.bool.test( name ) ) {
|
85
|
+
// Set corresponding property to false
|
86
|
+
elem[ propName ] = false;
|
87
|
+
}
|
88
|
+
|
89
|
+
elem.removeAttribute( name );
|
90
|
+
}
|
91
|
+
}
|
92
|
+
},
|
93
|
+
|
94
|
+
attrHooks: {
|
95
|
+
type: {
|
96
|
+
set: function( elem, value ) {
|
97
|
+
if ( !support.radioValue && value === "radio" &&
|
98
|
+
jQuery.nodeName( elem, "input" ) ) {
|
99
|
+
var val = elem.value;
|
100
|
+
elem.setAttribute( "type", value );
|
101
|
+
if ( val ) {
|
102
|
+
elem.value = val;
|
103
|
+
}
|
104
|
+
return value;
|
105
|
+
}
|
106
|
+
}
|
107
|
+
}
|
108
|
+
}
|
109
|
+
});
|
110
|
+
|
111
|
+
// Hooks for boolean attributes
|
112
|
+
boolHook = {
|
113
|
+
set: function( elem, value, name ) {
|
114
|
+
if ( value === false ) {
|
115
|
+
// Remove boolean attributes when set to false
|
116
|
+
jQuery.removeAttr( elem, name );
|
117
|
+
} else {
|
118
|
+
elem.setAttribute( name, name );
|
119
|
+
}
|
120
|
+
return name;
|
121
|
+
}
|
122
|
+
};
|
123
|
+
jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
|
124
|
+
var getter = attrHandle[ name ] || jQuery.find.attr;
|
125
|
+
|
126
|
+
attrHandle[ name ] = function( elem, name, isXML ) {
|
127
|
+
var ret, handle;
|
128
|
+
if ( !isXML ) {
|
129
|
+
// Avoid an infinite loop by temporarily removing this function from the getter
|
130
|
+
handle = attrHandle[ name ];
|
131
|
+
attrHandle[ name ] = ret;
|
132
|
+
ret = getter( elem, name, isXML ) != null ?
|
133
|
+
name.toLowerCase() :
|
134
|
+
null;
|
135
|
+
attrHandle[ name ] = handle;
|
136
|
+
}
|
137
|
+
return ret;
|
138
|
+
};
|
139
|
+
});
|
140
|
+
|
141
|
+
});
|