@clappr/player 0.12.3 → 0.12.4

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.
package/dist/clappr.js CHANGED
@@ -283,1842 +283,1834 @@
283
283
  return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0;
284
284
  }
285
285
  }
286
- function getDefaultExportFromCjs$1(x) {
287
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
288
- }
289
286
 
290
- /* Zepto v1.2.0 - zepto ajax callbacks deferred event ie selector - zeptojs.com/license */
291
- var zepto;
292
- var hasRequiredZepto;
293
- function requireZepto() {
294
- if (hasRequiredZepto) return zepto;
295
- hasRequiredZepto = 1;
296
- var Zepto = function () {
297
- var undefined$1,
298
- key,
299
- $,
300
- classList,
301
- emptyArray = [],
302
- concat = emptyArray.concat,
303
- filter = emptyArray.filter,
304
- slice = emptyArray.slice,
305
- document = window.document,
306
- elementDisplay = {},
307
- classCache = {},
308
- cssNumber = {
309
- 'column-count': 1,
310
- 'columns': 1,
311
- 'font-weight': 1,
312
- 'line-height': 1,
313
- 'opacity': 1,
314
- 'z-index': 1,
315
- 'zoom': 1
316
- },
317
- fragmentRE = /^\s*<(\w+|!)[^>]*>/,
318
- singleTagRE = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
319
- tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
320
- rootNodeRE = /^(?:body|html)$/i,
321
- capitalRE = /([A-Z])/g,
322
- // special attributes that should be get/set via method calls
323
- methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],
324
- adjacencyOperators = ['after', 'prepend', 'before', 'append'],
325
- table = document.createElement('table'),
326
- tableRow = document.createElement('tr'),
327
- containers = {
328
- 'tr': document.createElement('tbody'),
329
- 'tbody': table,
330
- 'thead': table,
331
- 'tfoot': table,
332
- 'td': tableRow,
333
- 'th': tableRow,
334
- '*': document.createElement('div')
335
- },
336
- readyRE = /complete|loaded|interactive/,
337
- simpleSelectorRE = /^[\w-]*$/,
338
- class2type = {},
339
- toString = class2type.toString,
340
- zepto = {},
341
- camelize,
342
- uniq,
343
- tempParent = document.createElement('div'),
344
- propMap = {
345
- 'tabindex': 'tabIndex',
346
- 'readonly': 'readOnly',
347
- 'for': 'htmlFor',
348
- 'class': 'className',
349
- 'maxlength': 'maxLength',
350
- 'cellspacing': 'cellSpacing',
351
- 'cellpadding': 'cellPadding',
352
- 'rowspan': 'rowSpan',
353
- 'colspan': 'colSpan',
354
- 'usemap': 'useMap',
355
- 'frameborder': 'frameBorder',
356
- 'contenteditable': 'contentEditable'
357
- },
358
- isArray = Array.isArray || function (object) {
359
- return object instanceof Array;
360
- };
361
- zepto.matches = function (element, selector) {
362
- if (!selector || !element || element.nodeType !== 1) return false;
363
- var matchesSelector = element.matches || element.webkitMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.matchesSelector;
364
- if (matchesSelector) return matchesSelector.call(element, selector);
365
- // fall back to performing a selector:
366
- var match,
367
- parent = element.parentNode,
368
- temp = !parent;
369
- if (temp) (parent = tempParent).appendChild(element);
370
- match = ~zepto.qsa(parent, selector).indexOf(element);
371
- temp && tempParent.removeChild(element);
372
- return match;
287
+ /*
288
+ * Permanent fork of Zepto v1.2.0 (modules: zepto ajax callbacks deferred event ie selector).
289
+ * Originally vendored by Thiago Pontes; now maintained in clappr/clappr.
290
+ * Do not regenerate from upstream — see LICENSE in this package.
291
+ */
292
+
293
+ var Zepto = function () {
294
+ var undefined$1,
295
+ key,
296
+ $,
297
+ classList,
298
+ emptyArray = [],
299
+ concat = emptyArray.concat,
300
+ filter = emptyArray.filter,
301
+ slice = emptyArray.slice,
302
+ document = window.document,
303
+ elementDisplay = {},
304
+ classCache = {},
305
+ cssNumber = {
306
+ 'column-count': 1,
307
+ 'columns': 1,
308
+ 'font-weight': 1,
309
+ 'line-height': 1,
310
+ 'opacity': 1,
311
+ 'z-index': 1,
312
+ 'zoom': 1
313
+ },
314
+ fragmentRE = /^\s*<(\w+|!)[^>]*>/,
315
+ singleTagRE = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,
316
+ tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
317
+ rootNodeRE = /^(?:body|html)$/i,
318
+ capitalRE = /([A-Z])/g,
319
+ // special attributes that should be get/set via method calls
320
+ methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],
321
+ adjacencyOperators = ['after', 'prepend', 'before', 'append'],
322
+ table = document.createElement('table'),
323
+ tableRow = document.createElement('tr'),
324
+ containers = {
325
+ 'tr': document.createElement('tbody'),
326
+ 'tbody': table,
327
+ 'thead': table,
328
+ 'tfoot': table,
329
+ 'td': tableRow,
330
+ 'th': tableRow,
331
+ '*': document.createElement('div')
332
+ },
333
+ readyRE = /complete|loaded|interactive/,
334
+ simpleSelectorRE = /^[\w-]*$/,
335
+ class2type = {},
336
+ toString = class2type.toString,
337
+ zepto = {},
338
+ camelize,
339
+ uniq,
340
+ tempParent = document.createElement('div'),
341
+ propMap = {
342
+ 'tabindex': 'tabIndex',
343
+ 'readonly': 'readOnly',
344
+ 'for': 'htmlFor',
345
+ 'class': 'className',
346
+ 'maxlength': 'maxLength',
347
+ 'cellspacing': 'cellSpacing',
348
+ 'cellpadding': 'cellPadding',
349
+ 'rowspan': 'rowSpan',
350
+ 'colspan': 'colSpan',
351
+ 'usemap': 'useMap',
352
+ 'frameborder': 'frameBorder',
353
+ 'contenteditable': 'contentEditable'
354
+ },
355
+ isArray = Array.isArray || function (object) {
356
+ return object instanceof Array;
373
357
  };
374
- function type(obj) {
375
- return obj == null ? String(obj) : class2type[toString.call(obj)] || "object";
376
- }
377
- function isFunction(value) {
378
- return type(value) == "function";
379
- }
380
- function isWindow(obj) {
381
- return obj != null && obj == obj.window;
382
- }
383
- function isDocument(obj) {
384
- return obj != null && obj.nodeType == obj.DOCUMENT_NODE;
385
- }
386
- function isObject(obj) {
387
- return type(obj) == "object";
388
- }
389
- function isPlainObject(obj) {
390
- return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype;
391
- }
392
- function likeArray(obj) {
393
- var length = !!obj && 'length' in obj && obj.length,
394
- type = $.type(obj);
395
- return 'function' != type && !isWindow(obj) && ('array' == type || length === 0 || typeof length == 'number' && length > 0 && length - 1 in obj);
396
- }
397
- function compact(array) {
398
- return filter.call(array, function (item) {
399
- return item != null;
400
- });
401
- }
402
- function flatten(array) {
403
- return array.length > 0 ? $.fn.concat.apply([], array) : array;
404
- }
405
- camelize = function (str) {
406
- return str.replace(/-+(.)?/g, function (match, chr) {
407
- return chr ? chr.toUpperCase() : '';
358
+ zepto.matches = function (element, selector) {
359
+ if (!selector || !element || element.nodeType !== 1) return false;
360
+ var matchesSelector = element.matches || element.webkitMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.matchesSelector;
361
+ if (matchesSelector) return matchesSelector.call(element, selector);
362
+ // fall back to performing a selector:
363
+ var match,
364
+ parent = element.parentNode,
365
+ temp = !parent;
366
+ if (temp) (parent = tempParent).appendChild(element);
367
+ match = ~zepto.qsa(parent, selector).indexOf(element);
368
+ temp && tempParent.removeChild(element);
369
+ return match;
370
+ };
371
+ function type(obj) {
372
+ return obj == null ? String(obj) : class2type[toString.call(obj)] || "object";
373
+ }
374
+ function isFunction(value) {
375
+ return type(value) == "function";
376
+ }
377
+ function isWindow(obj) {
378
+ return obj != null && obj == obj.window;
379
+ }
380
+ function isDocument(obj) {
381
+ return obj != null && obj.nodeType == obj.DOCUMENT_NODE;
382
+ }
383
+ function isObject(obj) {
384
+ return type(obj) == "object";
385
+ }
386
+ function isPlainObject(obj) {
387
+ return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype;
388
+ }
389
+ function likeArray(obj) {
390
+ var length = !!obj && 'length' in obj && obj.length,
391
+ type = $.type(obj);
392
+ return 'function' != type && !isWindow(obj) && ('array' == type || length === 0 || typeof length == 'number' && length > 0 && length - 1 in obj);
393
+ }
394
+ function compact(array) {
395
+ return filter.call(array, function (item) {
396
+ return item != null;
397
+ });
398
+ }
399
+ function flatten(array) {
400
+ return array.length > 0 ? $.fn.concat.apply([], array) : array;
401
+ }
402
+ camelize = function (str) {
403
+ return str.replace(/-+(.)?/g, function (match, chr) {
404
+ return chr ? chr.toUpperCase() : '';
405
+ });
406
+ };
407
+ function dasherize(str) {
408
+ return str.replace(/::/g, '/').replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2').replace(/([a-z\d])([A-Z])/g, '$1_$2').replace(/_/g, '-').toLowerCase();
409
+ }
410
+ uniq = function (array) {
411
+ return filter.call(array, function (item, idx) {
412
+ return array.indexOf(item) == idx;
413
+ });
414
+ };
415
+ function classRE(name) {
416
+ return name in classCache ? classCache[name] : classCache[name] = new RegExp('(^|\\s)' + name + '(\\s|$)');
417
+ }
418
+ function maybeAddPx(name, value) {
419
+ return typeof value == "number" && !cssNumber[dasherize(name)] ? value + "px" : value;
420
+ }
421
+ function defaultDisplay(nodeName) {
422
+ var element, display;
423
+ if (!elementDisplay[nodeName]) {
424
+ element = document.createElement(nodeName);
425
+ document.body.appendChild(element);
426
+ display = getComputedStyle(element, '').getPropertyValue("display");
427
+ element.parentNode.removeChild(element);
428
+ display == "none" && (display = "block");
429
+ elementDisplay[nodeName] = display;
430
+ }
431
+ return elementDisplay[nodeName];
432
+ }
433
+ function children(element) {
434
+ return 'children' in element ? slice.call(element.children) : $.map(element.childNodes, function (node) {
435
+ if (node.nodeType == 1) return node;
436
+ });
437
+ }
438
+ function Z(dom, selector) {
439
+ var i,
440
+ len = dom ? dom.length : 0;
441
+ for (i = 0; i < len; i++) this[i] = dom[i];
442
+ this.length = len;
443
+ this.selector = selector || '';
444
+ }
445
+
446
+ // `$.zepto.fragment` takes a html string and an optional tag name
447
+ // to generate DOM nodes from the given html string.
448
+ // The generated DOM nodes are returned as an array.
449
+ // This function can be overridden in plugins for example to make
450
+ // it compatible with browsers that don't support the DOM fully.
451
+ zepto.fragment = function (html, name, properties) {
452
+ var dom, nodes, container;
453
+
454
+ // A special case optimization for a single tag
455
+ if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1));
456
+ if (!dom) {
457
+ if (html.replace) html = html.replace(tagExpanderRE, "<$1></$2>");
458
+ if (name === undefined$1) name = fragmentRE.test(html) && RegExp.$1;
459
+ if (!(name in containers)) name = '*';
460
+ container = containers[name];
461
+ container.innerHTML = '' + html;
462
+ dom = $.each(slice.call(container.childNodes), function () {
463
+ container.removeChild(this);
408
464
  });
409
- };
410
- function dasherize(str) {
411
- return str.replace(/::/g, '/').replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2').replace(/([a-z\d])([A-Z])/g, '$1_$2').replace(/_/g, '-').toLowerCase();
412
465
  }
413
- uniq = function (array) {
414
- return filter.call(array, function (item, idx) {
415
- return array.indexOf(item) == idx;
416
- });
417
- };
418
- function classRE(name) {
419
- return name in classCache ? classCache[name] : classCache[name] = new RegExp('(^|\\s)' + name + '(\\s|$)');
420
- }
421
- function maybeAddPx(name, value) {
422
- return typeof value == "number" && !cssNumber[dasherize(name)] ? value + "px" : value;
423
- }
424
- function defaultDisplay(nodeName) {
425
- var element, display;
426
- if (!elementDisplay[nodeName]) {
427
- element = document.createElement(nodeName);
428
- document.body.appendChild(element);
429
- display = getComputedStyle(element, '').getPropertyValue("display");
430
- element.parentNode.removeChild(element);
431
- display == "none" && (display = "block");
432
- elementDisplay[nodeName] = display;
433
- }
434
- return elementDisplay[nodeName];
435
- }
436
- function children(element) {
437
- return 'children' in element ? slice.call(element.children) : $.map(element.childNodes, function (node) {
438
- if (node.nodeType == 1) return node;
466
+ if (isPlainObject(properties)) {
467
+ nodes = $(dom);
468
+ $.each(properties, function (key, value) {
469
+ if (methodAttributes.indexOf(key) > -1) nodes[key](value);else nodes.attr(key, value);
439
470
  });
440
471
  }
441
- function Z(dom, selector) {
442
- var i,
443
- len = dom ? dom.length : 0;
444
- for (i = 0; i < len; i++) this[i] = dom[i];
445
- this.length = len;
446
- this.selector = selector || '';
447
- }
448
-
449
- // `$.zepto.fragment` takes a html string and an optional tag name
450
- // to generate DOM nodes from the given html string.
451
- // The generated DOM nodes are returned as an array.
452
- // This function can be overridden in plugins for example to make
453
- // it compatible with browsers that don't support the DOM fully.
454
- zepto.fragment = function (html, name, properties) {
455
- var dom, nodes, container;
456
-
457
- // A special case optimization for a single tag
458
- if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1));
459
- if (!dom) {
460
- if (html.replace) html = html.replace(tagExpanderRE, "<$1></$2>");
461
- if (name === undefined$1) name = fragmentRE.test(html) && RegExp.$1;
462
- if (!(name in containers)) name = '*';
463
- container = containers[name];
464
- container.innerHTML = '' + html;
465
- dom = $.each(slice.call(container.childNodes), function () {
466
- container.removeChild(this);
467
- });
468
- }
469
- if (isPlainObject(properties)) {
470
- nodes = $(dom);
471
- $.each(properties, function (key, value) {
472
- if (methodAttributes.indexOf(key) > -1) nodes[key](value);else nodes.attr(key, value);
473
- });
474
- }
475
- return dom;
476
- };
472
+ return dom;
473
+ };
477
474
 
478
- // `$.zepto.Z` swaps out the prototype of the given `dom` array
479
- // of nodes with `$.fn` and thus supplying all the Zepto functions
480
- // to the array. This method can be overridden in plugins.
481
- zepto.Z = function (dom, selector) {
482
- return new Z(dom, selector);
483
- };
475
+ // `$.zepto.Z` swaps out the prototype of the given `dom` array
476
+ // of nodes with `$.fn` and thus supplying all the Zepto functions
477
+ // to the array. This method can be overridden in plugins.
478
+ zepto.Z = function (dom, selector) {
479
+ return new Z(dom, selector);
480
+ };
484
481
 
485
- // `$.zepto.isZ` should return `true` if the given object is a Zepto
486
- // collection. This method can be overridden in plugins.
487
- zepto.isZ = function (object) {
488
- return object instanceof zepto.Z;
489
- };
482
+ // `$.zepto.isZ` should return `true` if the given object is a Zepto
483
+ // collection. This method can be overridden in plugins.
484
+ zepto.isZ = function (object) {
485
+ return object instanceof zepto.Z;
486
+ };
490
487
 
491
- // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and
492
- // takes a CSS selector and an optional context (and handles various
493
- // special cases).
494
- // This method can be overridden in plugins.
495
- zepto.init = function (selector, context) {
496
- var dom;
497
- // If nothing given, return an empty Zepto collection
498
- if (!selector) return zepto.Z();
499
- // Optimize for string selectors
500
- else if (typeof selector == 'string') {
501
- selector = selector.trim();
502
- // If it's a html fragment, create nodes from it
503
- // Note: In both Chrome 21 and Firefox 15, DOM error 12
504
- // is thrown if the fragment doesn't begin with <
505
- if (selector[0] == '<' && fragmentRE.test(selector)) dom = zepto.fragment(selector, RegExp.$1, context), selector = null;
506
- // If there's a context, create a collection on that context first, and select
507
- // nodes from there
508
- else if (context !== undefined$1) return $(context).find(selector);
509
- // If it's a CSS selector, use it to select nodes.
510
- else dom = zepto.qsa(document, selector);
511
- }
512
- // If a function is given, call it when the DOM is ready
513
- else if (isFunction(selector)) return $(document).ready(selector);
514
- // If a Zepto collection is given, just return it
515
- else if (zepto.isZ(selector)) return selector;else {
516
- // normalize array if an array of nodes is given
517
- if (isArray(selector)) dom = compact(selector);
518
- // Wrap DOM nodes.
519
- else if (isObject(selector)) dom = [selector], selector = null;
520
- // If it's a html fragment, create nodes from it
521
- else if (fragmentRE.test(selector)) dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null;
522
- // If there's a context, create a collection on that context first, and select
523
- // nodes from there
524
- else if (context !== undefined$1) return $(context).find(selector);
525
- // And last but no least, if it's a CSS selector, use it to select nodes.
526
- else dom = zepto.qsa(document, selector);
527
- }
528
- // create a new Zepto collection from the nodes found
529
- return zepto.Z(dom, selector);
530
- };
488
+ // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and
489
+ // takes a CSS selector and an optional context (and handles various
490
+ // special cases).
491
+ // This method can be overridden in plugins.
492
+ zepto.init = function (selector, context) {
493
+ var dom;
494
+ // If nothing given, return an empty Zepto collection
495
+ if (!selector) return zepto.Z();
496
+ // Optimize for string selectors
497
+ else if (typeof selector == 'string') {
498
+ selector = selector.trim();
499
+ // If it's a html fragment, create nodes from it
500
+ // Note: In both Chrome 21 and Firefox 15, DOM error 12
501
+ // is thrown if the fragment doesn't begin with <
502
+ if (selector[0] == '<' && fragmentRE.test(selector)) dom = zepto.fragment(selector, RegExp.$1, context), selector = null;
503
+ // If there's a context, create a collection on that context first, and select
504
+ // nodes from there
505
+ else if (context !== undefined$1) return $(context).find(selector);
506
+ // If it's a CSS selector, use it to select nodes.
507
+ else dom = zepto.qsa(document, selector);
508
+ }
509
+ // If a function is given, call it when the DOM is ready
510
+ else if (isFunction(selector)) return $(document).ready(selector);
511
+ // If a Zepto collection is given, just return it
512
+ else if (zepto.isZ(selector)) return selector;else {
513
+ // normalize array if an array of nodes is given
514
+ if (isArray(selector)) dom = compact(selector);
515
+ // Wrap DOM nodes.
516
+ else if (isObject(selector)) dom = [selector], selector = null;
517
+ // If it's a html fragment, create nodes from it
518
+ else if (fragmentRE.test(selector)) dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null;
519
+ // If there's a context, create a collection on that context first, and select
520
+ // nodes from there
521
+ else if (context !== undefined$1) return $(context).find(selector);
522
+ // And last but no least, if it's a CSS selector, use it to select nodes.
523
+ else dom = zepto.qsa(document, selector);
524
+ }
525
+ // create a new Zepto collection from the nodes found
526
+ return zepto.Z(dom, selector);
527
+ };
531
528
 
532
- // `$` will be the base `Zepto` object. When calling this
533
- // function just call `$.zepto.init, which makes the implementation
534
- // details of selecting nodes and creating Zepto collections
535
- // patchable in plugins.
536
- $ = function (selector, context) {
537
- return zepto.init(selector, context);
538
- };
539
- function extend(target, source, deep) {
540
- for (key in source) if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {
541
- if (isPlainObject(source[key]) && !isPlainObject(target[key])) target[key] = {};
542
- if (isArray(source[key]) && !isArray(target[key])) target[key] = [];
543
- extend(target[key], source[key], deep);
544
- } else if (source[key] !== undefined$1) target[key] = source[key];
545
- }
546
-
547
- // Copy all but undefined properties from one or more
548
- // objects to the `target` object.
549
- $.extend = function (target) {
550
- var deep,
551
- args = slice.call(arguments, 1);
552
- if (typeof target == 'boolean') {
553
- deep = target;
554
- target = args.shift();
555
- }
556
- args.forEach(function (arg) {
557
- extend(target, arg, deep);
558
- });
559
- return target;
560
- };
529
+ // `$` will be the base `Zepto` object. When calling this
530
+ // function just call `$.zepto.init, which makes the implementation
531
+ // details of selecting nodes and creating Zepto collections
532
+ // patchable in plugins.
533
+ $ = function (selector, context) {
534
+ return zepto.init(selector, context);
535
+ };
536
+ function extend(target, source, deep) {
537
+ for (key in source) if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {
538
+ if (isPlainObject(source[key]) && !isPlainObject(target[key])) target[key] = {};
539
+ if (isArray(source[key]) && !isArray(target[key])) target[key] = [];
540
+ extend(target[key], source[key], deep);
541
+ } else if (source[key] !== undefined$1) target[key] = source[key];
542
+ }
543
+
544
+ // Copy all but undefined properties from one or more
545
+ // objects to the `target` object.
546
+ $.extend = function (target) {
547
+ var deep,
548
+ args = slice.call(arguments, 1);
549
+ if (typeof target == 'boolean') {
550
+ deep = target;
551
+ target = args.shift();
552
+ }
553
+ args.forEach(function (arg) {
554
+ extend(target, arg, deep);
555
+ });
556
+ return target;
557
+ };
561
558
 
562
- // `$.zepto.qsa` is Zepto's CSS selector implementation which
563
- // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.
564
- // This method can be overridden in plugins.
565
- zepto.qsa = function (element, selector) {
566
- var found,
567
- maybeID = selector[0] == '#',
568
- maybeClass = !maybeID && selector[0] == '.',
569
- nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,
570
- // Ensure that a 1 char tag name still gets checked
571
- isSimple = simpleSelectorRE.test(nameOnly);
572
- return element.getElementById && isSimple && maybeID ?
573
- // Safari DocumentFragment doesn't have getElementById
574
- (found = element.getElementById(nameOnly)) ? [found] : [] : element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11 ? [] : slice.call(isSimple && !maybeID && element.getElementsByClassName ?
575
- // DocumentFragment doesn't have getElementsByClassName/TagName
576
- maybeClass ? element.getElementsByClassName(nameOnly) :
577
- // If it's simple, it could be a class
578
- element.getElementsByTagName(selector) :
579
- // Or a tag
580
- element.querySelectorAll(selector) // Or it's not simple, and we need to query all
581
- );
582
- };
583
- function filtered(nodes, selector) {
584
- return selector == null ? $(nodes) : $(nodes).filter(selector);
585
- }
586
- $.contains = document.documentElement.contains ? function (parent, node) {
587
- return parent !== node && parent.contains(node);
588
- } : function (parent, node) {
589
- while (node && (node = node.parentNode)) if (node === parent) return true;
590
- return false;
591
- };
592
- function funcArg(context, arg, idx, payload) {
593
- return isFunction(arg) ? arg.call(context, idx, payload) : arg;
594
- }
595
- function setAttribute(node, name, value) {
596
- value == null ? node.removeAttribute(name) : node.setAttribute(name, value);
597
- }
598
-
599
- // access className property while respecting SVGAnimatedString
600
- function className(node, value) {
601
- var klass = node.className || '',
602
- svg = klass && klass.baseVal !== undefined$1;
603
- if (value === undefined$1) return svg ? klass.baseVal : klass;
604
- svg ? klass.baseVal = value : node.className = value;
605
- }
606
-
607
- // "true" => true
608
- // "false" => false
609
- // "null" => null
610
- // "42" => 42
611
- // "42.5" => 42.5
612
- // "08" => "08"
613
- // JSON => parse if valid
614
- // String => self
615
- function deserializeValue(value) {
616
- try {
617
- return value ? value == "true" || (value == "false" ? false : value == "null" ? null : +value + "" == value ? +value : /^[\[\{]/.test(value) ? $.parseJSON(value) : value) : value;
618
- } catch (e) {
619
- return value;
620
- }
559
+ // `$.zepto.qsa` is Zepto's CSS selector implementation which
560
+ // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.
561
+ // This method can be overridden in plugins.
562
+ zepto.qsa = function (element, selector) {
563
+ var found,
564
+ maybeID = selector[0] == '#',
565
+ maybeClass = !maybeID && selector[0] == '.',
566
+ nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,
567
+ // Ensure that a 1 char tag name still gets checked
568
+ isSimple = simpleSelectorRE.test(nameOnly);
569
+ return element.getElementById && isSimple && maybeID ?
570
+ // Safari DocumentFragment doesn't have getElementById
571
+ (found = element.getElementById(nameOnly)) ? [found] : [] : element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11 ? [] : slice.call(isSimple && !maybeID && element.getElementsByClassName ?
572
+ // DocumentFragment doesn't have getElementsByClassName/TagName
573
+ maybeClass ? element.getElementsByClassName(nameOnly) :
574
+ // If it's simple, it could be a class
575
+ element.getElementsByTagName(selector) :
576
+ // Or a tag
577
+ element.querySelectorAll(selector) // Or it's not simple, and we need to query all
578
+ );
579
+ };
580
+ function filtered(nodes, selector) {
581
+ return selector == null ? $(nodes) : $(nodes).filter(selector);
582
+ }
583
+ $.contains = document.documentElement.contains ? function (parent, node) {
584
+ return parent !== node && parent.contains(node);
585
+ } : function (parent, node) {
586
+ while (node && (node = node.parentNode)) if (node === parent) return true;
587
+ return false;
588
+ };
589
+ function funcArg(context, arg, idx, payload) {
590
+ return isFunction(arg) ? arg.call(context, idx, payload) : arg;
591
+ }
592
+ function setAttribute(node, name, value) {
593
+ value == null ? node.removeAttribute(name) : node.setAttribute(name, value);
594
+ }
595
+
596
+ // access className property while respecting SVGAnimatedString
597
+ function className(node, value) {
598
+ var klass = node.className || '',
599
+ svg = klass && klass.baseVal !== undefined$1;
600
+ if (value === undefined$1) return svg ? klass.baseVal : klass;
601
+ svg ? klass.baseVal = value : node.className = value;
602
+ }
603
+
604
+ // "true" => true
605
+ // "false" => false
606
+ // "null" => null
607
+ // "42" => 42
608
+ // "42.5" => 42.5
609
+ // "08" => "08"
610
+ // JSON => parse if valid
611
+ // String => self
612
+ function deserializeValue(value) {
613
+ try {
614
+ return value ? value == "true" || (value == "false" ? false : value == "null" ? null : +value + "" == value ? +value : /^[\[\{]/.test(value) ? $.parseJSON(value) : value) : value;
615
+ } catch (e) {
616
+ return value;
621
617
  }
622
- $.type = type;
623
- $.isFunction = isFunction;
624
- $.isWindow = isWindow;
625
- $.isArray = isArray;
626
- $.isPlainObject = isPlainObject;
627
- $.isEmptyObject = function (obj) {
628
- var name;
629
- for (name in obj) return false;
630
- return true;
631
- };
632
- $.isNumeric = function (val) {
633
- var num = Number(val),
634
- type = typeof val;
635
- return val != null && type != 'boolean' && (type != 'string' || val.length) && !isNaN(num) && isFinite(num) || false;
636
- };
637
- $.inArray = function (elem, array, i) {
638
- return emptyArray.indexOf.call(array, elem, i);
639
- };
640
- $.camelCase = camelize;
641
- $.trim = function (str) {
642
- return str == null ? "" : String.prototype.trim.call(str);
643
- };
618
+ }
619
+ $.type = type;
620
+ $.isFunction = isFunction;
621
+ $.isWindow = isWindow;
622
+ $.isArray = isArray;
623
+ $.isPlainObject = isPlainObject;
624
+ $.isEmptyObject = function (obj) {
625
+ var name;
626
+ for (name in obj) return false;
627
+ return true;
628
+ };
629
+ $.isNumeric = function (val) {
630
+ var num = Number(val),
631
+ type = typeof val;
632
+ return val != null && type != 'boolean' && (type != 'string' || val.length) && !isNaN(num) && isFinite(num) || false;
633
+ };
634
+ $.inArray = function (elem, array, i) {
635
+ return emptyArray.indexOf.call(array, elem, i);
636
+ };
637
+ $.camelCase = camelize;
638
+ $.trim = function (str) {
639
+ return str == null ? "" : String.prototype.trim.call(str);
640
+ };
644
641
 
645
- // plugin compatibility
646
- $.uuid = 0;
647
- $.support = {};
648
- $.expr = {};
649
- $.noop = function () {};
650
- $.map = function (elements, callback) {
651
- var value,
652
- values = [],
653
- i,
654
- key;
655
- if (likeArray(elements)) for (i = 0; i < elements.length; i++) {
656
- value = callback(elements[i], i);
657
- if (value != null) values.push(value);
658
- } else for (key in elements) {
659
- value = callback(elements[key], key);
660
- if (value != null) values.push(value);
661
- }
662
- return flatten(values);
663
- };
664
- $.each = function (elements, callback) {
665
- var i, key;
666
- if (likeArray(elements)) {
667
- for (i = 0; i < elements.length; i++) if (callback.call(elements[i], i, elements[i]) === false) return elements;
668
- } else {
669
- for (key in elements) if (callback.call(elements[key], key, elements[key]) === false) return elements;
670
- }
671
- return elements;
672
- };
673
- $.grep = function (elements, callback) {
674
- return filter.call(elements, callback);
675
- };
676
- if (window.JSON) $.parseJSON = JSON.parse;
642
+ // plugin compatibility
643
+ $.uuid = 0;
644
+ $.support = {};
645
+ $.expr = {};
646
+ $.noop = function () {};
647
+ $.map = function (elements, callback) {
648
+ var value,
649
+ values = [],
650
+ i,
651
+ key;
652
+ if (likeArray(elements)) for (i = 0; i < elements.length; i++) {
653
+ value = callback(elements[i], i);
654
+ if (value != null) values.push(value);
655
+ } else for (key in elements) {
656
+ value = callback(elements[key], key);
657
+ if (value != null) values.push(value);
658
+ }
659
+ return flatten(values);
660
+ };
661
+ $.each = function (elements, callback) {
662
+ var i, key;
663
+ if (likeArray(elements)) {
664
+ for (i = 0; i < elements.length; i++) if (callback.call(elements[i], i, elements[i]) === false) return elements;
665
+ } else {
666
+ for (key in elements) if (callback.call(elements[key], key, elements[key]) === false) return elements;
667
+ }
668
+ return elements;
669
+ };
670
+ $.grep = function (elements, callback) {
671
+ return filter.call(elements, callback);
672
+ };
673
+ if (window.JSON) $.parseJSON = JSON.parse;
677
674
 
678
- // Populate the class2type map
679
- $.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (i, name) {
680
- class2type["[object " + name + "]"] = name.toLowerCase();
681
- });
675
+ // Populate the class2type map
676
+ $.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (i, name) {
677
+ class2type["[object " + name + "]"] = name.toLowerCase();
678
+ });
682
679
 
683
- // Define methods that will be available on all
684
- // Zepto collections
685
- $.fn = {
686
- constructor: zepto.Z,
687
- length: 0,
688
- // Because a collection acts like an array
689
- // copy over these useful array functions.
690
- forEach: emptyArray.forEach,
691
- reduce: emptyArray.reduce,
692
- push: emptyArray.push,
693
- sort: emptyArray.sort,
694
- splice: emptyArray.splice,
695
- indexOf: emptyArray.indexOf,
696
- concat: function () {
697
- var i,
698
- value,
699
- args = [];
700
- for (i = 0; i < arguments.length; i++) {
701
- value = arguments[i];
702
- args[i] = zepto.isZ(value) ? value.toArray() : value;
703
- }
704
- return concat.apply(zepto.isZ(this) ? this.toArray() : this, args);
705
- },
706
- // `map` and `slice` in the jQuery API work differently
707
- // from their array counterparts
708
- map: function (fn) {
709
- return $($.map(this, function (el, i) {
710
- return fn.call(el, i, el);
711
- }));
712
- },
713
- slice: function () {
714
- return $(slice.apply(this, arguments));
715
- },
716
- ready: function (callback) {
717
- // need to check if document.body exists for IE as that browser reports
718
- // document ready when it hasn't yet created the body element
719
- if (readyRE.test(document.readyState) && document.body) callback($);else document.addEventListener('DOMContentLoaded', function () {
720
- callback($);
721
- }, false);
722
- return this;
723
- },
724
- get: function (idx) {
725
- return idx === undefined$1 ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length];
726
- },
727
- toArray: function () {
728
- return this.get();
729
- },
730
- size: function () {
731
- return this.length;
732
- },
733
- remove: function () {
734
- return this.each(function () {
735
- if (this.parentNode != null) this.parentNode.removeChild(this);
680
+ // Define methods that will be available on all
681
+ // Zepto collections
682
+ $.fn = {
683
+ constructor: zepto.Z,
684
+ length: 0,
685
+ // Because a collection acts like an array
686
+ // copy over these useful array functions.
687
+ forEach: emptyArray.forEach,
688
+ reduce: emptyArray.reduce,
689
+ push: emptyArray.push,
690
+ sort: emptyArray.sort,
691
+ splice: emptyArray.splice,
692
+ indexOf: emptyArray.indexOf,
693
+ concat: function () {
694
+ var i,
695
+ value,
696
+ args = [];
697
+ for (i = 0; i < arguments.length; i++) {
698
+ value = arguments[i];
699
+ args[i] = zepto.isZ(value) ? value.toArray() : value;
700
+ }
701
+ return concat.apply(zepto.isZ(this) ? this.toArray() : this, args);
702
+ },
703
+ // `map` and `slice` in the jQuery API work differently
704
+ // from their array counterparts
705
+ map: function (fn) {
706
+ return $($.map(this, function (el, i) {
707
+ return fn.call(el, i, el);
708
+ }));
709
+ },
710
+ slice: function () {
711
+ return $(slice.apply(this, arguments));
712
+ },
713
+ ready: function (callback) {
714
+ // need to check if document.body exists for IE as that browser reports
715
+ // document ready when it hasn't yet created the body element
716
+ if (readyRE.test(document.readyState) && document.body) callback($);else document.addEventListener('DOMContentLoaded', function () {
717
+ callback($);
718
+ }, false);
719
+ return this;
720
+ },
721
+ get: function (idx) {
722
+ return idx === undefined$1 ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length];
723
+ },
724
+ toArray: function () {
725
+ return this.get();
726
+ },
727
+ size: function () {
728
+ return this.length;
729
+ },
730
+ remove: function () {
731
+ return this.each(function () {
732
+ if (this.parentNode != null) this.parentNode.removeChild(this);
733
+ });
734
+ },
735
+ each: function (callback) {
736
+ emptyArray.every.call(this, function (el, idx) {
737
+ return callback.call(el, idx, el) !== false;
738
+ });
739
+ return this;
740
+ },
741
+ filter: function (selector) {
742
+ if (isFunction(selector)) return this.not(this.not(selector));
743
+ return $(filter.call(this, function (element) {
744
+ return zepto.matches(element, selector);
745
+ }));
746
+ },
747
+ add: function (selector, context) {
748
+ return $(uniq(this.concat($(selector, context))));
749
+ },
750
+ is: function (selector) {
751
+ return this.length > 0 && zepto.matches(this[0], selector);
752
+ },
753
+ not: function (selector) {
754
+ var nodes = [];
755
+ if (isFunction(selector) && selector.call !== undefined$1) this.each(function (idx) {
756
+ if (!selector.call(this, idx)) nodes.push(this);
757
+ });else {
758
+ var excludes = typeof selector == 'string' ? this.filter(selector) : likeArray(selector) && isFunction(selector.item) ? slice.call(selector) : $(selector);
759
+ this.forEach(function (el) {
760
+ if (excludes.indexOf(el) < 0) nodes.push(el);
736
761
  });
737
- },
738
- each: function (callback) {
739
- emptyArray.every.call(this, function (el, idx) {
740
- return callback.call(el, idx, el) !== false;
762
+ }
763
+ return $(nodes);
764
+ },
765
+ has: function (selector) {
766
+ return this.filter(function () {
767
+ return isObject(selector) ? $.contains(this, selector) : $(this).find(selector).size();
768
+ });
769
+ },
770
+ eq: function (idx) {
771
+ return idx === -1 ? this.slice(idx) : this.slice(idx, +idx + 1);
772
+ },
773
+ first: function () {
774
+ var el = this[0];
775
+ return el && !isObject(el) ? el : $(el);
776
+ },
777
+ last: function () {
778
+ var el = this[this.length - 1];
779
+ return el && !isObject(el) ? el : $(el);
780
+ },
781
+ find: function (selector) {
782
+ var result,
783
+ $this = this;
784
+ if (!selector) result = $();else if (typeof selector == 'object') result = $(selector).filter(function () {
785
+ var node = this;
786
+ return emptyArray.some.call($this, function (parent) {
787
+ return $.contains(parent, node);
741
788
  });
742
- return this;
743
- },
744
- filter: function (selector) {
745
- if (isFunction(selector)) return this.not(this.not(selector));
746
- return $(filter.call(this, function (element) {
747
- return zepto.matches(element, selector);
748
- }));
749
- },
750
- add: function (selector, context) {
751
- return $(uniq(this.concat($(selector, context))));
752
- },
753
- is: function (selector) {
754
- return this.length > 0 && zepto.matches(this[0], selector);
755
- },
756
- not: function (selector) {
757
- var nodes = [];
758
- if (isFunction(selector) && selector.call !== undefined$1) this.each(function (idx) {
759
- if (!selector.call(this, idx)) nodes.push(this);
760
- });else {
761
- var excludes = typeof selector == 'string' ? this.filter(selector) : likeArray(selector) && isFunction(selector.item) ? slice.call(selector) : $(selector);
762
- this.forEach(function (el) {
763
- if (excludes.indexOf(el) < 0) nodes.push(el);
764
- });
789
+ });else if (this.length == 1) result = $(zepto.qsa(this[0], selector));else result = this.map(function () {
790
+ return zepto.qsa(this, selector);
791
+ });
792
+ return result;
793
+ },
794
+ closest: function (selector, context) {
795
+ var nodes = [],
796
+ collection = typeof selector == 'object' && $(selector);
797
+ this.each(function (_, node) {
798
+ while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector))) node = node !== context && !isDocument(node) && node.parentNode;
799
+ if (node && nodes.indexOf(node) < 0) nodes.push(node);
800
+ });
801
+ return $(nodes);
802
+ },
803
+ parents: function (selector) {
804
+ var ancestors = [],
805
+ nodes = this;
806
+ while (nodes.length > 0) nodes = $.map(nodes, function (node) {
807
+ if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {
808
+ ancestors.push(node);
809
+ return node;
765
810
  }
766
- return $(nodes);
767
- },
768
- has: function (selector) {
769
- return this.filter(function () {
770
- return isObject(selector) ? $.contains(this, selector) : $(this).find(selector).size();
771
- });
772
- },
773
- eq: function (idx) {
774
- return idx === -1 ? this.slice(idx) : this.slice(idx, +idx + 1);
775
- },
776
- first: function () {
777
- var el = this[0];
778
- return el && !isObject(el) ? el : $(el);
779
- },
780
- last: function () {
781
- var el = this[this.length - 1];
782
- return el && !isObject(el) ? el : $(el);
783
- },
784
- find: function (selector) {
785
- var result,
786
- $this = this;
787
- if (!selector) result = $();else if (typeof selector == 'object') result = $(selector).filter(function () {
788
- var node = this;
789
- return emptyArray.some.call($this, function (parent) {
790
- return $.contains(parent, node);
791
- });
792
- });else if (this.length == 1) result = $(zepto.qsa(this[0], selector));else result = this.map(function () {
793
- return zepto.qsa(this, selector);
794
- });
795
- return result;
796
- },
797
- closest: function (selector, context) {
798
- var nodes = [],
799
- collection = typeof selector == 'object' && $(selector);
800
- this.each(function (_, node) {
801
- while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector))) node = node !== context && !isDocument(node) && node.parentNode;
802
- if (node && nodes.indexOf(node) < 0) nodes.push(node);
803
- });
804
- return $(nodes);
805
- },
806
- parents: function (selector) {
807
- var ancestors = [],
808
- nodes = this;
809
- while (nodes.length > 0) nodes = $.map(nodes, function (node) {
810
- if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {
811
- ancestors.push(node);
812
- return node;
813
- }
811
+ });
812
+ return filtered(ancestors, selector);
813
+ },
814
+ parent: function (selector) {
815
+ return filtered(uniq(this.pluck('parentNode')), selector);
816
+ },
817
+ children: function (selector) {
818
+ return filtered(this.map(function () {
819
+ return children(this);
820
+ }), selector);
821
+ },
822
+ contents: function () {
823
+ return this.map(function () {
824
+ return this.contentDocument || slice.call(this.childNodes);
825
+ });
826
+ },
827
+ siblings: function (selector) {
828
+ return filtered(this.map(function (i, el) {
829
+ return filter.call(children(el.parentNode), function (child) {
830
+ return child !== el;
814
831
  });
815
- return filtered(ancestors, selector);
816
- },
817
- parent: function (selector) {
818
- return filtered(uniq(this.pluck('parentNode')), selector);
819
- },
820
- children: function (selector) {
821
- return filtered(this.map(function () {
822
- return children(this);
823
- }), selector);
824
- },
825
- contents: function () {
826
- return this.map(function () {
827
- return this.contentDocument || slice.call(this.childNodes);
832
+ }), selector);
833
+ },
834
+ empty: function () {
835
+ return this.each(function () {
836
+ this.innerHTML = '';
837
+ });
838
+ },
839
+ // `pluck` is borrowed from Prototype.js
840
+ pluck: function (property) {
841
+ return $.map(this, function (el) {
842
+ return el[property];
843
+ });
844
+ },
845
+ show: function () {
846
+ return this.each(function () {
847
+ this.style.display == "none" && (this.style.display = '');
848
+ if (getComputedStyle(this, '').getPropertyValue("display") == "none") this.style.display = defaultDisplay(this.nodeName);
849
+ });
850
+ },
851
+ replaceWith: function (newContent) {
852
+ return this.before(newContent).remove();
853
+ },
854
+ wrap: function (structure) {
855
+ var func = isFunction(structure);
856
+ if (this[0] && !func) var dom = $(structure).get(0),
857
+ clone = dom.parentNode || this.length > 1;
858
+ return this.each(function (index) {
859
+ $(this).wrapAll(func ? structure.call(this, index) : clone ? dom.cloneNode(true) : dom);
860
+ });
861
+ },
862
+ wrapAll: function (structure) {
863
+ if (this[0]) {
864
+ $(this[0]).before(structure = $(structure));
865
+ var children;
866
+ // drill down to the inmost element
867
+ while ((children = structure.children()).length) structure = children.first();
868
+ $(structure).append(this);
869
+ }
870
+ return this;
871
+ },
872
+ wrapInner: function (structure) {
873
+ var func = isFunction(structure);
874
+ return this.each(function (index) {
875
+ var self = $(this),
876
+ contents = self.contents(),
877
+ dom = func ? structure.call(this, index) : structure;
878
+ contents.length ? contents.wrapAll(dom) : self.append(dom);
879
+ });
880
+ },
881
+ unwrap: function () {
882
+ this.parent().each(function () {
883
+ $(this).replaceWith($(this).children());
884
+ });
885
+ return this;
886
+ },
887
+ clone: function () {
888
+ return this.map(function () {
889
+ return this.cloneNode(true);
890
+ });
891
+ },
892
+ hide: function () {
893
+ return this.css("display", "none");
894
+ },
895
+ toggle: function (setting) {
896
+ return this.each(function () {
897
+ var el = $(this);
898
+ (setting === undefined$1 ? el.css("display") == "none" : setting) ? el.show() : el.hide();
899
+ });
900
+ },
901
+ prev: function (selector) {
902
+ return $(this.pluck('previousElementSibling')).filter(selector || '*');
903
+ },
904
+ next: function (selector) {
905
+ return $(this.pluck('nextElementSibling')).filter(selector || '*');
906
+ },
907
+ html: function (html) {
908
+ return 0 in arguments ? this.each(function (idx) {
909
+ var originHtml = this.innerHTML;
910
+ $(this).empty().append(funcArg(this, html, idx, originHtml));
911
+ }) : 0 in this ? this[0].innerHTML : null;
912
+ },
913
+ text: function (text) {
914
+ return 0 in arguments ? this.each(function (idx) {
915
+ var newText = funcArg(this, text, idx, this.textContent);
916
+ this.textContent = newText == null ? '' : '' + newText;
917
+ }) : 0 in this ? this.pluck('textContent').join("") : null;
918
+ },
919
+ attr: function (name, value) {
920
+ var result;
921
+ return typeof name == 'string' && !(1 in arguments) ? 0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined$1 : this.each(function (idx) {
922
+ if (this.nodeType !== 1) return;
923
+ if (isObject(name)) for (key in name) setAttribute(this, key, name[key]);else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)));
924
+ });
925
+ },
926
+ removeAttr: function (name) {
927
+ return this.each(function () {
928
+ this.nodeType === 1 && name.split(' ').forEach(function (attribute) {
929
+ setAttribute(this, attribute);
930
+ }, this);
931
+ });
932
+ },
933
+ prop: function (name, value) {
934
+ name = propMap[name] || name;
935
+ return 1 in arguments ? this.each(function (idx) {
936
+ this[name] = funcArg(this, value, idx, this[name]);
937
+ }) : this[0] && this[0][name];
938
+ },
939
+ removeProp: function (name) {
940
+ name = propMap[name] || name;
941
+ return this.each(function () {
942
+ delete this[name];
943
+ });
944
+ },
945
+ data: function (name, value) {
946
+ var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase();
947
+ var data = 1 in arguments ? this.attr(attrName, value) : this.attr(attrName);
948
+ return data !== null ? deserializeValue(data) : undefined$1;
949
+ },
950
+ val: function (value) {
951
+ if (0 in arguments) {
952
+ if (value == null) value = "";
953
+ return this.each(function (idx) {
954
+ this.value = funcArg(this, value, idx, this.value);
828
955
  });
829
- },
830
- siblings: function (selector) {
831
- return filtered(this.map(function (i, el) {
832
- return filter.call(children(el.parentNode), function (child) {
833
- return child !== el;
956
+ } else {
957
+ return this[0] && (this[0].multiple ? $(this[0]).find('option').filter(function () {
958
+ return this.selected;
959
+ }).pluck('value') : this[0].value);
960
+ }
961
+ },
962
+ offset: function (coordinates) {
963
+ if (coordinates) return this.each(function (index) {
964
+ var $this = $(this),
965
+ coords = funcArg(this, coordinates, index, $this.offset()),
966
+ parentOffset = $this.offsetParent().offset(),
967
+ props = {
968
+ top: coords.top - parentOffset.top,
969
+ left: coords.left - parentOffset.left
970
+ };
971
+ if ($this.css('position') == 'static') props['position'] = 'relative';
972
+ $this.css(props);
973
+ });
974
+ if (!this.length) return null;
975
+ if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0])) return {
976
+ top: 0,
977
+ left: 0
978
+ };
979
+ var obj = this[0].getBoundingClientRect();
980
+ return {
981
+ left: obj.left + window.pageXOffset,
982
+ top: obj.top + window.pageYOffset,
983
+ width: Math.round(obj.width),
984
+ height: Math.round(obj.height)
985
+ };
986
+ },
987
+ css: function (property, value) {
988
+ if (arguments.length < 2) {
989
+ var element = this[0];
990
+ if (typeof property == 'string') {
991
+ if (!element) return;
992
+ return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property);
993
+ } else if (isArray(property)) {
994
+ if (!element) return;
995
+ var props = {};
996
+ var computedStyle = getComputedStyle(element, '');
997
+ $.each(property, function (_, prop) {
998
+ props[prop] = element.style[camelize(prop)] || computedStyle.getPropertyValue(prop);
834
999
  });
835
- }), selector);
836
- },
837
- empty: function () {
838
- return this.each(function () {
839
- this.innerHTML = '';
840
- });
841
- },
842
- // `pluck` is borrowed from Prototype.js
843
- pluck: function (property) {
844
- return $.map(this, function (el) {
845
- return el[property];
846
- });
847
- },
848
- show: function () {
849
- return this.each(function () {
850
- this.style.display == "none" && (this.style.display = '');
851
- if (getComputedStyle(this, '').getPropertyValue("display") == "none") this.style.display = defaultDisplay(this.nodeName);
852
- });
853
- },
854
- replaceWith: function (newContent) {
855
- return this.before(newContent).remove();
856
- },
857
- wrap: function (structure) {
858
- var func = isFunction(structure);
859
- if (this[0] && !func) var dom = $(structure).get(0),
860
- clone = dom.parentNode || this.length > 1;
861
- return this.each(function (index) {
862
- $(this).wrapAll(func ? structure.call(this, index) : clone ? dom.cloneNode(true) : dom);
863
- });
864
- },
865
- wrapAll: function (structure) {
866
- if (this[0]) {
867
- $(this[0]).before(structure = $(structure));
868
- var children;
869
- // drill down to the inmost element
870
- while ((children = structure.children()).length) structure = children.first();
871
- $(structure).append(this);
1000
+ return props;
872
1001
  }
873
- return this;
874
- },
875
- wrapInner: function (structure) {
876
- var func = isFunction(structure);
877
- return this.each(function (index) {
878
- var self = $(this),
879
- contents = self.contents(),
880
- dom = func ? structure.call(this, index) : structure;
881
- contents.length ? contents.wrapAll(dom) : self.append(dom);
882
- });
883
- },
884
- unwrap: function () {
885
- this.parent().each(function () {
886
- $(this).replaceWith($(this).children());
887
- });
888
- return this;
889
- },
890
- clone: function () {
891
- return this.map(function () {
892
- return this.cloneNode(true);
893
- });
894
- },
895
- hide: function () {
896
- return this.css("display", "none");
897
- },
898
- toggle: function (setting) {
899
- return this.each(function () {
900
- var el = $(this);
901
- (setting === undefined$1 ? el.css("display") == "none" : setting) ? el.show() : el.hide();
902
- });
903
- },
904
- prev: function (selector) {
905
- return $(this.pluck('previousElementSibling')).filter(selector || '*');
906
- },
907
- next: function (selector) {
908
- return $(this.pluck('nextElementSibling')).filter(selector || '*');
909
- },
910
- html: function (html) {
911
- return 0 in arguments ? this.each(function (idx) {
912
- var originHtml = this.innerHTML;
913
- $(this).empty().append(funcArg(this, html, idx, originHtml));
914
- }) : 0 in this ? this[0].innerHTML : null;
915
- },
916
- text: function (text) {
917
- return 0 in arguments ? this.each(function (idx) {
918
- var newText = funcArg(this, text, idx, this.textContent);
919
- this.textContent = newText == null ? '' : '' + newText;
920
- }) : 0 in this ? this.pluck('textContent').join("") : null;
921
- },
922
- attr: function (name, value) {
923
- var result;
924
- return typeof name == 'string' && !(1 in arguments) ? 0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined$1 : this.each(function (idx) {
925
- if (this.nodeType !== 1) return;
926
- if (isObject(name)) for (key in name) setAttribute(this, key, name[key]);else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)));
927
- });
928
- },
929
- removeAttr: function (name) {
930
- return this.each(function () {
931
- this.nodeType === 1 && name.split(' ').forEach(function (attribute) {
932
- setAttribute(this, attribute);
933
- }, this);
934
- });
935
- },
936
- prop: function (name, value) {
937
- name = propMap[name] || name;
938
- return 1 in arguments ? this.each(function (idx) {
939
- this[name] = funcArg(this, value, idx, this[name]);
940
- }) : this[0] && this[0][name];
941
- },
942
- removeProp: function (name) {
943
- name = propMap[name] || name;
944
- return this.each(function () {
945
- delete this[name];
1002
+ }
1003
+ var css = '';
1004
+ if (type(property) == 'string') {
1005
+ if (!value && value !== 0) this.each(function () {
1006
+ this.style.removeProperty(dasherize(property));
1007
+ });else css = dasherize(property) + ":" + maybeAddPx(property, value);
1008
+ } else {
1009
+ for (key in property) if (!property[key] && property[key] !== 0) this.each(function () {
1010
+ this.style.removeProperty(dasherize(key));
1011
+ });else css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';';
1012
+ }
1013
+ return this.each(function () {
1014
+ this.style.cssText += ';' + css;
1015
+ });
1016
+ },
1017
+ index: function (element) {
1018
+ return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0]);
1019
+ },
1020
+ hasClass: function (name) {
1021
+ if (!name) return false;
1022
+ return emptyArray.some.call(this, function (el) {
1023
+ return this.test(className(el));
1024
+ }, classRE(name));
1025
+ },
1026
+ addClass: function (name) {
1027
+ if (!name) return this;
1028
+ return this.each(function (idx) {
1029
+ if (!('className' in this)) return;
1030
+ classList = [];
1031
+ var cls = className(this),
1032
+ newName = funcArg(this, name, idx, cls);
1033
+ newName.split(/\s+/g).forEach(function (klass) {
1034
+ if (!$(this).hasClass(klass)) classList.push(klass);
1035
+ }, this);
1036
+ classList.length && className(this, cls + (cls ? " " : "") + classList.join(" "));
1037
+ });
1038
+ },
1039
+ removeClass: function (name) {
1040
+ return this.each(function (idx) {
1041
+ if (!('className' in this)) return;
1042
+ if (name === undefined$1) return className(this, '');
1043
+ classList = className(this);
1044
+ funcArg(this, name, idx, classList).split(/\s+/g).forEach(function (klass) {
1045
+ classList = classList.replace(classRE(klass), " ");
946
1046
  });
947
- },
948
- data: function (name, value) {
949
- var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase();
950
- var data = 1 in arguments ? this.attr(attrName, value) : this.attr(attrName);
951
- return data !== null ? deserializeValue(data) : undefined$1;
952
- },
953
- val: function (value) {
954
- if (0 in arguments) {
955
- if (value == null) value = "";
956
- return this.each(function (idx) {
957
- this.value = funcArg(this, value, idx, this.value);
958
- });
959
- } else {
960
- return this[0] && (this[0].multiple ? $(this[0]).find('option').filter(function () {
961
- return this.selected;
962
- }).pluck('value') : this[0].value);
963
- }
964
- },
965
- offset: function (coordinates) {
966
- if (coordinates) return this.each(function (index) {
967
- var $this = $(this),
968
- coords = funcArg(this, coordinates, index, $this.offset()),
969
- parentOffset = $this.offsetParent().offset(),
970
- props = {
971
- top: coords.top - parentOffset.top,
972
- left: coords.left - parentOffset.left
973
- };
974
- if ($this.css('position') == 'static') props['position'] = 'relative';
975
- $this.css(props);
1047
+ className(this, classList.trim());
1048
+ });
1049
+ },
1050
+ toggleClass: function (name, when) {
1051
+ if (!name) return this;
1052
+ return this.each(function (idx) {
1053
+ var $this = $(this),
1054
+ names = funcArg(this, name, idx, className(this));
1055
+ names.split(/\s+/g).forEach(function (klass) {
1056
+ (when === undefined$1 ? !$this.hasClass(klass) : when) ? $this.addClass(klass) : $this.removeClass(klass);
976
1057
  });
977
- if (!this.length) return null;
978
- if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0])) return {
1058
+ });
1059
+ },
1060
+ scrollTop: function (value) {
1061
+ if (!this.length) return;
1062
+ var hasScrollTop = 'scrollTop' in this[0];
1063
+ if (value === undefined$1) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset;
1064
+ return this.each(hasScrollTop ? function () {
1065
+ this.scrollTop = value;
1066
+ } : function () {
1067
+ this.scrollTo(this.scrollX, value);
1068
+ });
1069
+ },
1070
+ scrollLeft: function (value) {
1071
+ if (!this.length) return;
1072
+ var hasScrollLeft = 'scrollLeft' in this[0];
1073
+ if (value === undefined$1) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset;
1074
+ return this.each(hasScrollLeft ? function () {
1075
+ this.scrollLeft = value;
1076
+ } : function () {
1077
+ this.scrollTo(value, this.scrollY);
1078
+ });
1079
+ },
1080
+ position: function () {
1081
+ if (!this.length) return;
1082
+ var elem = this[0],
1083
+ // Get *real* offsetParent
1084
+ offsetParent = this.offsetParent(),
1085
+ // Get correct offsets
1086
+ offset = this.offset(),
1087
+ parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? {
979
1088
  top: 0,
980
1089
  left: 0
981
- };
982
- var obj = this[0].getBoundingClientRect();
983
- return {
984
- left: obj.left + window.pageXOffset,
985
- top: obj.top + window.pageYOffset,
986
- width: Math.round(obj.width),
987
- height: Math.round(obj.height)
988
- };
989
- },
990
- css: function (property, value) {
991
- if (arguments.length < 2) {
992
- var element = this[0];
993
- if (typeof property == 'string') {
994
- if (!element) return;
995
- return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property);
996
- } else if (isArray(property)) {
997
- if (!element) return;
998
- var props = {};
999
- var computedStyle = getComputedStyle(element, '');
1000
- $.each(property, function (_, prop) {
1001
- props[prop] = element.style[camelize(prop)] || computedStyle.getPropertyValue(prop);
1002
- });
1003
- return props;
1004
- }
1005
- }
1006
- var css = '';
1007
- if (type(property) == 'string') {
1008
- if (!value && value !== 0) this.each(function () {
1009
- this.style.removeProperty(dasherize(property));
1010
- });else css = dasherize(property) + ":" + maybeAddPx(property, value);
1011
- } else {
1012
- for (key in property) if (!property[key] && property[key] !== 0) this.each(function () {
1013
- this.style.removeProperty(dasherize(key));
1014
- });else css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';';
1015
- }
1016
- return this.each(function () {
1017
- this.style.cssText += ';' + css;
1018
- });
1019
- },
1020
- index: function (element) {
1021
- return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0]);
1022
- },
1023
- hasClass: function (name) {
1024
- if (!name) return false;
1025
- return emptyArray.some.call(this, function (el) {
1026
- return this.test(className(el));
1027
- }, classRE(name));
1028
- },
1029
- addClass: function (name) {
1030
- if (!name) return this;
1031
- return this.each(function (idx) {
1032
- if (!('className' in this)) return;
1033
- classList = [];
1034
- var cls = className(this),
1035
- newName = funcArg(this, name, idx, cls);
1036
- newName.split(/\s+/g).forEach(function (klass) {
1037
- if (!$(this).hasClass(klass)) classList.push(klass);
1038
- }, this);
1039
- classList.length && className(this, cls + (cls ? " " : "") + classList.join(" "));
1040
- });
1041
- },
1042
- removeClass: function (name) {
1043
- return this.each(function (idx) {
1044
- if (!('className' in this)) return;
1045
- if (name === undefined$1) return className(this, '');
1046
- classList = className(this);
1047
- funcArg(this, name, idx, classList).split(/\s+/g).forEach(function (klass) {
1048
- classList = classList.replace(classRE(klass), " ");
1049
- });
1050
- className(this, classList.trim());
1051
- });
1052
- },
1053
- toggleClass: function (name, when) {
1054
- if (!name) return this;
1055
- return this.each(function (idx) {
1056
- var $this = $(this),
1057
- names = funcArg(this, name, idx, className(this));
1058
- names.split(/\s+/g).forEach(function (klass) {
1059
- (when === undefined$1 ? !$this.hasClass(klass) : when) ? $this.addClass(klass) : $this.removeClass(klass);
1060
- });
1061
- });
1062
- },
1063
- scrollTop: function (value) {
1064
- if (!this.length) return;
1065
- var hasScrollTop = 'scrollTop' in this[0];
1066
- if (value === undefined$1) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset;
1067
- return this.each(hasScrollTop ? function () {
1068
- this.scrollTop = value;
1069
- } : function () {
1070
- this.scrollTo(this.scrollX, value);
1071
- });
1072
- },
1073
- scrollLeft: function (value) {
1074
- if (!this.length) return;
1075
- var hasScrollLeft = 'scrollLeft' in this[0];
1076
- if (value === undefined$1) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset;
1077
- return this.each(hasScrollLeft ? function () {
1078
- this.scrollLeft = value;
1079
- } : function () {
1080
- this.scrollTo(value, this.scrollY);
1081
- });
1082
- },
1083
- position: function () {
1084
- if (!this.length) return;
1085
- var elem = this[0],
1086
- // Get *real* offsetParent
1087
- offsetParent = this.offsetParent(),
1088
- // Get correct offsets
1089
- offset = this.offset(),
1090
- parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? {
1091
- top: 0,
1092
- left: 0
1093
- } : offsetParent.offset();
1094
-
1095
- // Subtract element margins
1096
- // note: when an element has margin: auto the offsetLeft and marginLeft
1097
- // are the same in Safari causing offset.left to incorrectly be 0
1098
- offset.top -= parseFloat($(elem).css('margin-top')) || 0;
1099
- offset.left -= parseFloat($(elem).css('margin-left')) || 0;
1100
-
1101
- // Add offsetParent borders
1102
- parentOffset.top += parseFloat($(offsetParent[0]).css('border-top-width')) || 0;
1103
- parentOffset.left += parseFloat($(offsetParent[0]).css('border-left-width')) || 0;
1104
-
1105
- // Subtract the two offsets
1106
- return {
1107
- top: offset.top - parentOffset.top,
1108
- left: offset.left - parentOffset.left
1109
- };
1110
- },
1111
- offsetParent: function () {
1112
- return this.map(function () {
1113
- var parent = this.offsetParent || document.body;
1114
- while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css("position") == "static") parent = parent.offsetParent;
1115
- return parent;
1116
- });
1117
- }
1118
- };
1090
+ } : offsetParent.offset();
1119
1091
 
1120
- // for now
1121
- $.fn.detach = $.fn.remove
1092
+ // Subtract element margins
1093
+ // note: when an element has margin: auto the offsetLeft and marginLeft
1094
+ // are the same in Safari causing offset.left to incorrectly be 0
1095
+ offset.top -= parseFloat($(elem).css('margin-top')) || 0;
1096
+ offset.left -= parseFloat($(elem).css('margin-left')) || 0;
1122
1097
 
1123
- // Generate the `width` and `height` functions
1124
- ;
1125
- ['width', 'height'].forEach(function (dimension) {
1126
- var dimensionProperty = dimension.replace(/./, function (m) {
1127
- return m[0].toUpperCase();
1128
- });
1129
- $.fn[dimension] = function (value) {
1130
- var offset,
1131
- el = this[0];
1132
- if (value === undefined$1) return isWindow(el) ? el['inner' + dimensionProperty] : isDocument(el) ? el.documentElement['scroll' + dimensionProperty] : (offset = this.offset()) && offset[dimension];else return this.each(function (idx) {
1133
- el = $(this);
1134
- el.css(dimension, funcArg(this, value, idx, el[dimension]()));
1135
- });
1098
+ // Add offsetParent borders
1099
+ parentOffset.top += parseFloat($(offsetParent[0]).css('border-top-width')) || 0;
1100
+ parentOffset.left += parseFloat($(offsetParent[0]).css('border-left-width')) || 0;
1101
+
1102
+ // Subtract the two offsets
1103
+ return {
1104
+ top: offset.top - parentOffset.top,
1105
+ left: offset.left - parentOffset.left
1136
1106
  };
1107
+ },
1108
+ offsetParent: function () {
1109
+ return this.map(function () {
1110
+ var parent = this.offsetParent || document.body;
1111
+ while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css("position") == "static") parent = parent.offsetParent;
1112
+ return parent;
1113
+ });
1114
+ }
1115
+ };
1116
+
1117
+ // for now
1118
+ $.fn.detach = $.fn.remove
1119
+
1120
+ // Generate the `width` and `height` functions
1121
+ ;
1122
+ ['width', 'height'].forEach(function (dimension) {
1123
+ var dimensionProperty = dimension.replace(/./, function (m) {
1124
+ return m[0].toUpperCase();
1137
1125
  });
1138
- function traverseNode(node, fun) {
1139
- fun(node);
1140
- for (var i = 0, len = node.childNodes.length; i < len; i++) traverseNode(node.childNodes[i], fun);
1141
- }
1142
-
1143
- // Generate the `after`, `prepend`, `before`, `append`,
1144
- // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.
1145
- adjacencyOperators.forEach(function (operator, operatorIndex) {
1146
- var inside = operatorIndex % 2; //=> prepend, append
1147
-
1148
- $.fn[operator] = function () {
1149
- // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings
1150
- var argType,
1151
- nodes = $.map(arguments, function (arg) {
1152
- var arr = [];
1153
- argType = type(arg);
1154
- if (argType == "array") {
1155
- arg.forEach(function (el) {
1156
- if (el.nodeType !== undefined$1) return arr.push(el);else if ($.zepto.isZ(el)) return arr = arr.concat(el.get());
1157
- arr = arr.concat(zepto.fragment(el));
1158
- });
1159
- return arr;
1160
- }
1161
- return argType == "object" || arg == null ? arg : zepto.fragment(arg);
1162
- }),
1163
- parent,
1164
- copyByClone = this.length > 1;
1165
- if (nodes.length < 1) return this;
1166
- return this.each(function (_, target) {
1167
- parent = inside ? target : target.parentNode;
1168
-
1169
- // convert all methods to a "before" operation
1170
- target = operatorIndex == 0 ? target.nextSibling : operatorIndex == 1 ? target.firstChild : operatorIndex == 2 ? target : null;
1171
- var parentInDocument = $.contains(document.documentElement, parent);
1172
- nodes.forEach(function (node) {
1173
- if (copyByClone) node = node.cloneNode(true);else if (!parent) return $(node).remove();
1174
- parent.insertBefore(node, target);
1175
- if (parentInDocument) traverseNode(node, function (el) {
1176
- if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' && (!el.type || el.type === 'text/javascript') && !el.src) {
1177
- var target = el.ownerDocument ? el.ownerDocument.defaultView : window;
1178
- target['eval'].call(target, el.innerHTML);
1179
- }
1126
+ $.fn[dimension] = function (value) {
1127
+ var offset,
1128
+ el = this[0];
1129
+ if (value === undefined$1) return isWindow(el) ? el['inner' + dimensionProperty] : isDocument(el) ? el.documentElement['scroll' + dimensionProperty] : (offset = this.offset()) && offset[dimension];else return this.each(function (idx) {
1130
+ el = $(this);
1131
+ el.css(dimension, funcArg(this, value, idx, el[dimension]()));
1132
+ });
1133
+ };
1134
+ });
1135
+ function traverseNode(node, fun) {
1136
+ fun(node);
1137
+ for (var i = 0, len = node.childNodes.length; i < len; i++) traverseNode(node.childNodes[i], fun);
1138
+ }
1139
+
1140
+ // Generate the `after`, `prepend`, `before`, `append`,
1141
+ // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.
1142
+ adjacencyOperators.forEach(function (operator, operatorIndex) {
1143
+ var inside = operatorIndex % 2; //=> prepend, append
1144
+
1145
+ $.fn[operator] = function () {
1146
+ // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings
1147
+ var argType,
1148
+ nodes = $.map(arguments, function (arg) {
1149
+ var arr = [];
1150
+ argType = type(arg);
1151
+ if (argType == "array") {
1152
+ arg.forEach(function (el) {
1153
+ if (el.nodeType !== undefined$1) return arr.push(el);else if ($.zepto.isZ(el)) return arr = arr.concat(el.get());
1154
+ arr = arr.concat(zepto.fragment(el));
1180
1155
  });
1156
+ return arr;
1157
+ }
1158
+ return argType == "object" || arg == null ? arg : zepto.fragment(arg);
1159
+ }),
1160
+ parent,
1161
+ copyByClone = this.length > 1;
1162
+ if (nodes.length < 1) return this;
1163
+ return this.each(function (_, target) {
1164
+ parent = inside ? target : target.parentNode;
1165
+
1166
+ // convert all methods to a "before" operation
1167
+ target = operatorIndex == 0 ? target.nextSibling : operatorIndex == 1 ? target.firstChild : operatorIndex == 2 ? target : null;
1168
+ var parentInDocument = $.contains(document.documentElement, parent);
1169
+ nodes.forEach(function (node) {
1170
+ if (copyByClone) node = node.cloneNode(true);else if (!parent) return $(node).remove();
1171
+ parent.insertBefore(node, target);
1172
+ if (parentInDocument) traverseNode(node, function (el) {
1173
+ if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' && (!el.type || el.type === 'text/javascript') && !el.src) {
1174
+ var target = el.ownerDocument ? el.ownerDocument.defaultView : window;
1175
+ target['eval'].call(target, el.innerHTML);
1176
+ }
1181
1177
  });
1182
1178
  });
1183
- };
1179
+ });
1180
+ };
1184
1181
 
1185
- // after => insertAfter
1186
- // prepend => prependTo
1187
- // before => insertBefore
1188
- // append => appendTo
1189
- $.fn[inside ? operator + 'To' : 'insert' + (operatorIndex ? 'Before' : 'After')] = function (html) {
1190
- $(html)[operator](this);
1191
- return this;
1192
- };
1193
- });
1194
- zepto.Z.prototype = Z.prototype = $.fn;
1182
+ // after => insertAfter
1183
+ // prepend => prependTo
1184
+ // before => insertBefore
1185
+ // append => appendTo
1186
+ $.fn[inside ? operator + 'To' : 'insert' + (operatorIndex ? 'Before' : 'After')] = function (html) {
1187
+ $(html)[operator](this);
1188
+ return this;
1189
+ };
1190
+ });
1191
+ zepto.Z.prototype = Z.prototype = $.fn;
1195
1192
 
1196
- // Export internal API functions in the `$.zepto` namespace
1197
- zepto.uniq = uniq;
1198
- zepto.deserializeValue = deserializeValue;
1199
- $.zepto = zepto;
1200
- return $;
1201
- }();
1202
- window.Zepto = Zepto;
1203
- window.$ === undefined && (window.$ = Zepto);
1204
- (function ($) {
1205
- var jsonpID = +new Date(),
1206
- document = window.document,
1207
- key,
1208
- name,
1209
- rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
1210
- scriptTypeRE = /^(?:text|application)\/javascript/i,
1211
- xmlTypeRE = /^(?:text|application)\/xml/i,
1212
- jsonType = 'application/json',
1213
- htmlType = 'text/html',
1214
- blankRE = /^\s*$/,
1215
- originAnchor = document.createElement('a');
1216
- originAnchor.href = window.location.href;
1217
-
1218
- // trigger a custom event and return false if it was cancelled
1219
- function triggerAndReturn(context, eventName, data) {
1220
- var event = $.Event(eventName);
1221
- $(context).trigger(event, data);
1222
- return !event.isDefaultPrevented();
1223
- }
1224
-
1225
- // trigger an Ajax "global" event
1226
- function triggerGlobal(settings, context, eventName, data) {
1227
- if (settings.global) return triggerAndReturn(context || document, eventName, data);
1228
- }
1229
-
1230
- // Number of active Ajax requests
1231
- $.active = 0;
1232
- function ajaxStart(settings) {
1233
- if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart');
1234
- }
1235
- function ajaxStop(settings) {
1236
- if (settings.global && ! --$.active) triggerGlobal(settings, null, 'ajaxStop');
1237
- }
1238
-
1239
- // triggers an extra global event "ajaxBeforeSend" that's like "ajaxSend" but cancelable
1240
- function ajaxBeforeSend(xhr, settings) {
1241
- var context = settings.context;
1242
- if (settings.beforeSend.call(context, xhr, settings) === false || triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false) return false;
1243
- triggerGlobal(settings, context, 'ajaxSend', [xhr, settings]);
1244
- }
1245
- function ajaxSuccess(data, xhr, settings, deferred) {
1246
- var context = settings.context,
1247
- status = 'success';
1248
- settings.success.call(context, data, status, xhr);
1249
- if (deferred) deferred.resolveWith(context, [data, status, xhr]);
1250
- triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data]);
1251
- ajaxComplete(status, xhr, settings);
1252
- }
1253
- // type: "timeout", "error", "abort", "parsererror"
1254
- function ajaxError(error, type, xhr, settings, deferred) {
1255
- var context = settings.context;
1256
- settings.error.call(context, xhr, type, error);
1257
- if (deferred) deferred.rejectWith(context, [xhr, type, error]);
1258
- triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type]);
1259
- ajaxComplete(type, xhr, settings);
1260
- }
1261
- // status: "success", "notmodified", "error", "timeout", "abort", "parsererror"
1262
- function ajaxComplete(status, xhr, settings) {
1263
- var context = settings.context;
1264
- settings.complete.call(context, xhr, status);
1265
- triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings]);
1266
- ajaxStop(settings);
1267
- }
1268
- function ajaxDataFilter(data, type, settings) {
1269
- if (settings.dataFilter == empty) return data;
1270
- var context = settings.context;
1271
- return settings.dataFilter.call(context, data, type);
1272
- }
1273
-
1274
- // Empty function, used as default callback
1275
- function empty() {}
1276
- $.ajaxJSONP = function (options, deferred) {
1277
- if (!('type' in options)) return $.ajax(options);
1278
- var _callbackName = options.jsonpCallback,
1279
- callbackName = ($.isFunction(_callbackName) ? _callbackName() : _callbackName) || 'Zepto' + jsonpID++,
1280
- script = document.createElement('script'),
1281
- originalCallback = window[callbackName],
1282
- responseData,
1283
- abort = function (errorType) {
1284
- $(script).triggerHandler('error', errorType || 'abort');
1285
- },
1286
- xhr = {
1287
- abort: abort
1288
- },
1289
- abortTimeout;
1290
- if (deferred) deferred.promise(xhr);
1291
- $(script).on('load error', function (e, errorType) {
1292
- clearTimeout(abortTimeout);
1293
- $(script).off().remove();
1294
- if (e.type == 'error' || !responseData) {
1295
- ajaxError(null, errorType || 'error', xhr, options, deferred);
1296
- } else {
1297
- ajaxSuccess(responseData[0], xhr, options, deferred);
1298
- }
1299
- window[callbackName] = originalCallback;
1300
- if (responseData && $.isFunction(originalCallback)) originalCallback(responseData[0]);
1301
- originalCallback = responseData = undefined;
1302
- });
1303
- if (ajaxBeforeSend(xhr, options) === false) {
1304
- abort('abort');
1305
- return xhr;
1193
+ // Export internal API functions in the `$.zepto` namespace
1194
+ zepto.uniq = uniq;
1195
+ zepto.deserializeValue = deserializeValue;
1196
+ $.zepto = zepto;
1197
+ return $;
1198
+ }();
1199
+ window.Zepto = Zepto;
1200
+ window.$ === undefined && (window.$ = Zepto);
1201
+ (function ($) {
1202
+ var jsonpID = +new Date(),
1203
+ document = window.document,
1204
+ key,
1205
+ name,
1206
+ rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
1207
+ scriptTypeRE = /^(?:text|application)\/javascript/i,
1208
+ xmlTypeRE = /^(?:text|application)\/xml/i,
1209
+ jsonType = 'application/json',
1210
+ htmlType = 'text/html',
1211
+ blankRE = /^\s*$/,
1212
+ originAnchor = document.createElement('a');
1213
+ originAnchor.href = window.location.href;
1214
+
1215
+ // trigger a custom event and return false if it was cancelled
1216
+ function triggerAndReturn(context, eventName, data) {
1217
+ var event = $.Event(eventName);
1218
+ $(context).trigger(event, data);
1219
+ return !event.isDefaultPrevented();
1220
+ }
1221
+
1222
+ // trigger an Ajax "global" event
1223
+ function triggerGlobal(settings, context, eventName, data) {
1224
+ if (settings.global) return triggerAndReturn(context || document, eventName, data);
1225
+ }
1226
+
1227
+ // Number of active Ajax requests
1228
+ $.active = 0;
1229
+ function ajaxStart(settings) {
1230
+ if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart');
1231
+ }
1232
+ function ajaxStop(settings) {
1233
+ if (settings.global && ! --$.active) triggerGlobal(settings, null, 'ajaxStop');
1234
+ }
1235
+
1236
+ // triggers an extra global event "ajaxBeforeSend" that's like "ajaxSend" but cancelable
1237
+ function ajaxBeforeSend(xhr, settings) {
1238
+ var context = settings.context;
1239
+ if (settings.beforeSend.call(context, xhr, settings) === false || triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false) return false;
1240
+ triggerGlobal(settings, context, 'ajaxSend', [xhr, settings]);
1241
+ }
1242
+ function ajaxSuccess(data, xhr, settings, deferred) {
1243
+ var context = settings.context,
1244
+ status = 'success';
1245
+ settings.success.call(context, data, status, xhr);
1246
+ if (deferred) deferred.resolveWith(context, [data, status, xhr]);
1247
+ triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data]);
1248
+ ajaxComplete(status, xhr, settings);
1249
+ }
1250
+ // type: "timeout", "error", "abort", "parsererror"
1251
+ function ajaxError(error, type, xhr, settings, deferred) {
1252
+ var context = settings.context;
1253
+ settings.error.call(context, xhr, type, error);
1254
+ if (deferred) deferred.rejectWith(context, [xhr, type, error]);
1255
+ triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type]);
1256
+ ajaxComplete(type, xhr, settings);
1257
+ }
1258
+ // status: "success", "notmodified", "error", "timeout", "abort", "parsererror"
1259
+ function ajaxComplete(status, xhr, settings) {
1260
+ var context = settings.context;
1261
+ settings.complete.call(context, xhr, status);
1262
+ triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings]);
1263
+ ajaxStop(settings);
1264
+ }
1265
+ function ajaxDataFilter(data, type, settings) {
1266
+ if (settings.dataFilter == empty) return data;
1267
+ var context = settings.context;
1268
+ return settings.dataFilter.call(context, data, type);
1269
+ }
1270
+
1271
+ // Empty function, used as default callback
1272
+ function empty() {}
1273
+ $.ajaxJSONP = function (options, deferred) {
1274
+ if (!('type' in options)) return $.ajax(options);
1275
+ var _callbackName = options.jsonpCallback,
1276
+ callbackName = ($.isFunction(_callbackName) ? _callbackName() : _callbackName) || 'Zepto' + jsonpID++,
1277
+ script = document.createElement('script'),
1278
+ originalCallback = window[callbackName],
1279
+ responseData,
1280
+ abort = function (errorType) {
1281
+ $(script).triggerHandler('error', errorType || 'abort');
1282
+ },
1283
+ xhr = {
1284
+ abort: abort
1285
+ },
1286
+ abortTimeout;
1287
+ if (deferred) deferred.promise(xhr);
1288
+ $(script).on('load error', function (e, errorType) {
1289
+ clearTimeout(abortTimeout);
1290
+ $(script).off().remove();
1291
+ if (e.type == 'error' || !responseData) {
1292
+ ajaxError(null, errorType || 'error', xhr, options, deferred);
1293
+ } else {
1294
+ ajaxSuccess(responseData[0], xhr, options, deferred);
1306
1295
  }
1307
- window[callbackName] = function () {
1308
- responseData = arguments;
1309
- };
1310
- script.src = options.url.replace(/\?(.+)=\?/, '?$1=' + callbackName);
1311
- document.head.appendChild(script);
1312
- if (options.timeout > 0) abortTimeout = setTimeout(function () {
1313
- abort('timeout');
1314
- }, options.timeout);
1296
+ window[callbackName] = originalCallback;
1297
+ if (responseData && $.isFunction(originalCallback)) originalCallback(responseData[0]);
1298
+ originalCallback = responseData = undefined;
1299
+ });
1300
+ if (ajaxBeforeSend(xhr, options) === false) {
1301
+ abort('abort');
1315
1302
  return xhr;
1303
+ }
1304
+ window[callbackName] = function () {
1305
+ responseData = arguments;
1316
1306
  };
1317
- $.ajaxSettings = {
1318
- // Default type of request
1319
- type: 'GET',
1320
- // Callback that is executed before request
1321
- beforeSend: empty,
1322
- // Callback that is executed if the request succeeds
1323
- success: empty,
1324
- // Callback that is executed the the server drops error
1325
- error: empty,
1326
- // Callback that is executed on request complete (both: error and success)
1327
- complete: empty,
1328
- // The context for the callbacks
1329
- context: null,
1330
- // Whether to trigger "global" Ajax events
1331
- global: true,
1332
- // Transport
1333
- xhr: function () {
1334
- return new window.XMLHttpRequest();
1335
- },
1336
- // MIME types mapping
1337
- // IIS returns Javascript as "application/x-javascript"
1338
- accepts: {
1339
- script: 'text/javascript, application/javascript, application/x-javascript',
1340
- json: jsonType,
1341
- xml: 'application/xml, text/xml',
1342
- html: htmlType,
1343
- text: 'text/plain'
1307
+ script.src = options.url.replace(/\?(.+)=\?/, '?$1=' + callbackName);
1308
+ document.head.appendChild(script);
1309
+ if (options.timeout > 0) abortTimeout = setTimeout(function () {
1310
+ abort('timeout');
1311
+ }, options.timeout);
1312
+ return xhr;
1313
+ };
1314
+ $.ajaxSettings = {
1315
+ // Default type of request
1316
+ type: 'GET',
1317
+ // Callback that is executed before request
1318
+ beforeSend: empty,
1319
+ // Callback that is executed if the request succeeds
1320
+ success: empty,
1321
+ // Callback that is executed the the server drops error
1322
+ error: empty,
1323
+ // Callback that is executed on request complete (both: error and success)
1324
+ complete: empty,
1325
+ // The context for the callbacks
1326
+ context: null,
1327
+ // Whether to trigger "global" Ajax events
1328
+ global: true,
1329
+ // Transport
1330
+ xhr: function () {
1331
+ return new window.XMLHttpRequest();
1332
+ },
1333
+ // MIME types mapping
1334
+ // IIS returns Javascript as "application/x-javascript"
1335
+ accepts: {
1336
+ script: 'text/javascript, application/javascript, application/x-javascript',
1337
+ json: jsonType,
1338
+ xml: 'application/xml, text/xml',
1339
+ html: htmlType,
1340
+ text: 'text/plain'
1341
+ },
1342
+ // Whether the request is to another domain
1343
+ crossDomain: false,
1344
+ // Default timeout
1345
+ timeout: 0,
1346
+ // Whether data should be serialized to string
1347
+ processData: true,
1348
+ // Whether the browser should be allowed to cache GET responses
1349
+ cache: true,
1350
+ //Used to handle the raw response data of XMLHttpRequest.
1351
+ //This is a pre-filtering function to sanitize the response.
1352
+ //The sanitized response should be returned
1353
+ dataFilter: empty
1354
+ };
1355
+ function mimeToDataType(mime) {
1356
+ if (mime) mime = mime.split(';', 2)[0];
1357
+ return mime && (mime == htmlType ? 'html' : mime == jsonType ? 'json' : scriptTypeRE.test(mime) ? 'script' : xmlTypeRE.test(mime) && 'xml') || 'text';
1358
+ }
1359
+ function appendQuery(url, query) {
1360
+ if (query == '') return url;
1361
+ return (url + '&' + query).replace(/[&?]{1,2}/, '?');
1362
+ }
1363
+
1364
+ // serialize payload and append it to the URL for GET requests
1365
+ function serializeData(options) {
1366
+ if (options.processData && options.data && $.type(options.data) != "string") options.data = $.param(options.data, options.traditional);
1367
+ if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType)) options.url = appendQuery(options.url, options.data), options.data = undefined;
1368
+ }
1369
+ $.ajax = function (options) {
1370
+ var settings = $.extend({}, options || {}),
1371
+ deferred = $.Deferred && $.Deferred(),
1372
+ urlAnchor,
1373
+ hashIndex;
1374
+ for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key];
1375
+ ajaxStart(settings);
1376
+ if (!settings.crossDomain) {
1377
+ urlAnchor = document.createElement('a');
1378
+ urlAnchor.href = settings.url;
1379
+ // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049
1380
+ urlAnchor.href = urlAnchor.href;
1381
+ settings.crossDomain = originAnchor.protocol + '//' + originAnchor.host !== urlAnchor.protocol + '//' + urlAnchor.host;
1382
+ }
1383
+ if (!settings.url) settings.url = window.location.toString();
1384
+ if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex);
1385
+ serializeData(settings);
1386
+ var dataType = settings.dataType,
1387
+ hasPlaceholder = /\?.+=\?/.test(settings.url);
1388
+ if (hasPlaceholder) dataType = 'jsonp';
1389
+ if (settings.cache === false || (!options || options.cache !== true) && ('script' == dataType || 'jsonp' == dataType)) settings.url = appendQuery(settings.url, '_=' + Date.now());
1390
+ if ('jsonp' == dataType) {
1391
+ if (!hasPlaceholder) settings.url = appendQuery(settings.url, settings.jsonp ? settings.jsonp + '=?' : settings.jsonp === false ? '' : 'callback=?');
1392
+ return $.ajaxJSONP(settings, deferred);
1393
+ }
1394
+ var mime = settings.accepts[dataType],
1395
+ headers = {},
1396
+ setHeader = function (name, value) {
1397
+ headers[name.toLowerCase()] = [name, value];
1344
1398
  },
1345
- // Whether the request is to another domain
1346
- crossDomain: false,
1347
- // Default timeout
1348
- timeout: 0,
1349
- // Whether data should be serialized to string
1350
- processData: true,
1351
- // Whether the browser should be allowed to cache GET responses
1352
- cache: true,
1353
- //Used to handle the raw response data of XMLHttpRequest.
1354
- //This is a pre-filtering function to sanitize the response.
1355
- //The sanitized response should be returned
1356
- dataFilter: empty
1357
- };
1358
- function mimeToDataType(mime) {
1359
- if (mime) mime = mime.split(';', 2)[0];
1360
- return mime && (mime == htmlType ? 'html' : mime == jsonType ? 'json' : scriptTypeRE.test(mime) ? 'script' : xmlTypeRE.test(mime) && 'xml') || 'text';
1361
- }
1362
- function appendQuery(url, query) {
1363
- if (query == '') return url;
1364
- return (url + '&' + query).replace(/[&?]{1,2}/, '?');
1365
- }
1366
-
1367
- // serialize payload and append it to the URL for GET requests
1368
- function serializeData(options) {
1369
- if (options.processData && options.data && $.type(options.data) != "string") options.data = $.param(options.data, options.traditional);
1370
- if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType)) options.url = appendQuery(options.url, options.data), options.data = undefined;
1371
- }
1372
- $.ajax = function (options) {
1373
- var settings = $.extend({}, options || {}),
1374
- deferred = $.Deferred && $.Deferred(),
1375
- urlAnchor,
1376
- hashIndex;
1377
- for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key];
1378
- ajaxStart(settings);
1379
- if (!settings.crossDomain) {
1380
- urlAnchor = document.createElement('a');
1381
- urlAnchor.href = settings.url;
1382
- // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049
1383
- urlAnchor.href = urlAnchor.href;
1384
- settings.crossDomain = originAnchor.protocol + '//' + originAnchor.host !== urlAnchor.protocol + '//' + urlAnchor.host;
1385
- }
1386
- if (!settings.url) settings.url = window.location.toString();
1387
- if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex);
1388
- serializeData(settings);
1389
- var dataType = settings.dataType,
1390
- hasPlaceholder = /\?.+=\?/.test(settings.url);
1391
- if (hasPlaceholder) dataType = 'jsonp';
1392
- if (settings.cache === false || (!options || options.cache !== true) && ('script' == dataType || 'jsonp' == dataType)) settings.url = appendQuery(settings.url, '_=' + Date.now());
1393
- if ('jsonp' == dataType) {
1394
- if (!hasPlaceholder) settings.url = appendQuery(settings.url, settings.jsonp ? settings.jsonp + '=?' : settings.jsonp === false ? '' : 'callback=?');
1395
- return $.ajaxJSONP(settings, deferred);
1396
- }
1397
- var mime = settings.accepts[dataType],
1398
- headers = {},
1399
- setHeader = function (name, value) {
1400
- headers[name.toLowerCase()] = [name, value];
1401
- },
1402
- protocol = /^([\w-]+:)\/\//.test(settings.url) ? RegExp.$1 : window.location.protocol,
1403
- xhr = settings.xhr(),
1404
- nativeSetHeader = xhr.setRequestHeader,
1405
- abortTimeout;
1406
- if (deferred) deferred.promise(xhr);
1407
- if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest');
1408
- setHeader('Accept', mime || '*/*');
1409
- if (mime = settings.mimeType || mime) {
1410
- if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0];
1411
- xhr.overrideMimeType && xhr.overrideMimeType(mime);
1412
- }
1413
- if (settings.contentType || settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET') setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded');
1414
- if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name]);
1415
- xhr.setRequestHeader = setHeader;
1416
- xhr.onreadystatechange = function () {
1417
- if (xhr.readyState == 4) {
1418
- xhr.onreadystatechange = empty;
1419
- clearTimeout(abortTimeout);
1420
- var result,
1421
- error = false;
1422
- if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304 || xhr.status == 0 && protocol == 'file:') {
1423
- dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'));
1424
- if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob') result = xhr.response;else {
1425
- result = xhr.responseText;
1426
- try {
1427
- // http://perfectionkills.com/global-eval-what-are-the-options/
1428
- // sanitize response accordingly if data filter callback provided
1429
- result = ajaxDataFilter(result, dataType, settings);
1430
- if (dataType == 'script') (1, eval)(result);else if (dataType == 'xml') result = xhr.responseXML;else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result);
1431
- } catch (e) {
1432
- error = e;
1433
- }
1434
- if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred);
1399
+ protocol = /^([\w-]+:)\/\//.test(settings.url) ? RegExp.$1 : window.location.protocol,
1400
+ xhr = settings.xhr(),
1401
+ nativeSetHeader = xhr.setRequestHeader,
1402
+ abortTimeout;
1403
+ if (deferred) deferred.promise(xhr);
1404
+ if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest');
1405
+ setHeader('Accept', mime || '*/*');
1406
+ if (mime = settings.mimeType || mime) {
1407
+ if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0];
1408
+ xhr.overrideMimeType && xhr.overrideMimeType(mime);
1409
+ }
1410
+ if (settings.contentType || settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET') setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded');
1411
+ if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name]);
1412
+ xhr.setRequestHeader = setHeader;
1413
+ xhr.onreadystatechange = function () {
1414
+ if (xhr.readyState == 4) {
1415
+ xhr.onreadystatechange = empty;
1416
+ clearTimeout(abortTimeout);
1417
+ var result,
1418
+ error = false;
1419
+ if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304 || xhr.status == 0 && protocol == 'file:') {
1420
+ dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'));
1421
+ if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob') result = xhr.response;else {
1422
+ result = xhr.responseText;
1423
+ try {
1424
+ // http://perfectionkills.com/global-eval-what-are-the-options/
1425
+ // sanitize response accordingly if data filter callback provided
1426
+ result = ajaxDataFilter(result, dataType, settings);
1427
+ if (dataType == 'script') (1, eval)(result);else if (dataType == 'xml') result = xhr.responseXML;else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result);
1428
+ } catch (e) {
1429
+ error = e;
1435
1430
  }
1436
- ajaxSuccess(result, xhr, settings, deferred);
1437
- } else {
1438
- ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred);
1431
+ if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred);
1439
1432
  }
1433
+ ajaxSuccess(result, xhr, settings, deferred);
1434
+ } else {
1435
+ ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred);
1440
1436
  }
1441
- };
1442
- if (ajaxBeforeSend(xhr, settings) === false) {
1443
- xhr.abort();
1444
- ajaxError(null, 'abort', xhr, settings, deferred);
1445
- return xhr;
1446
- }
1447
- var async = 'async' in settings ? settings.async : true;
1448
- xhr.open(settings.type, settings.url, async, settings.username, settings.password);
1449
- if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name];
1450
- for (name in headers) nativeSetHeader.apply(xhr, headers[name]);
1451
- if (settings.timeout > 0) abortTimeout = setTimeout(function () {
1452
- xhr.onreadystatechange = empty;
1453
- xhr.abort();
1454
- ajaxError(null, 'timeout', xhr, settings, deferred);
1455
- }, settings.timeout);
1456
-
1457
- // avoid sending empty string (#319)
1458
- xhr.send(settings.data ? settings.data : null);
1459
- return xhr;
1437
+ }
1460
1438
  };
1461
-
1462
- // handle optional data/success arguments
1463
- function parseArguments(url, data, success, dataType) {
1464
- if ($.isFunction(data)) dataType = success, success = data, data = undefined;
1465
- if (!$.isFunction(success)) dataType = success, success = undefined;
1466
- return {
1467
- url: url,
1468
- data: data,
1469
- success: success,
1470
- dataType: dataType
1471
- };
1439
+ if (ajaxBeforeSend(xhr, settings) === false) {
1440
+ xhr.abort();
1441
+ ajaxError(null, 'abort', xhr, settings, deferred);
1442
+ return xhr;
1472
1443
  }
1473
- $.get = function /* url, data, success, dataType */
1474
- () {
1475
- return $.ajax(parseArguments.apply(null, arguments));
1476
- };
1477
- $.post = function /* url, data, success, dataType */
1478
- () {
1479
- var options = parseArguments.apply(null, arguments);
1480
- options.type = 'POST';
1481
- return $.ajax(options);
1482
- };
1483
- $.getJSON = function /* url, data, success */
1484
- () {
1485
- var options = parseArguments.apply(null, arguments);
1486
- options.dataType = 'json';
1487
- return $.ajax(options);
1444
+ var async = 'async' in settings ? settings.async : true;
1445
+ xhr.open(settings.type, settings.url, async, settings.username, settings.password);
1446
+ if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name];
1447
+ for (name in headers) nativeSetHeader.apply(xhr, headers[name]);
1448
+ if (settings.timeout > 0) abortTimeout = setTimeout(function () {
1449
+ xhr.onreadystatechange = empty;
1450
+ xhr.abort();
1451
+ ajaxError(null, 'timeout', xhr, settings, deferred);
1452
+ }, settings.timeout);
1453
+
1454
+ // avoid sending empty string (#319)
1455
+ xhr.send(settings.data ? settings.data : null);
1456
+ return xhr;
1457
+ };
1458
+
1459
+ // handle optional data/success arguments
1460
+ function parseArguments(url, data, success, dataType) {
1461
+ if ($.isFunction(data)) dataType = success, success = data, data = undefined;
1462
+ if (!$.isFunction(success)) dataType = success, success = undefined;
1463
+ return {
1464
+ url: url,
1465
+ data: data,
1466
+ success: success,
1467
+ dataType: dataType
1488
1468
  };
1489
- $.fn.load = function (url, data, success) {
1490
- if (!this.length) return this;
1491
- var self = this,
1492
- parts = url.split(/\s/),
1493
- selector,
1494
- options = parseArguments(url, data, success),
1495
- callback = options.success;
1496
- if (parts.length > 1) options.url = parts[0], selector = parts[1];
1497
- options.success = function (response) {
1498
- self.html(selector ? $('<div>').html(response.replace(rscript, "")).find(selector) : response);
1499
- callback && callback.apply(self, arguments);
1500
- };
1501
- $.ajax(options);
1502
- return this;
1469
+ }
1470
+ $.get = function /* url, data, success, dataType */
1471
+ () {
1472
+ return $.ajax(parseArguments.apply(null, arguments));
1473
+ };
1474
+ $.post = function /* url, data, success, dataType */
1475
+ () {
1476
+ var options = parseArguments.apply(null, arguments);
1477
+ options.type = 'POST';
1478
+ return $.ajax(options);
1479
+ };
1480
+ $.getJSON = function /* url, data, success */
1481
+ () {
1482
+ var options = parseArguments.apply(null, arguments);
1483
+ options.dataType = 'json';
1484
+ return $.ajax(options);
1485
+ };
1486
+ $.fn.load = function (url, data, success) {
1487
+ if (!this.length) return this;
1488
+ var self = this,
1489
+ parts = url.split(/\s/),
1490
+ selector,
1491
+ options = parseArguments(url, data, success),
1492
+ callback = options.success;
1493
+ if (parts.length > 1) options.url = parts[0], selector = parts[1];
1494
+ options.success = function (response) {
1495
+ self.html(selector ? $('<div>').html(response.replace(rscript, "")).find(selector) : response);
1496
+ callback && callback.apply(self, arguments);
1503
1497
  };
1504
- var escape = encodeURIComponent;
1505
- function serialize(params, obj, traditional, scope) {
1506
- var type,
1507
- array = $.isArray(obj),
1508
- hash = $.isPlainObject(obj);
1509
- $.each(obj, function (key, value) {
1510
- type = $.type(value);
1511
- if (scope) key = traditional ? scope : scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']';
1512
- // handle data in serializeArray() format
1513
- if (!scope && array) params.add(value.name, value.value);
1514
- // recurse into nested objects
1515
- else if (type == "array" || !traditional && type == "object") serialize(params, value, traditional, key);else params.add(key, value);
1516
- });
1517
- }
1518
- $.param = function (obj, traditional) {
1519
- var params = [];
1520
- params.add = function (key, value) {
1521
- if ($.isFunction(value)) value = value();
1522
- if (value == null) value = "";
1523
- this.push(escape(key) + '=' + escape(value));
1524
- };
1525
- serialize(params, obj, traditional);
1526
- return params.join('&').replace(/%20/g, '+');
1498
+ $.ajax(options);
1499
+ return this;
1500
+ };
1501
+ var escape = encodeURIComponent;
1502
+ function serialize(params, obj, traditional, scope) {
1503
+ var type,
1504
+ array = $.isArray(obj),
1505
+ hash = $.isPlainObject(obj);
1506
+ $.each(obj, function (key, value) {
1507
+ type = $.type(value);
1508
+ if (scope) key = traditional ? scope : scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']';
1509
+ // handle data in serializeArray() format
1510
+ if (!scope && array) params.add(value.name, value.value);
1511
+ // recurse into nested objects
1512
+ else if (type == "array" || !traditional && type == "object") serialize(params, value, traditional, key);else params.add(key, value);
1513
+ });
1514
+ }
1515
+ $.param = function (obj, traditional) {
1516
+ var params = [];
1517
+ params.add = function (key, value) {
1518
+ if ($.isFunction(value)) value = value();
1519
+ if (value == null) value = "";
1520
+ this.push(escape(key) + '=' + escape(value));
1527
1521
  };
1528
- })(Zepto);
1529
- (function ($) {
1530
- // Create a collection of callbacks to be fired in a sequence, with configurable behaviour
1531
- // Option flags:
1532
- // - once: Callbacks fired at most one time.
1533
- // - memory: Remember the most recent context and arguments
1534
- // - stopOnFalse: Cease iterating over callback list
1535
- // - unique: Permit adding at most one instance of the same callback
1536
- $.Callbacks = function (options) {
1537
- options = $.extend({}, options);
1538
- var memory,
1539
- // Last fire value (for non-forgettable lists)
1540
- fired,
1541
- // Flag to know if list was already fired
1542
- firing,
1543
- // Flag to know if list is currently firing
1544
- firingStart,
1545
- // First callback to fire (used internally by add and fireWith)
1546
- firingLength,
1547
- // End of the loop when firing
1548
- firingIndex,
1549
- // Index of currently firing callback (modified by remove if needed)
1550
- list = [],
1551
- // Actual callback list
1552
- stack = !options.once && [],
1553
- // Stack of fire calls for repeatable lists
1554
- fire = function (data) {
1555
- memory = options.memory && data;
1556
- fired = true;
1557
- firingIndex = firingStart || 0;
1558
- firingStart = 0;
1559
- firingLength = list.length;
1560
- firing = true;
1561
- for (; list && firingIndex < firingLength; ++firingIndex) {
1562
- if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) {
1563
- memory = false;
1564
- break;
1565
- }
1522
+ serialize(params, obj, traditional);
1523
+ return params.join('&').replace(/%20/g, '+');
1524
+ };
1525
+ })(Zepto);
1526
+ (function ($) {
1527
+ // Create a collection of callbacks to be fired in a sequence, with configurable behaviour
1528
+ // Option flags:
1529
+ // - once: Callbacks fired at most one time.
1530
+ // - memory: Remember the most recent context and arguments
1531
+ // - stopOnFalse: Cease iterating over callback list
1532
+ // - unique: Permit adding at most one instance of the same callback
1533
+ $.Callbacks = function (options) {
1534
+ options = $.extend({}, options);
1535
+ var memory,
1536
+ // Last fire value (for non-forgettable lists)
1537
+ fired,
1538
+ // Flag to know if list was already fired
1539
+ firing,
1540
+ // Flag to know if list is currently firing
1541
+ firingStart,
1542
+ // First callback to fire (used internally by add and fireWith)
1543
+ firingLength,
1544
+ // End of the loop when firing
1545
+ firingIndex,
1546
+ // Index of currently firing callback (modified by remove if needed)
1547
+ list = [],
1548
+ // Actual callback list
1549
+ stack = !options.once && [],
1550
+ // Stack of fire calls for repeatable lists
1551
+ fire = function (data) {
1552
+ memory = options.memory && data;
1553
+ fired = true;
1554
+ firingIndex = firingStart || 0;
1555
+ firingStart = 0;
1556
+ firingLength = list.length;
1557
+ firing = true;
1558
+ for (; list && firingIndex < firingLength; ++firingIndex) {
1559
+ if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) {
1560
+ memory = false;
1561
+ break;
1566
1562
  }
1567
- firing = false;
1563
+ }
1564
+ firing = false;
1565
+ if (list) {
1566
+ if (stack) stack.length && fire(stack.shift());else if (memory) list.length = 0;else Callbacks.disable();
1567
+ }
1568
+ },
1569
+ Callbacks = {
1570
+ add: function () {
1568
1571
  if (list) {
1569
- if (stack) stack.length && fire(stack.shift());else if (memory) list.length = 0;else Callbacks.disable();
1572
+ var start = list.length,
1573
+ add = function (args) {
1574
+ $.each(args, function (_, arg) {
1575
+ if (typeof arg === "function") {
1576
+ if (!options.unique || !Callbacks.has(arg)) list.push(arg);
1577
+ } else if (arg && arg.length && typeof arg !== 'string') add(arg);
1578
+ });
1579
+ };
1580
+ add(arguments);
1581
+ if (firing) firingLength = list.length;else if (memory) {
1582
+ firingStart = start;
1583
+ fire(memory);
1584
+ }
1570
1585
  }
1586
+ return this;
1571
1587
  },
1572
- Callbacks = {
1573
- add: function () {
1574
- if (list) {
1575
- var start = list.length,
1576
- add = function (args) {
1577
- $.each(args, function (_, arg) {
1578
- if (typeof arg === "function") {
1579
- if (!options.unique || !Callbacks.has(arg)) list.push(arg);
1580
- } else if (arg && arg.length && typeof arg !== 'string') add(arg);
1581
- });
1582
- };
1583
- add(arguments);
1584
- if (firing) firingLength = list.length;else if (memory) {
1585
- firingStart = start;
1586
- fire(memory);
1587
- }
1588
- }
1589
- return this;
1590
- },
1591
- remove: function () {
1592
- if (list) {
1593
- $.each(arguments, function (_, arg) {
1594
- var index;
1595
- while ((index = $.inArray(arg, list, index)) > -1) {
1596
- list.splice(index, 1);
1597
- // Handle firing indexes
1598
- if (firing) {
1599
- if (index <= firingLength) --firingLength;
1600
- if (index <= firingIndex) --firingIndex;
1601
- }
1588
+ remove: function () {
1589
+ if (list) {
1590
+ $.each(arguments, function (_, arg) {
1591
+ var index;
1592
+ while ((index = $.inArray(arg, list, index)) > -1) {
1593
+ list.splice(index, 1);
1594
+ // Handle firing indexes
1595
+ if (firing) {
1596
+ if (index <= firingLength) --firingLength;
1597
+ if (index <= firingIndex) --firingIndex;
1602
1598
  }
1603
- });
1604
- }
1605
- return this;
1606
- },
1607
- has: function (fn) {
1608
- return !!(list && (fn ? $.inArray(fn, list) > -1 : list.length));
1609
- },
1610
- empty: function () {
1611
- firingLength = list.length = 0;
1612
- return this;
1613
- },
1614
- disable: function () {
1615
- list = stack = memory = undefined;
1616
- return this;
1617
- },
1618
- disabled: function () {
1619
- return !list;
1620
- },
1621
- lock: function () {
1622
- stack = undefined;
1623
- if (!memory) Callbacks.disable();
1624
- return this;
1625
- },
1626
- locked: function () {
1627
- return !stack;
1628
- },
1629
- fireWith: function (context, args) {
1630
- if (list && (!fired || stack)) {
1631
- args = args || [];
1632
- args = [context, args.slice ? args.slice() : args];
1633
- if (firing) stack.push(args);else fire(args);
1634
- }
1635
- return this;
1636
- },
1637
- fire: function () {
1638
- return Callbacks.fireWith(this, arguments);
1639
- },
1640
- fired: function () {
1641
- return !!fired;
1642
- }
1643
- };
1644
- return Callbacks;
1645
- };
1646
- })(Zepto);
1647
- (function ($) {
1648
- var slice = Array.prototype.slice;
1649
- function Deferred(func) {
1650
- var tuples = [
1651
- // action, add listener, listener list, final state
1652
- ["resolve", "done", $.Callbacks({
1653
- once: 1,
1654
- memory: 1
1655
- }), "resolved"], ["reject", "fail", $.Callbacks({
1656
- once: 1,
1657
- memory: 1
1658
- }), "rejected"], ["notify", "progress", $.Callbacks({
1659
- memory: 1
1660
- })]],
1661
- state = "pending",
1662
- promise = {
1663
- state: function () {
1664
- return state;
1665
- },
1666
- always: function () {
1667
- deferred.done(arguments).fail(arguments);
1668
- return this;
1669
- },
1670
- then: function /* fnDone [, fnFailed [, fnProgress]] */
1671
- () {
1672
- var fns = arguments;
1673
- return Deferred(function (defer) {
1674
- $.each(tuples, function (i, tuple) {
1675
- var fn = $.isFunction(fns[i]) && fns[i];
1676
- deferred[tuple[1]](function () {
1677
- var returned = fn && fn.apply(this, arguments);
1678
- if (returned && $.isFunction(returned.promise)) {
1679
- returned.promise().done(defer.resolve).fail(defer.reject).progress(defer.notify);
1680
- } else {
1681
- var context = this === promise ? defer.promise() : this,
1682
- values = fn ? [returned] : arguments;
1683
- defer[tuple[0] + "With"](context, values);
1684
- }
1685
- });
1686
- });
1687
- fns = null;
1688
- }).promise();
1689
- },
1690
- promise: function (obj) {
1691
- return obj != null ? $.extend(obj, promise) : promise;
1599
+ }
1600
+ });
1692
1601
  }
1602
+ return this;
1693
1603
  },
1694
- deferred = {};
1695
- $.each(tuples, function (i, tuple) {
1696
- var list = tuple[2],
1697
- stateString = tuple[3];
1698
- promise[tuple[1]] = list.add;
1699
- if (stateString) {
1700
- list.add(function () {
1701
- state = stateString;
1702
- }, tuples[i ^ 1][2].disable, tuples[2][2].lock);
1703
- }
1704
- deferred[tuple[0]] = function () {
1705
- deferred[tuple[0] + "With"](this === deferred ? promise : this, arguments);
1604
+ has: function (fn) {
1605
+ return !!(list && (fn ? $.inArray(fn, list) > -1 : list.length));
1606
+ },
1607
+ empty: function () {
1608
+ firingLength = list.length = 0;
1706
1609
  return this;
1707
- };
1708
- deferred[tuple[0] + "With"] = list.fireWith;
1709
- });
1710
- promise.promise(deferred);
1711
- if (func) func.call(deferred, deferred);
1712
- return deferred;
1713
- }
1714
- $.when = function (sub) {
1715
- var resolveValues = slice.call(arguments),
1716
- len = resolveValues.length,
1717
- i = 0,
1718
- remain = len !== 1 || sub && $.isFunction(sub.promise) ? len : 0,
1719
- deferred = remain === 1 ? sub : Deferred(),
1720
- progressValues,
1721
- progressContexts,
1722
- resolveContexts,
1723
- updateFn = function (i, ctx, val) {
1724
- return function (value) {
1725
- ctx[i] = this;
1726
- val[i] = arguments.length > 1 ? slice.call(arguments) : value;
1727
- if (val === progressValues) {
1728
- deferred.notifyWith(ctx, val);
1729
- } else if (! --remain) {
1730
- deferred.resolveWith(ctx, val);
1731
- }
1732
- };
1733
- };
1734
- if (len > 1) {
1735
- progressValues = new Array(len);
1736
- progressContexts = new Array(len);
1737
- resolveContexts = new Array(len);
1738
- for (; i < len; ++i) {
1739
- if (resolveValues[i] && $.isFunction(resolveValues[i].promise)) {
1740
- resolveValues[i].promise().done(updateFn(i, resolveContexts, resolveValues)).fail(deferred.reject).progress(updateFn(i, progressContexts, progressValues));
1741
- } else {
1742
- --remain;
1610
+ },
1611
+ disable: function () {
1612
+ list = stack = memory = undefined;
1613
+ return this;
1614
+ },
1615
+ disabled: function () {
1616
+ return !list;
1617
+ },
1618
+ lock: function () {
1619
+ stack = undefined;
1620
+ if (!memory) Callbacks.disable();
1621
+ return this;
1622
+ },
1623
+ locked: function () {
1624
+ return !stack;
1625
+ },
1626
+ fireWith: function (context, args) {
1627
+ if (list && (!fired || stack)) {
1628
+ args = args || [];
1629
+ args = [context, args.slice ? args.slice() : args];
1630
+ if (firing) stack.push(args);else fire(args);
1743
1631
  }
1632
+ return this;
1633
+ },
1634
+ fire: function () {
1635
+ return Callbacks.fireWith(this, arguments);
1636
+ },
1637
+ fired: function () {
1638
+ return !!fired;
1744
1639
  }
1745
- }
1746
- if (!remain) deferred.resolveWith(resolveContexts, resolveValues);
1747
- return deferred.promise();
1748
- };
1749
- $.Deferred = Deferred;
1750
- })(Zepto);
1751
- (function ($) {
1752
- var _zid = 1,
1753
- undefined$1,
1754
- slice = Array.prototype.slice,
1755
- isFunction = $.isFunction,
1756
- isString = function (obj) {
1757
- return typeof obj == 'string';
1758
- },
1759
- handlers = {},
1760
- specialEvents = {},
1761
- focusinSupported = 'onfocusin' in window,
1762
- focus = {
1763
- focus: 'focusin',
1764
- blur: 'focusout'
1765
- },
1766
- hover = {
1767
- mouseenter: 'mouseover',
1768
- mouseleave: 'mouseout'
1769
1640
  };
1770
- specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents';
1771
- function zid(element) {
1772
- return element._zid || (element._zid = _zid++);
1773
- }
1774
- function findHandlers(element, event, fn, selector) {
1775
- event = parse(event);
1776
- if (event.ns) var matcher = matcherFor(event.ns);
1777
- return (handlers[zid(element)] || []).filter(function (handler) {
1778
- return handler && (!event.e || handler.e == event.e) && (!event.ns || matcher.test(handler.ns)) && (!fn || zid(handler.fn) === zid(fn)) && (!selector || handler.sel == selector);
1779
- });
1780
- }
1781
- function parse(event) {
1782
- var parts = ('' + event).split('.');
1783
- return {
1784
- e: parts[0],
1785
- ns: parts.slice(1).sort().join(' ')
1641
+ return Callbacks;
1642
+ };
1643
+ })(Zepto);
1644
+ (function ($) {
1645
+ var slice = Array.prototype.slice;
1646
+ function Deferred(func) {
1647
+ var tuples = [
1648
+ // action, add listener, listener list, final state
1649
+ ["resolve", "done", $.Callbacks({
1650
+ once: 1,
1651
+ memory: 1
1652
+ }), "resolved"], ["reject", "fail", $.Callbacks({
1653
+ once: 1,
1654
+ memory: 1
1655
+ }), "rejected"], ["notify", "progress", $.Callbacks({
1656
+ memory: 1
1657
+ })]],
1658
+ state = "pending",
1659
+ promise = {
1660
+ state: function () {
1661
+ return state;
1662
+ },
1663
+ always: function () {
1664
+ deferred.done(arguments).fail(arguments);
1665
+ return this;
1666
+ },
1667
+ then: function /* fnDone [, fnFailed [, fnProgress]] */
1668
+ () {
1669
+ var fns = arguments;
1670
+ return Deferred(function (defer) {
1671
+ $.each(tuples, function (i, tuple) {
1672
+ var fn = $.isFunction(fns[i]) && fns[i];
1673
+ deferred[tuple[1]](function () {
1674
+ var returned = fn && fn.apply(this, arguments);
1675
+ if (returned && $.isFunction(returned.promise)) {
1676
+ returned.promise().done(defer.resolve).fail(defer.reject).progress(defer.notify);
1677
+ } else {
1678
+ var context = this === promise ? defer.promise() : this,
1679
+ values = fn ? [returned] : arguments;
1680
+ defer[tuple[0] + "With"](context, values);
1681
+ }
1682
+ });
1683
+ });
1684
+ fns = null;
1685
+ }).promise();
1686
+ },
1687
+ promise: function (obj) {
1688
+ return obj != null ? $.extend(obj, promise) : promise;
1689
+ }
1690
+ },
1691
+ deferred = {};
1692
+ $.each(tuples, function (i, tuple) {
1693
+ var list = tuple[2],
1694
+ stateString = tuple[3];
1695
+ promise[tuple[1]] = list.add;
1696
+ if (stateString) {
1697
+ list.add(function () {
1698
+ state = stateString;
1699
+ }, tuples[i ^ 1][2].disable, tuples[2][2].lock);
1700
+ }
1701
+ deferred[tuple[0]] = function () {
1702
+ deferred[tuple[0] + "With"](this === deferred ? promise : this, arguments);
1703
+ return this;
1786
1704
  };
1787
- }
1788
- function matcherFor(ns) {
1789
- return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)');
1790
- }
1791
- function eventCapture(handler, captureSetting) {
1792
- return handler.del && !focusinSupported && handler.e in focus || !!captureSetting;
1793
- }
1794
- function realEvent(type) {
1795
- return hover[type] || focusinSupported && focus[type] || type;
1796
- }
1797
- function add(element, events, fn, data, selector, delegator, capture) {
1798
- var id = zid(element),
1799
- set = handlers[id] || (handlers[id] = []);
1800
- events.split(/\s/).forEach(function (event) {
1801
- if (event == 'ready') return $(document).ready(fn);
1802
- var handler = parse(event);
1803
- handler.fn = fn;
1804
- handler.sel = selector;
1805
- // emulate mouseenter, mouseleave
1806
- if (handler.e in hover) fn = function (e) {
1807
- var related = e.relatedTarget;
1808
- if (!related || related !== this && !$.contains(this, related)) return handler.fn.apply(this, arguments);
1809
- };
1810
- handler.del = delegator;
1811
- var callback = delegator || fn;
1812
- handler.proxy = function (e) {
1813
- e = compatible(e);
1814
- if (e.isImmediatePropagationStopped()) return;
1815
- e.data = data;
1816
- var result = callback.apply(element, e._args == undefined$1 ? [e] : [e].concat(e._args));
1817
- if (result === false) e.preventDefault(), e.stopPropagation();
1818
- return result;
1819
- };
1820
- handler.i = set.length;
1821
- set.push(handler);
1822
- if ('addEventListener' in element) element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));
1823
- });
1824
- }
1825
- function remove(element, events, fn, selector, capture) {
1826
- var id = zid(element);
1827
- (events || '').split(/\s/).forEach(function (event) {
1828
- findHandlers(element, event, fn, selector).forEach(function (handler) {
1829
- delete handlers[id][handler.i];
1830
- if ('removeEventListener' in element) element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));
1831
- });
1832
- });
1833
- }
1834
- $.event = {
1835
- add: add,
1836
- remove: remove
1837
- };
1838
- $.proxy = function (fn, context) {
1839
- var args = 2 in arguments && slice.call(arguments, 2);
1840
- if (isFunction(fn)) {
1841
- var proxyFn = function () {
1842
- return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments);
1705
+ deferred[tuple[0] + "With"] = list.fireWith;
1706
+ });
1707
+ promise.promise(deferred);
1708
+ if (func) func.call(deferred, deferred);
1709
+ return deferred;
1710
+ }
1711
+ $.when = function (sub) {
1712
+ var resolveValues = slice.call(arguments),
1713
+ len = resolveValues.length,
1714
+ i = 0,
1715
+ remain = len !== 1 || sub && $.isFunction(sub.promise) ? len : 0,
1716
+ deferred = remain === 1 ? sub : Deferred(),
1717
+ progressValues,
1718
+ progressContexts,
1719
+ resolveContexts,
1720
+ updateFn = function (i, ctx, val) {
1721
+ return function (value) {
1722
+ ctx[i] = this;
1723
+ val[i] = arguments.length > 1 ? slice.call(arguments) : value;
1724
+ if (val === progressValues) {
1725
+ deferred.notifyWith(ctx, val);
1726
+ } else if (! --remain) {
1727
+ deferred.resolveWith(ctx, val);
1728
+ }
1843
1729
  };
1844
- proxyFn._zid = zid(fn);
1845
- return proxyFn;
1846
- } else if (isString(context)) {
1847
- if (args) {
1848
- args.unshift(fn[context], fn);
1849
- return $.proxy.apply(null, args);
1730
+ };
1731
+ if (len > 1) {
1732
+ progressValues = new Array(len);
1733
+ progressContexts = new Array(len);
1734
+ resolveContexts = new Array(len);
1735
+ for (; i < len; ++i) {
1736
+ if (resolveValues[i] && $.isFunction(resolveValues[i].promise)) {
1737
+ resolveValues[i].promise().done(updateFn(i, resolveContexts, resolveValues)).fail(deferred.reject).progress(updateFn(i, progressContexts, progressValues));
1850
1738
  } else {
1851
- return $.proxy(fn[context], fn);
1739
+ --remain;
1852
1740
  }
1853
- } else {
1854
- throw new TypeError("expected function");
1855
1741
  }
1742
+ }
1743
+ if (!remain) deferred.resolveWith(resolveContexts, resolveValues);
1744
+ return deferred.promise();
1745
+ };
1746
+ $.Deferred = Deferred;
1747
+ })(Zepto);
1748
+ (function ($) {
1749
+ var _zid = 1,
1750
+ undefined$1,
1751
+ slice = Array.prototype.slice,
1752
+ isFunction = $.isFunction,
1753
+ isString = function (obj) {
1754
+ return typeof obj == 'string';
1755
+ },
1756
+ handlers = {},
1757
+ specialEvents = {},
1758
+ focusinSupported = 'onfocusin' in window,
1759
+ focus = {
1760
+ focus: 'focusin',
1761
+ blur: 'focusout'
1762
+ },
1763
+ hover = {
1764
+ mouseenter: 'mouseover',
1765
+ mouseleave: 'mouseout'
1856
1766
  };
1857
- $.fn.bind = function (event, data, callback) {
1858
- return this.on(event, data, callback);
1859
- };
1860
- $.fn.unbind = function (event, callback) {
1861
- return this.off(event, callback);
1862
- };
1863
- $.fn.one = function (event, selector, data, callback) {
1864
- return this.on(event, selector, data, callback, 1);
1767
+ specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents';
1768
+ function zid(element) {
1769
+ return element._zid || (element._zid = _zid++);
1770
+ }
1771
+ function findHandlers(element, event, fn, selector) {
1772
+ event = parse(event);
1773
+ if (event.ns) var matcher = matcherFor(event.ns);
1774
+ return (handlers[zid(element)] || []).filter(function (handler) {
1775
+ return handler && (!event.e || handler.e == event.e) && (!event.ns || matcher.test(handler.ns)) && (!fn || zid(handler.fn) === zid(fn)) && (!selector || handler.sel == selector);
1776
+ });
1777
+ }
1778
+ function parse(event) {
1779
+ var parts = ('' + event).split('.');
1780
+ return {
1781
+ e: parts[0],
1782
+ ns: parts.slice(1).sort().join(' ')
1865
1783
  };
1866
- var returnTrue = function () {
1867
- return true;
1868
- },
1869
- returnFalse = function () {
1870
- return false;
1871
- },
1872
- ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,
1873
- eventMethods = {
1874
- preventDefault: 'isDefaultPrevented',
1875
- stopImmediatePropagation: 'isImmediatePropagationStopped',
1876
- stopPropagation: 'isPropagationStopped'
1784
+ }
1785
+ function matcherFor(ns) {
1786
+ return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)');
1787
+ }
1788
+ function eventCapture(handler, captureSetting) {
1789
+ return handler.del && !focusinSupported && handler.e in focus || !!captureSetting;
1790
+ }
1791
+ function realEvent(type) {
1792
+ return hover[type] || focusinSupported && focus[type] || type;
1793
+ }
1794
+ function add(element, events, fn, data, selector, delegator, capture) {
1795
+ var id = zid(element),
1796
+ set = handlers[id] || (handlers[id] = []);
1797
+ events.split(/\s/).forEach(function (event) {
1798
+ if (event == 'ready') return $(document).ready(fn);
1799
+ var handler = parse(event);
1800
+ handler.fn = fn;
1801
+ handler.sel = selector;
1802
+ // emulate mouseenter, mouseleave
1803
+ if (handler.e in hover) fn = function (e) {
1804
+ var related = e.relatedTarget;
1805
+ if (!related || related !== this && !$.contains(this, related)) return handler.fn.apply(this, arguments);
1877
1806
  };
1878
- function compatible(event, source) {
1879
- if (source || !event.isDefaultPrevented) {
1880
- source || (source = event);
1881
- $.each(eventMethods, function (name, predicate) {
1882
- var sourceMethod = source[name];
1883
- event[name] = function () {
1884
- this[predicate] = returnTrue;
1885
- return sourceMethod && sourceMethod.apply(source, arguments);
1886
- };
1887
- event[predicate] = returnFalse;
1888
- });
1889
- if (source.defaultPrevented !== undefined$1 ? source.defaultPrevented : 'returnValue' in source ? source.returnValue === false : source.getPreventDefault && source.getPreventDefault()) event.isDefaultPrevented = returnTrue;
1807
+ handler.del = delegator;
1808
+ var callback = delegator || fn;
1809
+ handler.proxy = function (e) {
1810
+ e = compatible(e);
1811
+ if (e.isImmediatePropagationStopped()) return;
1812
+ e.data = data;
1813
+ var result = callback.apply(element, e._args == undefined$1 ? [e] : [e].concat(e._args));
1814
+ if (result === false) e.preventDefault(), e.stopPropagation();
1815
+ return result;
1816
+ };
1817
+ handler.i = set.length;
1818
+ set.push(handler);
1819
+ if ('addEventListener' in element) element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));
1820
+ });
1821
+ }
1822
+ function remove(element, events, fn, selector, capture) {
1823
+ var id = zid(element);
1824
+ (events || '').split(/\s/).forEach(function (event) {
1825
+ findHandlers(element, event, fn, selector).forEach(function (handler) {
1826
+ delete handlers[id][handler.i];
1827
+ if ('removeEventListener' in element) element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));
1828
+ });
1829
+ });
1830
+ }
1831
+ $.event = {
1832
+ add: add,
1833
+ remove: remove
1834
+ };
1835
+ $.proxy = function (fn, context) {
1836
+ var args = 2 in arguments && slice.call(arguments, 2);
1837
+ if (isFunction(fn)) {
1838
+ var proxyFn = function () {
1839
+ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments);
1840
+ };
1841
+ proxyFn._zid = zid(fn);
1842
+ return proxyFn;
1843
+ } else if (isString(context)) {
1844
+ if (args) {
1845
+ args.unshift(fn[context], fn);
1846
+ return $.proxy.apply(null, args);
1847
+ } else {
1848
+ return $.proxy(fn[context], fn);
1890
1849
  }
1891
- return event;
1892
- }
1893
- function createProxy(event) {
1894
- var key,
1895
- proxy = {
1896
- originalEvent: event
1897
- };
1898
- for (key in event) if (!ignoreProperties.test(key) && event[key] !== undefined$1) proxy[key] = event[key];
1899
- return compatible(proxy, event);
1850
+ } else {
1851
+ throw new TypeError("expected function");
1900
1852
  }
1901
- $.fn.delegate = function (selector, event, callback) {
1902
- return this.on(event, selector, callback);
1903
- };
1904
- $.fn.undelegate = function (selector, event, callback) {
1905
- return this.off(event, selector, callback);
1906
- };
1907
- $.fn.live = function (event, callback) {
1908
- $(document.body).delegate(this.selector, event, callback);
1909
- return this;
1910
- };
1911
- $.fn.die = function (event, callback) {
1912
- $(document.body).undelegate(this.selector, event, callback);
1913
- return this;
1853
+ };
1854
+ $.fn.bind = function (event, data, callback) {
1855
+ return this.on(event, data, callback);
1856
+ };
1857
+ $.fn.unbind = function (event, callback) {
1858
+ return this.off(event, callback);
1859
+ };
1860
+ $.fn.one = function (event, selector, data, callback) {
1861
+ return this.on(event, selector, data, callback, 1);
1862
+ };
1863
+ var returnTrue = function () {
1864
+ return true;
1865
+ },
1866
+ returnFalse = function () {
1867
+ return false;
1868
+ },
1869
+ ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,
1870
+ eventMethods = {
1871
+ preventDefault: 'isDefaultPrevented',
1872
+ stopImmediatePropagation: 'isImmediatePropagationStopped',
1873
+ stopPropagation: 'isPropagationStopped'
1914
1874
  };
1915
- $.fn.on = function (event, selector, data, callback, one) {
1916
- var autoRemove,
1917
- delegator,
1918
- $this = this;
1919
- if (event && !isString(event)) {
1920
- $.each(event, function (type, fn) {
1921
- $this.on(type, selector, data, fn, one);
1922
- });
1923
- return $this;
1924
- }
1925
- if (!isString(selector) && !isFunction(callback) && callback !== false) callback = data, data = selector, selector = undefined$1;
1926
- if (callback === undefined$1 || data === false) callback = data, data = undefined$1;
1927
- if (callback === false) callback = returnFalse;
1928
- return $this.each(function (_, element) {
1929
- if (one) autoRemove = function (e) {
1930
- remove(element, e.type, callback);
1931
- return callback.apply(this, arguments);
1875
+ function compatible(event, source) {
1876
+ if (source || !event.isDefaultPrevented) {
1877
+ source || (source = event);
1878
+ $.each(eventMethods, function (name, predicate) {
1879
+ var sourceMethod = source[name];
1880
+ event[name] = function () {
1881
+ this[predicate] = returnTrue;
1882
+ return sourceMethod && sourceMethod.apply(source, arguments);
1932
1883
  };
1933
- if (selector) delegator = function (e) {
1934
- var evt,
1935
- match = $(e.target).closest(selector, element).get(0);
1936
- if (match && match !== element) {
1937
- evt = $.extend(createProxy(e), {
1938
- currentTarget: match,
1939
- liveFired: element
1940
- });
1941
- return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)));
1942
- }
1943
- };
1944
- add(element, event, callback, data, selector, delegator || autoRemove);
1945
- });
1946
- };
1947
- $.fn.off = function (event, selector, callback) {
1948
- var $this = this;
1949
- if (event && !isString(event)) {
1950
- $.each(event, function (type, fn) {
1951
- $this.off(type, selector, fn);
1952
- });
1953
- return $this;
1954
- }
1955
- if (!isString(selector) && !isFunction(callback) && callback !== false) callback = selector, selector = undefined$1;
1956
- if (callback === false) callback = returnFalse;
1957
- return $this.each(function () {
1958
- remove(this, event, callback, selector);
1959
- });
1960
- };
1961
- $.fn.trigger = function (event, args) {
1962
- event = isString(event) || $.isPlainObject(event) ? $.Event(event) : compatible(event);
1963
- event._args = args;
1964
- return this.each(function () {
1965
- // handle focus(), blur() by calling them directly
1966
- if (event.type in focus && typeof this[event.type] == "function") this[event.type]();
1967
- // items in the collection might not be DOM elements
1968
- else if ('dispatchEvent' in this) this.dispatchEvent(event);else $(this).triggerHandler(event, args);
1969
- });
1970
- };
1971
-
1972
- // triggers event handlers on current element just as if an event occurred,
1973
- // doesn't trigger an actual event, doesn't bubble
1974
- $.fn.triggerHandler = function (event, args) {
1975
- var e, result;
1976
- this.each(function (i, element) {
1977
- e = createProxy(isString(event) ? $.Event(event) : event);
1978
- e._args = args;
1979
- e.target = element;
1980
- $.each(findHandlers(element, event.type || event), function (i, handler) {
1981
- result = handler.proxy(e);
1982
- if (e.isImmediatePropagationStopped()) return false;
1983
- });
1884
+ event[predicate] = returnFalse;
1984
1885
  });
1985
- return result;
1886
+ if (source.defaultPrevented !== undefined$1 ? source.defaultPrevented : 'returnValue' in source ? source.returnValue === false : source.getPreventDefault && source.getPreventDefault()) event.isDefaultPrevented = returnTrue;
1986
1887
  }
1987
-
1988
- // shortcut methods for `.bind(event, fn)` for each event type
1989
- ;
1990
- ('focusin focusout focus blur load resize scroll unload click dblclick ' + 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave ' + 'change select keydown keypress keyup error').split(' ').forEach(function (event) {
1991
- $.fn[event] = function (callback) {
1992
- return 0 in arguments ? this.bind(event, callback) : this.trigger(event);
1888
+ return event;
1889
+ }
1890
+ function createProxy(event) {
1891
+ var key,
1892
+ proxy = {
1893
+ originalEvent: event
1993
1894
  };
1994
- });
1995
- $.Event = function (type, props) {
1996
- if (!isString(type)) props = type, type = props.type;
1997
- var event = document.createEvent(specialEvents[type] || 'Events'),
1998
- bubbles = true;
1999
- if (props) for (var name in props) name == 'bubbles' ? bubbles = !!props[name] : event[name] = props[name];
2000
- event.initEvent(type, bubbles, true);
2001
- return compatible(event);
2002
- };
2003
- })(Zepto);
2004
- (function () {
2005
- // getComputedStyle shouldn't freak out when called
2006
- // without a valid element as argument
2007
- try {
2008
- getComputedStyle(undefined);
2009
- } catch (e) {
2010
- var nativeGetComputedStyle = getComputedStyle;
2011
- window.getComputedStyle = function (element, pseudoElement) {
2012
- try {
2013
- return nativeGetComputedStyle(element, pseudoElement);
2014
- } catch (e) {
2015
- return null;
1895
+ for (key in event) if (!ignoreProperties.test(key) && event[key] !== undefined$1) proxy[key] = event[key];
1896
+ return compatible(proxy, event);
1897
+ }
1898
+ $.fn.delegate = function (selector, event, callback) {
1899
+ return this.on(event, selector, callback);
1900
+ };
1901
+ $.fn.undelegate = function (selector, event, callback) {
1902
+ return this.off(event, selector, callback);
1903
+ };
1904
+ $.fn.live = function (event, callback) {
1905
+ $(document.body).delegate(this.selector, event, callback);
1906
+ return this;
1907
+ };
1908
+ $.fn.die = function (event, callback) {
1909
+ $(document.body).undelegate(this.selector, event, callback);
1910
+ return this;
1911
+ };
1912
+ $.fn.on = function (event, selector, data, callback, one) {
1913
+ var autoRemove,
1914
+ delegator,
1915
+ $this = this;
1916
+ if (event && !isString(event)) {
1917
+ $.each(event, function (type, fn) {
1918
+ $this.on(type, selector, data, fn, one);
1919
+ });
1920
+ return $this;
1921
+ }
1922
+ if (!isString(selector) && !isFunction(callback) && callback !== false) callback = data, data = selector, selector = undefined$1;
1923
+ if (callback === undefined$1 || data === false) callback = data, data = undefined$1;
1924
+ if (callback === false) callback = returnFalse;
1925
+ return $this.each(function (_, element) {
1926
+ if (one) autoRemove = function (e) {
1927
+ remove(element, e.type, callback);
1928
+ return callback.apply(this, arguments);
1929
+ };
1930
+ if (selector) delegator = function (e) {
1931
+ var evt,
1932
+ match = $(e.target).closest(selector, element).get(0);
1933
+ if (match && match !== element) {
1934
+ evt = $.extend(createProxy(e), {
1935
+ currentTarget: match,
1936
+ liveFired: element
1937
+ });
1938
+ return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)));
2016
1939
  }
2017
1940
  };
1941
+ add(element, event, callback, data, selector, delegator || autoRemove);
1942
+ });
1943
+ };
1944
+ $.fn.off = function (event, selector, callback) {
1945
+ var $this = this;
1946
+ if (event && !isString(event)) {
1947
+ $.each(event, function (type, fn) {
1948
+ $this.off(type, selector, fn);
1949
+ });
1950
+ return $this;
2018
1951
  }
2019
- })();
2020
- (function ($) {
2021
- var zepto = $.zepto,
2022
- oldQsa = zepto.qsa,
2023
- oldMatches = zepto.matches;
2024
- function visible(elem) {
2025
- elem = $(elem);
2026
- return !!(elem.width() || elem.height()) && elem.css("display") !== "none";
2027
- }
1952
+ if (!isString(selector) && !isFunction(callback) && callback !== false) callback = selector, selector = undefined$1;
1953
+ if (callback === false) callback = returnFalse;
1954
+ return $this.each(function () {
1955
+ remove(this, event, callback, selector);
1956
+ });
1957
+ };
1958
+ $.fn.trigger = function (event, args) {
1959
+ event = isString(event) || $.isPlainObject(event) ? $.Event(event) : compatible(event);
1960
+ event._args = args;
1961
+ return this.each(function () {
1962
+ // handle focus(), blur() by calling them directly
1963
+ if (event.type in focus && typeof this[event.type] == "function") this[event.type]();
1964
+ // items in the collection might not be DOM elements
1965
+ else if ('dispatchEvent' in this) this.dispatchEvent(event);else $(this).triggerHandler(event, args);
1966
+ });
1967
+ };
2028
1968
 
2029
- // Implements a subset from:
2030
- // http://api.jquery.com/category/selectors/jquery-selector-extensions/
2031
- //
2032
- // Each filter function receives the current index, all nodes in the
2033
- // considered set, and a value if there were parentheses. The value
2034
- // of `this` is the node currently being considered. The function returns the
2035
- // resulting node(s), null, or undefined.
2036
- //
2037
- // Complex selectors are not supported:
2038
- // li:has(label:contains("foo")) + li:has(label:contains("bar"))
2039
- // ul.inner:first > li
2040
- var filters = $.expr[':'] = {
2041
- visible: function () {
2042
- if (visible(this)) return this;
2043
- },
2044
- hidden: function () {
2045
- if (!visible(this)) return this;
2046
- },
2047
- selected: function () {
2048
- if (this.selected) return this;
2049
- },
2050
- checked: function () {
2051
- if (this.checked) return this;
2052
- },
2053
- parent: function () {
2054
- return this.parentNode;
2055
- },
2056
- first: function (idx) {
2057
- if (idx === 0) return this;
2058
- },
2059
- last: function (idx, nodes) {
2060
- if (idx === nodes.length - 1) return this;
2061
- },
2062
- eq: function (idx, _, value) {
2063
- if (idx === value) return this;
2064
- },
2065
- contains: function (idx, _, text) {
2066
- if ($(this).text().indexOf(text) > -1) return this;
2067
- },
2068
- has: function (idx, _, sel) {
2069
- if (zepto.qsa(this, sel).length) return this;
2070
- }
2071
- };
2072
- var filterRe = new RegExp('(.*):(\\w+)(?:\\(([^)]+)\\))?$\\s*'),
2073
- childRe = /^\s*>/,
2074
- classTag = 'Zepto' + +new Date();
2075
- function process(sel, fn) {
2076
- // quote the hash in `a[href^=#]` expression
2077
- sel = sel.replace(/=#\]/g, '="#"]');
2078
- var filter,
2079
- arg,
2080
- match = filterRe.exec(sel);
2081
- if (match && match[2] in filters) {
2082
- filter = filters[match[2]], arg = match[3];
2083
- sel = match[1];
2084
- if (arg) {
2085
- var num = Number(arg);
2086
- if (isNaN(num)) arg = arg.replace(/^["']|["']$/g, '');else arg = num;
2087
- }
2088
- }
2089
- return fn(sel, filter, arg);
2090
- }
2091
- zepto.qsa = function (node, selector) {
2092
- return process(selector, function (sel, filter, arg) {
2093
- try {
2094
- var taggedParent;
2095
- if (!sel && filter) sel = '*';else if (childRe.test(sel))
2096
- // support "> *" child queries by tagging the parent node with a
2097
- // unique class and prepending that classname onto the selector
2098
- taggedParent = $(node).addClass(classTag), sel = '.' + classTag + ' ' + sel;
2099
- var nodes = oldQsa(node, sel);
2100
- } catch (e) {
2101
- console.error('error performing selector: %o', selector);
2102
- throw e;
2103
- } finally {
2104
- if (taggedParent) taggedParent.removeClass(classTag);
2105
- }
2106
- return !filter ? nodes : zepto.uniq($.map(nodes, function (n, i) {
2107
- return filter.call(n, i, nodes, arg);
2108
- }));
1969
+ // triggers event handlers on current element just as if an event occurred,
1970
+ // doesn't trigger an actual event, doesn't bubble
1971
+ $.fn.triggerHandler = function (event, args) {
1972
+ var e, result;
1973
+ this.each(function (i, element) {
1974
+ e = createProxy(isString(event) ? $.Event(event) : event);
1975
+ e._args = args;
1976
+ e.target = element;
1977
+ $.each(findHandlers(element, event.type || event), function (i, handler) {
1978
+ result = handler.proxy(e);
1979
+ if (e.isImmediatePropagationStopped()) return false;
2109
1980
  });
1981
+ });
1982
+ return result;
1983
+ }
1984
+
1985
+ // shortcut methods for `.bind(event, fn)` for each event type
1986
+ ;
1987
+ ('focusin focusout focus blur load resize scroll unload click dblclick ' + 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave ' + 'change select keydown keypress keyup error').split(' ').forEach(function (event) {
1988
+ $.fn[event] = function (callback) {
1989
+ return 0 in arguments ? this.bind(event, callback) : this.trigger(event);
2110
1990
  };
2111
- zepto.matches = function (node, selector) {
2112
- return process(selector, function (sel, filter, arg) {
2113
- return (!sel || oldMatches(node, sel)) && (!filter || filter.call(node, null, arg) === node);
2114
- });
1991
+ });
1992
+ $.Event = function (type, props) {
1993
+ if (!isString(type)) props = type, type = props.type;
1994
+ var event = document.createEvent(specialEvents[type] || 'Events'),
1995
+ bubbles = true;
1996
+ if (props) for (var name in props) name == 'bubbles' ? bubbles = !!props[name] : event[name] = props[name];
1997
+ event.initEvent(type, bubbles, true);
1998
+ return compatible(event);
1999
+ };
2000
+ })(Zepto);
2001
+ (function () {
2002
+ // getComputedStyle shouldn't freak out when called
2003
+ // without a valid element as argument
2004
+ try {
2005
+ getComputedStyle(undefined);
2006
+ } catch (e) {
2007
+ var nativeGetComputedStyle = getComputedStyle;
2008
+ window.getComputedStyle = function (element, pseudoElement) {
2009
+ try {
2010
+ return nativeGetComputedStyle(element, pseudoElement);
2011
+ } catch (e) {
2012
+ return null;
2013
+ }
2115
2014
  };
2116
- })(Zepto);
2117
- zepto = Zepto;
2118
- return zepto;
2119
- }
2120
- var zeptoExports = requireZepto();
2121
- var $ = /*@__PURE__*/getDefaultExportFromCjs$1(zeptoExports);
2015
+ }
2016
+ })();
2017
+ (function ($) {
2018
+ var zepto = $.zepto,
2019
+ oldQsa = zepto.qsa,
2020
+ oldMatches = zepto.matches;
2021
+ function visible(elem) {
2022
+ elem = $(elem);
2023
+ return !!(elem.width() || elem.height()) && elem.css("display") !== "none";
2024
+ }
2025
+
2026
+ // Implements a subset from:
2027
+ // http://api.jquery.com/category/selectors/jquery-selector-extensions/
2028
+ //
2029
+ // Each filter function receives the current index, all nodes in the
2030
+ // considered set, and a value if there were parentheses. The value
2031
+ // of `this` is the node currently being considered. The function returns the
2032
+ // resulting node(s), null, or undefined.
2033
+ //
2034
+ // Complex selectors are not supported:
2035
+ // li:has(label:contains("foo")) + li:has(label:contains("bar"))
2036
+ // ul.inner:first > li
2037
+ var filters = $.expr[':'] = {
2038
+ visible: function () {
2039
+ if (visible(this)) return this;
2040
+ },
2041
+ hidden: function () {
2042
+ if (!visible(this)) return this;
2043
+ },
2044
+ selected: function () {
2045
+ if (this.selected) return this;
2046
+ },
2047
+ checked: function () {
2048
+ if (this.checked) return this;
2049
+ },
2050
+ parent: function () {
2051
+ return this.parentNode;
2052
+ },
2053
+ first: function (idx) {
2054
+ if (idx === 0) return this;
2055
+ },
2056
+ last: function (idx, nodes) {
2057
+ if (idx === nodes.length - 1) return this;
2058
+ },
2059
+ eq: function (idx, _, value) {
2060
+ if (idx === value) return this;
2061
+ },
2062
+ contains: function (idx, _, text) {
2063
+ if ($(this).text().indexOf(text) > -1) return this;
2064
+ },
2065
+ has: function (idx, _, sel) {
2066
+ if (zepto.qsa(this, sel).length) return this;
2067
+ }
2068
+ };
2069
+ var filterRe = new RegExp('(.*):(\\w+)(?:\\(([^)]+)\\))?$\\s*'),
2070
+ childRe = /^\s*>/,
2071
+ classTag = 'Zepto' + +new Date();
2072
+ function process(sel, fn) {
2073
+ // quote the hash in `a[href^=#]` expression
2074
+ sel = sel.replace(/=#\]/g, '="#"]');
2075
+ var filter,
2076
+ arg,
2077
+ match = filterRe.exec(sel);
2078
+ if (match && match[2] in filters) {
2079
+ filter = filters[match[2]], arg = match[3];
2080
+ sel = match[1];
2081
+ if (arg) {
2082
+ var num = Number(arg);
2083
+ if (isNaN(num)) arg = arg.replace(/^["']|["']$/g, '');else arg = num;
2084
+ }
2085
+ }
2086
+ return fn(sel, filter, arg);
2087
+ }
2088
+ zepto.qsa = function (node, selector) {
2089
+ return process(selector, function (sel, filter, arg) {
2090
+ try {
2091
+ var taggedParent;
2092
+ if (!sel && filter) sel = '*';else if (childRe.test(sel))
2093
+ // support "> *" child queries by tagging the parent node with a
2094
+ // unique class and prepending that classname onto the selector
2095
+ taggedParent = $(node).addClass(classTag), sel = '.' + classTag + ' ' + sel;
2096
+ var nodes = oldQsa(node, sel);
2097
+ } catch (e) {
2098
+ console.error('error performing selector: %o', selector);
2099
+ throw e;
2100
+ } finally {
2101
+ if (taggedParent) taggedParent.removeClass(classTag);
2102
+ }
2103
+ return !filter ? nodes : zepto.uniq($.map(nodes, function (n, i) {
2104
+ return filter.call(n, i, nodes, arg);
2105
+ }));
2106
+ });
2107
+ };
2108
+ zepto.matches = function (node, selector) {
2109
+ return process(selector, function (sel, filter, arg) {
2110
+ return (!sel || oldMatches(node, sel)) && (!filter || filter.call(node, null, arg) === node);
2111
+ });
2112
+ };
2113
+ })(Zepto);
2122
2114
 
2123
2115
  // Copyright 2014 Globo.com Player authors. All rights reserved.
2124
2116
  // Use of this source code is governed by a BSD-style
@@ -2675,8 +2667,8 @@
2675
2667
  // Set viewport size
2676
2668
  var getViewportSize = function getViewportSize() {
2677
2669
  var viewportObject = {};
2678
- viewportObject.width = $(window).width();
2679
- viewportObject.height = $(window).height();
2670
+ viewportObject.width = Zepto(window).width();
2671
+ viewportObject.height = Zepto(window).height();
2680
2672
  return viewportObject;
2681
2673
  };
2682
2674
 
@@ -3039,7 +3031,7 @@
3039
3031
  return _createClass$2(DomRecycler, null, [{
3040
3032
  key: "configure",
3041
3033
  value: function configure(options) {
3042
- this.options = $.extend(true, this.options, options);
3034
+ this.options = Zepto.extend(true, this.options, options);
3043
3035
  }
3044
3036
  }, {
3045
3037
  key: "create",
@@ -3053,7 +3045,7 @@
3053
3045
  key: "garbage",
3054
3046
  value: function garbage(el) {
3055
3047
  if (!this.options.recycleVideo || el.tagName.toUpperCase() !== 'VIDEO') return;
3056
- $(el).children().remove();
3048
+ Zepto(el).children().remove();
3057
3049
  Object.values(el.attributes).forEach(function (attr) {
3058
3050
  return el.removeAttribute(attr.name);
3059
3051
  });
@@ -4365,7 +4357,7 @@
4365
4357
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
4366
4358
  baseUrl: ''
4367
4359
  };
4368
- return $('<style class="clappr-style"></style>').html(tmpl(style.toString())(options));
4360
+ return Zepto('<style class="clappr-style"></style>').html(tmpl(style.toString())(options));
4369
4361
  }
4370
4362
  };
4371
4363
  var delegateEventSplitter = /^(\S+)\s*(.*)$/;
@@ -4518,9 +4510,9 @@
4518
4510
  * the dom element wrapped by `$`
4519
4511
  *
4520
4512
  * @property $el
4521
- * @type import("clappr-zepto").ZeptoCollection
4513
+ * @type {Object}
4522
4514
  */
4523
- this.$el = $.zepto.isZ(element) ? element : $(element);
4515
+ this.$el = Zepto.zepto.isZ(element) ? element : Zepto(element);
4524
4516
  /**
4525
4517
  * the dom element itself
4526
4518
  *
@@ -4581,10 +4573,10 @@
4581
4573
  key: "_ensureElement",
4582
4574
  value: function _ensureElement() {
4583
4575
  if (!this.el) {
4584
- var attrs = $.extend(true, {}, this.attributes);
4576
+ var attrs = Zepto.extend(true, {}, this.attributes);
4585
4577
  if (this.id) attrs.id = this.id;
4586
4578
  if (this.className) attrs["class"] = this.className;
4587
- var $el = $(DomRecycler.create(this.tagName)).attr(attrs);
4579
+ var $el = Zepto(DomRecycler.create(this.tagName)).attr(attrs);
4588
4580
  this.setElement($el, false);
4589
4581
  } else {
4590
4582
  this.setElement(this.el, false);
@@ -4792,7 +4784,7 @@
4792
4784
  _this.volume = 100;
4793
4785
  _this.playback = options.playback;
4794
4786
  _this.playerError = playerError;
4795
- _this.settings = $.extend(true, {}, _this.playback.settings);
4787
+ _this.settings = Zepto.extend(true, {}, _this.playback.settings);
4796
4788
  _this.isReady = false;
4797
4789
  _this.mediaControlDisabled = false;
4798
4790
  _this.plugins = [_this.playback];
@@ -5487,7 +5479,7 @@
5487
5479
  key: "configure",
5488
5480
  value: function configure(options, oldOptions) {
5489
5481
  this.trigger(Events$1.CONTAINER_OPTIONS_WILL_CHANGE, oldOptions);
5490
- this._options = $.extend(true, this._options, options);
5482
+ this._options = Zepto.extend(true, this._options, options);
5491
5483
  this.updateStyle();
5492
5484
  this.playback.configure(this.options);
5493
5485
  this.trigger(Events$1.CONTAINER_OPTIONS_CHANGE);
@@ -5886,7 +5878,7 @@
5886
5878
  }, {
5887
5879
  key: "configure",
5888
5880
  value: function configure(options) {
5889
- this._options = $.extend(true, this._options, options);
5881
+ this._options = Zepto.extend(true, this._options, options);
5890
5882
  }
5891
5883
 
5892
5884
  /**
@@ -6011,7 +6003,7 @@
6011
6003
  key: "createContainers",
6012
6004
  value: function createContainers() {
6013
6005
  var _this2 = this;
6014
- return $.Deferred(function (promise) {
6006
+ return Zepto.Deferred(function (promise) {
6015
6007
  promise.resolve(_this2.options.sources.map(function (source) {
6016
6008
  return _this2.createContainer(source);
6017
6009
  }));
@@ -6049,7 +6041,7 @@
6049
6041
  playback: playback
6050
6042
  });
6051
6043
  var container = new Container(options, this._i18n, this.playerError);
6052
- var defer = $.Deferred();
6044
+ var defer = Zepto.Deferred();
6053
6045
  defer.promise(container);
6054
6046
  this.addContainerPlugins(container);
6055
6047
  this.listenToOnce(container, Events$1.CONTAINER_READY, function () {
@@ -6099,10 +6091,10 @@
6099
6091
  _this._boundHandleWindowResize = function (o) {
6100
6092
  return _this.handleWindowResize(o);
6101
6093
  };
6102
- $(document).bind('fullscreenchange', _this._boundFullscreenHandler);
6103
- $(document).bind('MSFullscreenChange', _this._boundFullscreenHandler);
6104
- $(document).bind('mozfullscreenchange', _this._boundFullscreenHandler);
6105
- Browser.isMobile && $(window).bind('resize', _this._boundHandleWindowResize);
6094
+ Zepto(document).bind('fullscreenchange', _this._boundFullscreenHandler);
6095
+ Zepto(document).bind('MSFullscreenChange', _this._boundFullscreenHandler);
6096
+ Zepto(document).bind('mozfullscreenchange', _this._boundFullscreenHandler);
6097
+ Browser.isMobile && Zepto(window).bind('resize', _this._boundHandleWindowResize);
6106
6098
  return _this;
6107
6099
  }
6108
6100
  _inherits$2(Core, _UIObject);
@@ -6223,7 +6215,7 @@
6223
6215
  }, {
6224
6216
  key: "createContainers",
6225
6217
  value: function createContainers(options) {
6226
- this.defer = $.Deferred();
6218
+ this.defer = Zepto.Deferred();
6227
6219
  this.defer.promise(this);
6228
6220
  this.containerFactory = new ContainerFactory(options, options.loader, this.i18n, this.playerError);
6229
6221
  this.prepareContainers();
@@ -6254,8 +6246,8 @@
6254
6246
  height: this.options.height
6255
6247
  };
6256
6248
  this.currentSize = {
6257
- width: $(window).width(),
6258
- height: $(window).height()
6249
+ width: Zepto(window).width(),
6250
+ height: Zepto(window).height()
6259
6251
  };
6260
6252
  }
6261
6253
  }
@@ -6265,8 +6257,8 @@
6265
6257
  this.$el.removeClass('fullscreen');
6266
6258
  this.currentSize = this.previousSize;
6267
6259
  this.previousSize = {
6268
- width: $(window).width(),
6269
- height: $(window).height()
6260
+ width: Zepto(window).width(),
6261
+ height: Zepto(window).height()
6270
6262
  };
6271
6263
  this.resize(this.currentSize);
6272
6264
  }
@@ -6327,7 +6319,7 @@
6327
6319
  key: "resolveOnContainersReady",
6328
6320
  value: function resolveOnContainersReady(containers) {
6329
6321
  var _this4 = this;
6330
- $.when.apply($, containers).done(function () {
6322
+ Zepto.when.apply(Zepto, containers).done(function () {
6331
6323
  _this4.defer.resolve(_this4);
6332
6324
  _this4.ready = true;
6333
6325
  _this4.trigger(Events$1.CORE_READY);
@@ -6359,7 +6351,7 @@
6359
6351
  this.containers.forEach(function (container) {
6360
6352
  return container.destroy();
6361
6353
  });
6362
- this.containerFactory.options = $.extend(true, this.options, {
6354
+ this.containerFactory.options = Zepto.extend(true, this.options, {
6363
6355
  sources: sources
6364
6356
  });
6365
6357
  this.prepareContainers();
@@ -6375,10 +6367,10 @@
6375
6367
  return plugin.destroy();
6376
6368
  });
6377
6369
  this.$el.remove();
6378
- $(document).unbind('fullscreenchange', this._boundFullscreenHandler);
6379
- $(document).unbind('MSFullscreenChange', this._boundFullscreenHandler);
6380
- $(document).unbind('mozfullscreenchange', this._boundFullscreenHandler);
6381
- Browser.isMobile && $(window).unbind('resize', this._boundHandleWindowResize);
6370
+ Zepto(document).unbind('fullscreenchange', this._boundFullscreenHandler);
6371
+ Zepto(document).unbind('MSFullscreenChange', this._boundFullscreenHandler);
6372
+ Zepto(document).unbind('mozfullscreenchange', this._boundFullscreenHandler);
6373
+ Browser.isMobile && Zepto(window).unbind('resize', this._boundHandleWindowResize);
6382
6374
  this.stopListening();
6383
6375
  this.undelegateEvents();
6384
6376
  }
@@ -6536,9 +6528,9 @@
6536
6528
  key: "configure",
6537
6529
  value: function configure(options) {
6538
6530
  var _this7 = this;
6539
- var oldOptions = $.extend(true, {}, this._options);
6531
+ var oldOptions = Zepto.extend(true, {}, this._options);
6540
6532
  this.trigger(Events$1.CORE_OPTIONS_WILL_CHANGE, oldOptions);
6541
- this._options = $.extend(true, this._options, options);
6533
+ this._options = Zepto.extend(true, this._options, options);
6542
6534
  this.configureDomRecycler();
6543
6535
  var sources = options.source || options.sources;
6544
6536
  sources && this.load(sources, options.mimeType || this.options.mimeType);
@@ -6730,7 +6722,7 @@
6730
6722
  plugins: {},
6731
6723
  playbacks: []
6732
6724
  };
6733
- var currentVersion = "0.14.3";
6725
+ var currentVersion = "0.14.4";
6734
6726
  return /*#__PURE__*/function () {
6735
6727
  /**
6736
6728
  * builds the loader
@@ -7114,7 +7106,7 @@
7114
7106
  includeResetStyle: true,
7115
7107
  playback: playbackDefaultOptions
7116
7108
  };
7117
- _this._options = $.extend(true, defaultOptions, options);
7109
+ _this._options = Zepto.extend(true, defaultOptions, options);
7118
7110
  _this.options.sources = _this._normalizeSources(options);
7119
7111
  if (!_this.options.chromeless) {
7120
7112
  // "allowUserInteraction" cannot be false if not in chromeless mode.
@@ -7869,7 +7861,7 @@
7869
7861
  posterUrl = _this.options.poster.url;
7870
7862
  }
7871
7863
  }
7872
- $.extend(true, _this.el, {
7864
+ Zepto.extend(true, _this.el, {
7873
7865
  muted: _this.options.mute,
7874
7866
  defaultMuted: _this.options.mute,
7875
7867
  loop: _this.options.loop,
@@ -7908,7 +7900,7 @@
7908
7900
  key: "supportedVersion",
7909
7901
  get: function get() {
7910
7902
  return {
7911
- min: "0.14.3"
7903
+ min: "0.14.4"
7912
7904
  };
7913
7905
  }
7914
7906
  }, {
@@ -8712,7 +8704,7 @@
8712
8704
  key: "supportedVersion",
8713
8705
  get: function get() {
8714
8706
  return {
8715
- min: "0.14.3"
8707
+ min: "0.14.4"
8716
8708
  };
8717
8709
  }
8718
8710
  }, {
@@ -8767,7 +8759,7 @@
8767
8759
  key: "supportedVersion",
8768
8760
  get: function get() {
8769
8761
  return {
8770
- min: "0.14.3"
8762
+ min: "0.14.4"
8771
8763
  };
8772
8764
  }
8773
8765
  }, {
@@ -8847,7 +8839,7 @@
8847
8839
  key: "supportedVersion",
8848
8840
  get: function get() {
8849
8841
  return {
8850
- min: "0.14.3"
8842
+ min: "0.14.4"
8851
8843
  };
8852
8844
  }
8853
8845
  }, {
@@ -8979,7 +8971,7 @@
8979
8971
  key: "supportedVersion",
8980
8972
  get: function get() {
8981
8973
  return {
8982
- min: "0.14.3"
8974
+ min: "0.14.4"
8983
8975
  };
8984
8976
  }
8985
8977
  }, {
@@ -9090,7 +9082,7 @@
9090
9082
  'default_error_message': '在尝试加载视频时出现了问题。'
9091
9083
  }
9092
9084
  };
9093
- this._messages = $.extend(true, defaultMessages, this.core.options.strings || {});
9085
+ this._messages = Zepto.extend(true, defaultMessages, this.core.options.strings || {});
9094
9086
  this._messages['de-DE'] = this._messages.de;
9095
9087
  this._messages['pt-BR'] = this._messages.pt;
9096
9088
  this._messages['en-US'] = this._messages.en;
@@ -9120,7 +9112,7 @@
9120
9112
  key: "supportedVersion",
9121
9113
  get: function get() {
9122
9114
  return {
9123
- min: "0.14.3"
9115
+ min: "0.14.4"
9124
9116
  };
9125
9117
  }
9126
9118
  }, {
@@ -9149,7 +9141,7 @@
9149
9141
  @type {string}
9150
9142
  @default
9151
9143
  */
9152
- var version$2 = "0.14.3";
9144
+ var version$2 = "0.14.4";
9153
9145
 
9154
9146
  // Built-in Plugins/Playbacks
9155
9147
 
@@ -9182,7 +9174,7 @@
9182
9174
  Styler: Styler,
9183
9175
  version: version$2,
9184
9176
  template: tmpl,
9185
- $: $
9177
+ $: Zepto
9186
9178
  };
9187
9179
 
9188
9180
  function _assertThisInitialized$1(e) {
@@ -9298,7 +9290,7 @@
9298
9290
  key: "supportedVersion",
9299
9291
  get: function get() {
9300
9292
  return {
9301
- min: "0.14.3"
9293
+ min: "0.14.4"
9302
9294
  };
9303
9295
  }
9304
9296
  }, {
@@ -9361,7 +9353,7 @@
9361
9353
  key: "supportedVersion",
9362
9354
  get: function get() {
9363
9355
  return {
9364
- min: "0.14.3"
9356
+ min: "0.14.4"
9365
9357
  };
9366
9358
  }
9367
9359
  }, {
@@ -9526,7 +9518,7 @@
9526
9518
  key: "supportedVersion",
9527
9519
  get: function get() {
9528
9520
  return {
9529
- min: "0.14.3"
9521
+ min: "0.14.4"
9530
9522
  };
9531
9523
  }
9532
9524
  }, {
@@ -9657,7 +9649,7 @@
9657
9649
  key: "supportedVersion",
9658
9650
  get: function get() {
9659
9651
  return {
9660
- min: "0.14.3"
9652
+ min: "0.14.4"
9661
9653
  };
9662
9654
  }
9663
9655
  }, {
@@ -9707,7 +9699,7 @@
9707
9699
  key: "supportedVersion",
9708
9700
  get: function get() {
9709
9701
  return {
9710
- min: "0.14.3"
9702
+ min: "0.14.4"
9711
9703
  };
9712
9704
  }
9713
9705
  }, {
@@ -9807,7 +9799,7 @@
9807
9799
  }(UICorePlugin);
9808
9800
  var playIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n <path fill=\"#010101\" d=\"M1.425.35L14.575 8l-13.15 7.65V.35z\"/>\n</svg>";
9809
9801
  var pauseIcon = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" fill=\"#010101\" d=\"M1.712 14.76H6.43V1.24H1.71v13.52zm7.86-13.52v13.52h4.716V1.24H9.573z\"/>\n</svg>";
9810
- var oldIcon = $('link[rel="shortcut icon"]');
9802
+ var oldIcon = Zepto('link[rel="shortcut icon"]');
9811
9803
  var Favicon$1 = /*#__PURE__*/function (_CorePlugin) {
9812
9804
  function Favicon(core) {
9813
9805
  var _this;
@@ -9827,7 +9819,7 @@
9827
9819
  key: "supportedVersion",
9828
9820
  get: function get() {
9829
9821
  return {
9830
- min: "0.14.3"
9822
+ min: "0.14.4"
9831
9823
  };
9832
9824
  }
9833
9825
  }, {
@@ -9882,15 +9874,15 @@
9882
9874
  }, {
9883
9875
  key: "createIcon",
9884
9876
  value: function createIcon(svg) {
9885
- var canvas = $('<canvas/>');
9877
+ var canvas = Zepto('<canvas/>');
9886
9878
  canvas[0].width = 16;
9887
9879
  canvas[0].height = 16;
9888
9880
  var ctx = canvas[0].getContext('2d');
9889
9881
  ctx.fillStyle = '#000';
9890
- var d = $(svg).find('path').attr('d');
9882
+ var d = Zepto(svg).find('path').attr('d');
9891
9883
  var path = new Path2D(d);
9892
9884
  ctx.fill(path);
9893
- var icon = $('<link rel="shortcut icon" type="image/png"/>');
9885
+ var icon = Zepto('<link rel="shortcut icon" type="image/png"/>');
9894
9886
  icon.attr('href', canvas[0].toDataURL('image/png'));
9895
9887
  return icon;
9896
9888
  }
@@ -9913,15 +9905,15 @@
9913
9905
  }, {
9914
9906
  key: "resetIcon",
9915
9907
  value: function resetIcon() {
9916
- $('link[rel="shortcut icon"]').remove();
9917
- $('head').append(this.oldIcon);
9908
+ Zepto('link[rel="shortcut icon"]').remove();
9909
+ Zepto('head').append(this.oldIcon);
9918
9910
  }
9919
9911
  }, {
9920
9912
  key: "changeIcon",
9921
9913
  value: function changeIcon(icon) {
9922
9914
  if (icon) {
9923
- $('link[rel="shortcut icon"]').remove();
9924
- $('head').append(icon);
9915
+ Zepto('link[rel="shortcut icon"]').remove();
9916
+ Zepto('head').append(icon);
9925
9917
  }
9926
9918
  }
9927
9919
  }]);
@@ -9950,7 +9942,7 @@
9950
9942
  key: "supportedVersion",
9951
9943
  get: function get() {
9952
9944
  return {
9953
- min: "0.14.3"
9945
+ min: "0.14.4"
9954
9946
  };
9955
9947
  }
9956
9948
  }, {
@@ -10421,8 +10413,8 @@
10421
10413
  _this.kibo = new Kibo(_this.options.focusElement);
10422
10414
  _this.bindKeyEvents();
10423
10415
  if (_this.container) {
10424
- if (!$.isEmptyObject(_this.container.settings)) {
10425
- _this.settings = $.extend({}, _this.container.settings);
10416
+ if (!Zepto.isEmptyObject(_this.container.settings)) {
10417
+ _this.settings = Zepto.extend({}, _this.container.settings);
10426
10418
  }
10427
10419
  } else {
10428
10420
  _this.settings = {};
@@ -10437,8 +10429,8 @@
10437
10429
  _this.updateDragHandler = function (event) {
10438
10430
  return _this.updateDrag(event);
10439
10431
  };
10440
- $(document).bind('mouseup', _this.stopDragHandler);
10441
- $(document).bind('mousemove', _this.updateDragHandler);
10432
+ Zepto(document).bind('mouseup', _this.stopDragHandler);
10433
+ Zepto(document).bind('mousemove', _this.updateDragHandler);
10442
10434
  return _this;
10443
10435
  }
10444
10436
  _inherits$1(MediaControl, _UICorePlugin);
@@ -10451,7 +10443,7 @@
10451
10443
  key: "supportedVersion",
10452
10444
  get: function get() {
10453
10445
  return {
10454
- min: "0.14.3"
10446
+ min: "0.14.4"
10455
10447
  };
10456
10448
  }
10457
10449
  }, {
@@ -11016,7 +11008,7 @@
11016
11008
  }, {
11017
11009
  key: "getSettings",
11018
11010
  value: function getSettings() {
11019
- return $.extend(true, {}, this.container && this.container.settings);
11011
+ return Zepto.extend(true, {}, this.container && this.container.settings);
11020
11012
  }
11021
11013
  }, {
11022
11014
  key: "highDefinitionUpdate",
@@ -11166,13 +11158,13 @@
11166
11158
  }, {
11167
11159
  key: "applyButtonStyle",
11168
11160
  value: function applyButtonStyle(element) {
11169
- this.buttonsColor && element && $(element).find('svg path').css('fill', this.buttonsColor);
11161
+ this.buttonsColor && element && Zepto(element).find('svg path').css('fill', this.buttonsColor);
11170
11162
  }
11171
11163
  }, {
11172
11164
  key: "destroy",
11173
11165
  value: function destroy() {
11174
- $(document).unbind('mouseup', this.stopDragHandler);
11175
- $(document).unbind('mousemove', this.updateDragHandler);
11166
+ Zepto(document).unbind('mouseup', this.stopDragHandler);
11167
+ Zepto(document).unbind('mousemove', this.updateDragHandler);
11176
11168
  this.unbindKeyEvents();
11177
11169
  this.stopListening();
11178
11170
  _superPropGet$1(MediaControl, "destroy", this, 3)([]);
@@ -11281,7 +11273,7 @@
11281
11273
  key: "supportedVersion",
11282
11274
  get: function get() {
11283
11275
  return {
11284
- min: "0.14.3"
11276
+ min: "0.14.4"
11285
11277
  };
11286
11278
  }
11287
11279
  }, {
@@ -11500,7 +11492,7 @@
11500
11492
  key: "supportedVersion",
11501
11493
  get: function get() {
11502
11494
  return {
11503
- min: "0.14.3"
11495
+ min: "0.14.4"
11504
11496
  };
11505
11497
  }
11506
11498
  }, {
@@ -11704,7 +11696,7 @@
11704
11696
  key: "supportedVersion",
11705
11697
  get: function get() {
11706
11698
  return {
11707
- min: "0.14.3"
11699
+ min: "0.14.4"
11708
11700
  };
11709
11701
  }
11710
11702
  }, {
@@ -11786,7 +11778,7 @@
11786
11778
  key: "supportedVersion",
11787
11779
  get: function get() {
11788
11780
  return {
11789
- min: "0.14.3"
11781
+ min: "0.14.4"
11790
11782
  };
11791
11783
  }
11792
11784
  }, {
@@ -11872,7 +11864,7 @@
11872
11864
  }, {
11873
11865
  key: "onStatsAdd",
11874
11866
  value: function onStatsAdd(metric) {
11875
- $.extend(this.externalMetrics, metric);
11867
+ Zepto.extend(this.externalMetrics, metric);
11876
11868
  }
11877
11869
  }, {
11878
11870
  key: "getStats",
@@ -11883,7 +11875,7 @@
11883
11875
  rebufferingTime: this.isRebuffering() ? this.rebufferingTime + this.getRebufferingTime() : this.rebufferingTime,
11884
11876
  watchingTime: this.isRebuffering() ? this.getWatchingTime() - this.getRebufferingTime() : this.getWatchingTime()
11885
11877
  };
11886
- $.extend(metrics, this.externalMetrics);
11878
+ Zepto.extend(metrics, this.externalMetrics);
11887
11879
  return metrics;
11888
11880
  }
11889
11881
  }, {
@@ -11913,7 +11905,7 @@
11913
11905
  key: "supportedVersion",
11914
11906
  get: function get() {
11915
11907
  return {
11916
- min: "0.14.3"
11908
+ min: "0.14.4"
11917
11909
  };
11918
11910
  }
11919
11911
  }, {
@@ -11987,7 +11979,7 @@
11987
11979
  WaterMark: WaterMarkPlugin
11988
11980
  };
11989
11981
 
11990
- var version$1 = "0.12.3";
11982
+ var version$1 = "0.12.4";
11991
11983
  for (var _i = 0, _Object$values = Object.values(Plugins); _i < _Object$values.length; _i++) {
11992
11984
  var plugin = _Object$values[_i];
11993
11985
  Loader.registerPlugin(plugin);
@@ -48745,7 +48737,7 @@ Schedule: ${scheduleItems.map(seg => segmentToString(seg))} pos: ${this.timeline
48745
48737
  key: "supportedVersion",
48746
48738
  get: function get() {
48747
48739
  return {
48748
- min: "0.14.3"
48740
+ min: "0.14.4"
48749
48741
  };
48750
48742
  }
48751
48743
  }, {