1(window["webpackJsonp"] = window["webpackJsonp"] || []).push([["vendor"],{ 2
vendor: 2,123 bytes, lines 3-43
3/***/ "./node_modules/@babel/polyfill/lib/index.js": 4/*!***************************************************!*\ 5 !*** ./node_modules/@babel/polyfill/lib/index.js ***! 6 \***************************************************/ 7/*! no static exports found */ 8/***/ (function(module, exports, __webpack_require__) { 9 10"use strict"; 11/* WEBPACK VAR INJECTION */(function(global) { 12 13__webpack_require__(/*! core-js/es6 */ "./node_modules/core-js/es6/index.js"); 14 15__webpack_require__(/*! core-js/fn/array/includes */ "./node_modules/core-js/fn/array/includes.js"); 16 17__webpack_require__(/*! core-js/fn/string/pad-start */ "./node_modules/core-js/fn/string/pad-start.js"); 18 19__webpack_require__(/*! core-js/fn/string/pad-end */ "./node_modules/core-js/fn/string/pad-end.js"); 20 21__webpack_require__(/*! core-js/fn/symbol/async-iterator */ "./node_modules/core-js/fn/symbol/async-iterator.js"); 22 23__webpack_require__(/*! core-js/fn/object/get-own-property-descriptors */ "./node_modules/core-js/fn/object/get-own-property-descriptors.js"); 24 25__webpack_require__(/*! core-js/fn/object/values */ "./node_modules/core-js/fn/object/values.js"); 26 27__webpack_require__(/*! core-js/fn/object/entries */ "./node_modules/core-js/fn/object/entries.js"); 28 29__webpack_require__(/*! core-js/fn/promise/finally */ "./node_modules/core-js/fn/promise/finally.js"); 30 31__webpack_require__(/*! core-js/web */ "./node_modules/core-js/web/index.js"); 32 33__webpack_require__(/*! regenerator-runtime/runtime */ "./node_modules/regenerator-runtime/runtime.js"); 34 35if (global._babelPolyfill && typeof console !== "undefined" && console.warn) { 36 console.warn("@babel/polyfill is loaded more than once on this page. This is probably not desirable/intended " + "and may have consequences if different versions of the polyfills are applied sequentially. " + "If you do need to load the polyfill more than once, use @babel/polyfill/noConflict " + "instead to bypass the warning."); 37} 38 39global._babelPolyfill = true; 40/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) 41 42/***/ }), 43
vendor: 16,171 bytes, lines 44-192
44/***/ "./node_modules/core-js/es6/index.js": 45/*!*******************************************!*\ 46 !*** ./node_modules/core-js/es6/index.js ***! 47 \*******************************************/ 48/*! no static exports found */ 49/***/ (function(module, exports, __webpack_require__) { 50 51__webpack_require__(/*! ../modules/es6.symbol */ "./node_modules/core-js/modules/es6.symbol.js"); 52__webpack_require__(/*! ../modules/es6.object.create */ "./node_modules/core-js/modules/es6.object.create.js"); 53__webpack_require__(/*! ../modules/es6.object.define-property */ "./node_modules/core-js/modules/es6.object.define-property.js"); 54__webpack_require__(/*! ../modules/es6.object.define-properties */ "./node_modules/core-js/modules/es6.object.define-properties.js"); 55__webpack_require__(/*! ../modules/es6.object.get-own-property-descriptor */ "./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js"); 56__webpack_require__(/*! ../modules/es6.object.get-prototype-of */ "./node_modules/core-js/modules/es6.object.get-prototype-of.js"); 57__webpack_require__(/*! ../modules/es6.object.keys */ "./node_modules/core-js/modules/es6.object.keys.js"); 58__webpack_require__(/*! ../modules/es6.object.get-own-property-names */ "./node_modules/core-js/modules/es6.object.get-own-property-names.js"); 59__webpack_require__(/*! ../modules/es6.object.freeze */ "./node_modules/core-js/modules/es6.object.freeze.js"); 60__webpack_require__(/*! ../modules/es6.object.seal */ "./node_modules/core-js/modules/es6.object.seal.js"); 61__webpack_require__(/*! ../modules/es6.object.prevent-extensions */ "./node_modules/core-js/modules/es6.object.prevent-extensions.js"); 62__webpack_require__(/*! ../modules/es6.object.is-frozen */ "./node_modules/core-js/modules/es6.object.is-frozen.js"); 63__webpack_require__(/*! ../modules/es6.object.is-sealed */ "./node_modules/core-js/modules/es6.object.is-sealed.js"); 64__webpack_require__(/*! ../modules/es6.object.is-extensible */ "./node_modules/core-js/modules/es6.object.is-extensible.js"); 65__webpack_require__(/*! ../modules/es6.object.assign */ "./node_modules/core-js/modules/es6.object.assign.js"); 66__webpack_require__(/*! ../modules/es6.object.is */ "./node_modules/core-js/modules/es6.object.is.js"); 67__webpack_require__(/*! ../modules/es6.object.set-prototype-of */ "./node_modules/core-js/modules/es6.object.set-prototype-of.js"); 68__webpack_require__(/*! ../modules/es6.object.to-string */ "./node_modules/core-js/modules/es6.object.to-string.js"); 69__webpack_require__(/*! ../modules/es6.function.bind */ "./node_modules/core-js/modules/es6.function.bind.js"); 70__webpack_require__(/*! ../modules/es6.function.name */ "./node_modules/core-js/modules/es6.function.name.js"); 71__webpack_require__(/*! ../modules/es6.function.has-instance */ "./node_modules/core-js/modules/es6.function.has-instance.js"); 72__webpack_require__(/*! ../modules/es6.parse-int */ "./node_modules/core-js/modules/es6.parse-int.js"); 73__webpack_require__(/*! ../modules/es6.parse-float */ "./node_modules/core-js/modules/es6.parse-float.js"); 74__webpack_require__(/*! ../modules/es6.number.constructor */ "./node_modules/core-js/modules/es6.number.constructor.js"); 75__webpack_require__(/*! ../modules/es6.number.to-fixed */ "./node_modules/core-js/modules/es6.number.to-fixed.js"); 76__webpack_require__(/*! ../modules/es6.number.to-precision */ "./node_modules/core-js/modules/es6.number.to-precision.js"); 77__webpack_require__(/*! ../modules/es6.number.epsilon */ "./node_modules/core-js/modules/es6.number.epsilon.js"); 78__webpack_require__(/*! ../modules/es6.number.is-finite */ "./node_modules/core-js/modules/es6.number.is-finite.js"); 79__webpack_require__(/*! ../modules/es6.number.is-integer */ "./node_modules/core-js/modules/es6.number.is-integer.js"); 80__webpack_require__(/*! ../modules/es6.number.is-nan */ "./node_modules/core-js/modules/es6.number.is-nan.js"); 81__webpack_require__(/*! ../modules/es6.number.is-safe-integer */ "./node_modules/core-js/modules/es6.number.is-safe-integer.js"); 82__webpack_require__(/*! ../modules/es6.number.max-safe-integer */ "./node_modules/core-js/modules/es6.number.max-safe-integer.js"); 83__webpack_require__(/*! ../modules/es6.number.min-safe-integer */ "./node_modules/core-js/modules/es6.number.min-safe-integer.js"); 84__webpack_require__(/*! ../modules/es6.number.parse-float */ "./node_modules/core-js/modules/es6.number.parse-float.js"); 85__webpack_require__(/*! ../modules/es6.number.parse-int */ "./node_modules/core-js/modules/es6.number.parse-int.js"); 86__webpack_require__(/*! ../modules/es6.math.acosh */ "./node_modules/core-js/modules/es6.math.acosh.js"); 87__webpack_require__(/*! ../modules/es6.math.asinh */ "./node_modules/core-js/modules/es6.math.asinh.js"); 88__webpack_require__(/*! ../modules/es6.math.atanh */ "./node_modules/core-js/modules/es6.math.atanh.js"); 89__webpack_require__(/*! ../modules/es6.math.cbrt */ "./node_modules/core-js/modules/es6.math.cbrt.js"); 90__webpack_require__(/*! ../modules/es6.math.clz32 */ "./node_modules/core-js/modules/es6.math.clz32.js"); 91__webpack_require__(/*! ../modules/es6.math.cosh */ "./node_modules/core-js/modules/es6.math.cosh.js"); 92__webpack_require__(/*! ../modules/es6.math.expm1 */ "./node_modules/core-js/modules/es6.math.expm1.js"); 93__webpack_require__(/*! ../modules/es6.math.fround */ "./node_modules/core-js/modules/es6.math.fround.js"); 94__webpack_require__(/*! ../modules/es6.math.hypot */ "./node_modules/core-js/modules/es6.math.hypot.js"); 95__webpack_require__(/*! ../modules/es6.math.imul */ "./node_modules/core-js/modules/es6.math.imul.js"); 96__webpack_require__(/*! ../modules/es6.math.log10 */ "./node_modules/core-js/modules/es6.math.log10.js"); 97__webpack_require__(/*! ../modules/es6.math.log1p */ "./node_modules/core-js/modules/es6.math.log1p.js"); 98__webpack_require__(/*! ../modules/es6.math.log2 */ "./node_modules/core-js/modules/es6.math.log2.js"); 99__webpack_require__(/*! ../modules/es6.math.sign */ "./node_modules/core-js/modules/es6.math.sign.js"); 100__webpack_require__(/*! ../modules/es6.math.sinh */ "./node_modules/core-js/modules/es6.math.sinh.js"); 101__webpack_require__(/*! ../modules/es6.math.tanh */ "./node_modules/core-js/modules/es6.math.tanh.js"); 102__webpack_require__(/*! ../modules/es6.math.trunc */ "./node_modules/core-js/modules/es6.math.trunc.js"); 103__webpack_require__(/*! ../modules/es6.string.from-code-point */ "./node_modules/core-js/modules/es6.string.from-code-point.js"); 104__webpack_require__(/*! ../modules/es6.string.raw */ "./node_modules/core-js/modules/es6.string.raw.js"); 105__webpack_require__(/*! ../modules/es6.string.trim */ "./node_modules/core-js/modules/es6.string.trim.js"); 106__webpack_require__(/*! ../modules/es6.string.iterator */ "./node_modules/core-js/modules/es6.string.iterator.js"); 107__webpack_require__(/*! ../modules/es6.string.code-point-at */ "./node_modules/core-js/modules/es6.string.code-point-at.js"); 108__webpack_require__(/*! ../modules/es6.string.ends-with */ "./node_modules/core-js/modules/es6.string.ends-with.js"); 109__webpack_require__(/*! ../modules/es6.string.includes */ "./node_modules/core-js/modules/es6.string.includes.js"); 110__webpack_require__(/*! ../modules/es6.string.repeat */ "./node_modules/core-js/modules/es6.string.repeat.js"); 111__webpack_require__(/*! ../modules/es6.string.starts-with */ "./node_modules/core-js/modules/es6.string.starts-with.js"); 112__webpack_require__(/*! ../modules/es6.string.anchor */ "./node_modules/core-js/modules/es6.string.anchor.js"); 113__webpack_require__(/*! ../modules/es6.string.big */ "./node_modules/core-js/modules/es6.string.big.js"); 114__webpack_require__(/*! ../modules/es6.string.blink */ "./node_modules/core-js/modules/es6.string.blink.js"); 115__webpack_require__(/*! ../modules/es6.string.bold */ "./node_modules/core-js/modules/es6.string.bold.js"); 116__webpack_require__(/*! ../modules/es6.string.fixed */ "./node_modules/core-js/modules/es6.string.fixed.js"); 117__webpack_require__(/*! ../modules/es6.string.fontcolor */ "./node_modules/core-js/modules/es6.string.fontcolor.js"); 118__webpack_require__(/*! ../modules/es6.string.fontsize */ "./node_modules/core-js/modules/es6.string.fontsize.js"); 119__webpack_require__(/*! ../modules/es6.string.italics */ "./node_modules/core-js/modules/es6.string.italics.js"); 120__webpack_require__(/*! ../modules/es6.string.link */ "./node_modules/core-js/modules/es6.string.link.js"); 121__webpack_require__(/*! ../modules/es6.string.small */ "./node_modules/core-js/modules/es6.string.small.js"); 122__webpack_require__(/*! ../modules/es6.string.strike */ "./node_modules/core-js/modules/es6.string.strike.js"); 123__webpack_require__(/*! ../modules/es6.string.sub */ "./node_modules/core-js/modules/es6.string.sub.js"); 124__webpack_require__(/*! ../modules/es6.string.sup */ "./node_modules/core-js/modules/es6.string.sup.js"); 125__webpack_require__(/*! ../modules/es6.date.now */ "./node_modules/core-js/modules/es6.date.now.js"); 126__webpack_require__(/*! ../modules/es6.date.to-json */ "./node_modules/core-js/modules/es6.date.to-json.js"); 127__webpack_require__(/*! ../modules/es6.date.to-iso-string */ "./node_modules/core-js/modules/es6.date.to-iso-string.js"); 128__webpack_require__(/*! ../modules/es6.date.to-string */ "./node_modules/core-js/modules/es6.date.to-string.js"); 129__webpack_require__(/*! ../modules/es6.date.to-primitive */ "./node_modules/core-js/modules/es6.date.to-primitive.js"); 130__webpack_require__(/*! ../modules/es6.array.is-array */ "./node_modules/core-js/modules/es6.array.is-array.js"); 131__webpack_require__(/*! ../modules/es6.array.from */ "./node_modules/core-js/modules/es6.array.from.js"); 132__webpack_require__(/*! ../modules/es6.array.of */ "./node_modules/core-js/modules/es6.array.of.js"); 133__webpack_require__(/*! ../modules/es6.array.join */ "./node_modules/core-js/modules/es6.array.join.js"); 134__webpack_require__(/*! ../modules/es6.array.slice */ "./node_modules/core-js/modules/es6.array.slice.js"); 135__webpack_require__(/*! ../modules/es6.array.sort */ "./node_modules/core-js/modules/es6.array.sort.js"); 136__webpack_require__(/*! ../modules/es6.array.for-each */ "./node_modules/core-js/modules/es6.array.for-each.js"); 137__webpack_require__(/*! ../modules/es6.array.map */ "./node_modules/core-js/modules/es6.array.map.js"); 138__webpack_require__(/*! ../modules/es6.array.filter */ "./node_modules/core-js/modules/es6.array.filter.js"); 139__webpack_require__(/*! ../modules/es6.array.some */ "./node_modules/core-js/modules/es6.array.some.js"); 140__webpack_require__(/*! ../modules/es6.array.every */ "./node_modules/core-js/modules/es6.array.every.js"); 141__webpack_require__(/*! ../modules/es6.array.reduce */ "./node_modules/core-js/modules/es6.array.reduce.js"); 142__webpack_require__(/*! ../modules/es6.array.reduce-right */ "./node_modules/core-js/modules/es6.array.reduce-right.js"); 143__webpack_require__(/*! ../modules/es6.array.index-of */ "./node_modules/core-js/modules/es6.array.index-of.js"); 144__webpack_require__(/*! ../modules/es6.array.last-index-of */ "./node_modules/core-js/modules/es6.array.last-index-of.js"); 145__webpack_require__(/*! ../modules/es6.array.copy-within */ "./node_modules/core-js/modules/es6.array.copy-within.js"); 146__webpack_require__(/*! ../modules/es6.array.fill */ "./node_modules/core-js/modules/es6.array.fill.js"); 147__webpack_require__(/*! ../modules/es6.array.find */ "./node_modules/core-js/modules/es6.array.find.js"); 148__webpack_require__(/*! ../modules/es6.array.find-index */ "./node_modules/core-js/modules/es6.array.find-index.js"); 149__webpack_require__(/*! ../modules/es6.array.species */ "./node_modules/core-js/modules/es6.array.species.js"); 150__webpack_require__(/*! ../modules/es6.array.iterator */ "./node_modules/core-js/modules/es6.array.iterator.js"); 151__webpack_require__(/*! ../modules/es6.regexp.constructor */ "./node_modules/core-js/modules/es6.regexp.constructor.js"); 152__webpack_require__(/*! ../modules/es6.regexp.to-string */ "./node_modules/core-js/modules/es6.regexp.to-string.js"); 153__webpack_require__(/*! ../modules/es6.regexp.flags */ "./node_modules/core-js/modules/es6.regexp.flags.js"); 154__webpack_require__(/*! ../modules/es6.regexp.match */ "./node_modules/core-js/modules/es6.regexp.match.js"); 155__webpack_require__(/*! ../modules/es6.regexp.replace */ "./node_modules/core-js/modules/es6.regexp.replace.js"); 156__webpack_require__(/*! ../modules/es6.regexp.search */ "./node_modules/core-js/modules/es6.regexp.search.js"); 157__webpack_require__(/*! ../modules/es6.regexp.split */ "./node_modules/core-js/modules/es6.regexp.split.js"); 158__webpack_require__(/*! ../modules/es6.promise */ "./node_modules/core-js/modules/es6.promise.js"); 159__webpack_require__(/*! ../modules/es6.map */ "./node_modules/core-js/modules/es6.map.js"); 160__webpack_require__(/*! ../modules/es6.set */ "./node_modules/core-js/modules/es6.set.js"); 161__webpack_require__(/*! ../modules/es6.weak-map */ "./node_modules/core-js/modules/es6.weak-map.js"); 162__webpack_require__(/*! ../modules/es6.weak-set */ "./node_modules/core-js/modules/es6.weak-set.js"); 163__webpack_require__(/*! ../modules/es6.typed.array-buffer */ "./node_modules/core-js/modules/es6.typed.array-buffer.js"); 164__webpack_require__(/*! ../modules/es6.typed.data-view */ "./node_modules/core-js/modules/es6.typed.data-view.js"); 165__webpack_require__(/*! ../modules/es6.typed.int8-array */ "./node_modules/core-js/modules/es6.typed.int8-array.js"); 166__webpack_require__(/*! ../modules/es6.typed.uint8-array */ "./node_modules/core-js/modules/es6.typed.uint8-array.js"); 167__webpack_require__(/*! ../modules/es6.typed.uint8-clamped-array */ "./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js"); 168__webpack_require__(/*! ../modules/es6.typed.int16-array */ "./node_modules/core-js/modules/es6.typed.int16-array.js"); 169__webpack_require__(/*! ../modules/es6.typed.uint16-array */ "./node_modules/core-js/modules/es6.typed.uint16-array.js"); 170__webpack_require__(/*! ../modules/es6.typed.int32-array */ "./node_modules/core-js/modules/es6.typed.int32-array.js"); 171__webpack_require__(/*! ../modules/es6.typed.uint32-array */ "./node_modules/core-js/modules/es6.typed.uint32-array.js"); 172__webpack_require__(/*! ../modules/es6.typed.float32-array */ "./node_modules/core-js/modules/es6.typed.float32-array.js"); 173__webpack_require__(/*! ../modules/es6.typed.float64-array */ "./node_modules/core-js/modules/es6.typed.float64-array.js"); 174__webpack_require__(/*! ../modules/es6.reflect.apply */ "./node_modules/core-js/modules/es6.reflect.apply.js"); 175__webpack_require__(/*! ../modules/es6.reflect.construct */ "./node_modules/core-js/modules/es6.reflect.construct.js"); 176__webpack_require__(/*! ../modules/es6.reflect.define-property */ "./node_modules/core-js/modules/es6.reflect.define-property.js"); 177__webpack_require__(/*! ../modules/es6.reflect.delete-property */ "./node_modules/core-js/modules/es6.reflect.delete-property.js"); 178__webpack_require__(/*! ../modules/es6.reflect.enumerate */ "./node_modules/core-js/modules/es6.reflect.enumerate.js"); 179__webpack_require__(/*! ../modules/es6.reflect.get */ "./node_modules/core-js/modules/es6.reflect.get.js"); 180__webpack_require__(/*! ../modules/es6.reflect.get-own-property-descriptor */ "./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js"); 181__webpack_require__(/*! ../modules/es6.reflect.get-prototype-of */ "./node_modules/core-js/modules/es6.reflect.get-prototype-of.js"); 182__webpack_require__(/*! ../modules/es6.reflect.has */ "./node_modules/core-js/modules/es6.reflect.has.js"); 183__webpack_require__(/*! ../modules/es6.reflect.is-extensible */ "./node_modules/core-js/modules/es6.reflect.is-extensible.js"); 184__webpack_require__(/*! ../modules/es6.reflect.own-keys */ "./node_modules/core-js/modules/es6.reflect.own-keys.js"); 185__webpack_require__(/*! ../modules/es6.reflect.prevent-extensions */ "./node_modules/core-js/modules/es6.reflect.prevent-extensions.js"); 186__webpack_require__(/*! ../modules/es6.reflect.set */ "./node_modules/core-js/modules/es6.reflect.set.js"); 187__webpack_require__(/*! ../modules/es6.reflect.set-prototype-of */ "./node_modules/core-js/modules/es6.reflect.set-prototype-of.js"); 188module.exports = __webpack_require__(/*! ../modules/_core */ "./node_modules/core-js/modules/_core.js"); 189 190 191/***/ }), 192
vendor: 564 bytes, lines 193-205
193/***/ "./node_modules/core-js/fn/array/includes.js": 194/*!***************************************************!*\ 195 !*** ./node_modules/core-js/fn/array/includes.js ***! 196 \***************************************************/ 197/*! no static exports found */ 198/***/ (function(module, exports, __webpack_require__) { 199 200__webpack_require__(/*! ../../modules/es7.array.includes */ "./node_modules/core-js/modules/es7.array.includes.js"); 201module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").Array.includes; 202 203 204/***/ }), 205
vendor: 564 bytes, lines 206-218
206/***/ "./node_modules/core-js/fn/object/entries.js": 207/*!***************************************************!*\ 208 !*** ./node_modules/core-js/fn/object/entries.js ***! 209 \***************************************************/ 210/*! no static exports found */ 211/***/ (function(module, exports, __webpack_require__) { 212 213__webpack_require__(/*! ../../modules/es7.object.entries */ "./node_modules/core-js/modules/es7.object.entries.js"); 214module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").Object.entries; 215 216 217/***/ }), 218
vendor: 708 bytes, lines 219-231
219/***/ "./node_modules/core-js/fn/object/get-own-property-descriptors.js": 220/*!************************************************************************!*\ 221 !*** ./node_modules/core-js/fn/object/get-own-property-descriptors.js ***! 222 \************************************************************************/ 223/*! no static exports found */ 224/***/ (function(module, exports, __webpack_require__) { 225 226__webpack_require__(/*! ../../modules/es7.object.get-own-property-descriptors */ "./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js"); 227module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").Object.getOwnPropertyDescriptors; 228 229 230/***/ }), 231
vendor: 557 bytes, lines 232-244
232/***/ "./node_modules/core-js/fn/object/values.js": 233/*!**************************************************!*\ 234 !*** ./node_modules/core-js/fn/object/values.js ***! 235 \**************************************************/ 236/*! no static exports found */ 237/***/ (function(module, exports, __webpack_require__) { 238 239__webpack_require__(/*! ../../modules/es7.object.values */ "./node_modules/core-js/modules/es7.object.values.js"); 240module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").Object.values; 241 242 243/***/ }), 244
vendor: 692 bytes, lines 245-260
245/***/ "./node_modules/core-js/fn/promise/finally.js": 246/*!****************************************************!*\ 247 !*** ./node_modules/core-js/fn/promise/finally.js ***! 248 \****************************************************/ 249/*! no static exports found */ 250/***/ (function(module, exports, __webpack_require__) { 251 252"use strict"; 253 254__webpack_require__(/*! ../../modules/es6.promise */ "./node_modules/core-js/modules/es6.promise.js"); 255__webpack_require__(/*! ../../modules/es7.promise.finally */ "./node_modules/core-js/modules/es7.promise.finally.js"); 256module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").Promise['finally']; 257 258 259/***/ }), 260
vendor: 563 bytes, lines 261-273
261/***/ "./node_modules/core-js/fn/string/pad-end.js": 262/*!***************************************************!*\ 263 !*** ./node_modules/core-js/fn/string/pad-end.js ***! 264 \***************************************************/ 265/*! no static exports found */ 266/***/ (function(module, exports, __webpack_require__) { 267 268__webpack_require__(/*! ../../modules/es7.string.pad-end */ "./node_modules/core-js/modules/es7.string.pad-end.js"); 269module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").String.padEnd; 270 271 272/***/ }), 273
vendor: 577 bytes, lines 274-286
274/***/ "./node_modules/core-js/fn/string/pad-start.js": 275/*!*****************************************************!*\ 276 !*** ./node_modules/core-js/fn/string/pad-start.js ***! 277 \*****************************************************/ 278/*! no static exports found */ 279/***/ (function(module, exports, __webpack_require__) { 280 281__webpack_require__(/*! ../../modules/es7.string.pad-start */ "./node_modules/core-js/modules/es7.string.pad-start.js"); 282module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").String.padStart; 283 284 285/***/ }), 286
vendor: 616 bytes, lines 287-299
287/***/ "./node_modules/core-js/fn/symbol/async-iterator.js": 288/*!**********************************************************!*\ 289 !*** ./node_modules/core-js/fn/symbol/async-iterator.js ***! 290 \**********************************************************/ 291/*! no static exports found */ 292/***/ (function(module, exports, __webpack_require__) { 293 294__webpack_require__(/*! ../../modules/es7.symbol.async-iterator */ "./node_modules/core-js/modules/es7.symbol.async-iterator.js"); 295module.exports = __webpack_require__(/*! ../../modules/_wks-ext */ "./node_modules/core-js/modules/_wks-ext.js").f('asyncIterator'); 296 297 298/***/ }), 299
vendor: 436 bytes, lines 300-314
300/***/ "./node_modules/core-js/modules/_a-function.js": 301/*!*****************************************************!*\ 302 !*** ./node_modules/core-js/modules/_a-function.js ***! 303 \*****************************************************/ 304/*! no static exports found */ 305/***/ (function(module, exports) { 306 307module.exports = function (it) { 308 if (typeof it != 'function') throw TypeError(it + ' is not a function!'); 309 return it; 310}; 311 312 313/***/ }), 314
vendor: 564 bytes, lines 315-330
315/***/ "./node_modules/core-js/modules/_a-number-value.js": 316/*!*********************************************************!*\ 317 !*** ./node_modules/core-js/modules/_a-number-value.js ***! 318 \*********************************************************/ 319/*! no static exports found */ 320/***/ (function(module, exports, __webpack_require__) { 321 322var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); 323module.exports = function (it, msg) { 324 if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg); 325 return +it; 326}; 327 328 329/***/ }), 330
vendor: 778 bytes, lines 331-348
331/***/ "./node_modules/core-js/modules/_add-to-unscopables.js": 332/*!*************************************************************!*\ 333 !*** ./node_modules/core-js/modules/_add-to-unscopables.js ***! 334 \*************************************************************/ 335/*! no static exports found */ 336/***/ (function(module, exports, __webpack_require__) { 337 338// 22.1.3.31 Array.prototype[@@unscopables] 339var UNSCOPABLES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('unscopables'); 340var ArrayProto = Array.prototype; 341if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js")(ArrayProto, UNSCOPABLES, {}); 342module.exports = function (key) { 343 ArrayProto[UNSCOPABLES][key] = true; 344}; 345 346 347/***/ }), 348
vendor: 552 bytes, lines 349-364
349/***/ "./node_modules/core-js/modules/_an-instance.js": 350/*!******************************************************!*\ 351 !*** ./node_modules/core-js/modules/_an-instance.js ***! 352 \******************************************************/ 353/*! no static exports found */ 354/***/ (function(module, exports) { 355 356module.exports = function (it, Constructor, name, forbiddenField) { 357 if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { 358 throw TypeError(name + ': incorrect invocation!'); 359 } return it; 360}; 361 362 363/***/ }), 364
vendor: 546 bytes, lines 365-380
365/***/ "./node_modules/core-js/modules/_an-object.js": 366/*!****************************************************!*\ 367 !*** ./node_modules/core-js/modules/_an-object.js ***! 368 \****************************************************/ 369/*! no static exports found */ 370/***/ (function(module, exports, __webpack_require__) { 371 372var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 373module.exports = function (it) { 374 if (!isObject(it)) throw TypeError(it + ' is not an object!'); 375 return it; 376}; 377 378 379/***/ }), 380
vendor: 1,437 bytes, lines 381-418
381/***/ "./node_modules/core-js/modules/_array-copy-within.js": 382/*!************************************************************!*\ 383 !*** ./node_modules/core-js/modules/_array-copy-within.js ***! 384 \************************************************************/ 385/*! no static exports found */ 386/***/ (function(module, exports, __webpack_require__) { 387 388"use strict"; 389// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) 390 391var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); 392var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); 393var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 394 395module.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) { 396 var O = toObject(this); 397 var len = toLength(O.length); 398 var to = toAbsoluteIndex(target, len); 399 var from = toAbsoluteIndex(start, len); 400 var end = arguments.length > 2 ? arguments[2] : undefined; 401 var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); 402 var inc = 1; 403 if (from < to && to < from + count) { 404 inc = -1; 405 from += count - 1; 406 to += count - 1; 407 } 408 while (count-- > 0) { 409 if (from in O) O[to] = O[from]; 410 else delete O[to]; 411 to += inc; 412 from += inc; 413 } return O; 414}; 415 416 417/***/ }), 418
vendor: 1,176 bytes, lines 419-445
419/***/ "./node_modules/core-js/modules/_array-fill.js": 420/*!*****************************************************!*\ 421 !*** ./node_modules/core-js/modules/_array-fill.js ***! 422 \*****************************************************/ 423/*! no static exports found */ 424/***/ (function(module, exports, __webpack_require__) { 425 426"use strict"; 427// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) 428 429var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); 430var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); 431var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 432module.exports = function fill(value /* , start = 0, end = @length */) { 433 var O = toObject(this); 434 var length = toLength(O.length); 435 var aLen = arguments.length; 436 var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length); 437 var end = aLen > 2 ? arguments[2] : undefined; 438 var endPos = end === undefined ? length : toAbsoluteIndex(end, length); 439 while (endPos > index) O[index++] = value; 440 return O; 441}; 442 443 444/***/ }), 445
vendor: 1,473 bytes, lines 446-479
446/***/ "./node_modules/core-js/modules/_array-includes.js": 447/*!*********************************************************!*\ 448 !*** ./node_modules/core-js/modules/_array-includes.js ***! 449 \*********************************************************/ 450/*! no static exports found */ 451/***/ (function(module, exports, __webpack_require__) { 452 453// false -> Array#indexOf 454// true -> Array#includes 455var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); 456var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 457var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); 458module.exports = function (IS_INCLUDES) { 459 return function ($this, el, fromIndex) { 460 var O = toIObject($this); 461 var length = toLength(O.length); 462 var index = toAbsoluteIndex(fromIndex, length); 463 var value; 464 // Array#includes uses SameValueZero equality algorithm 465 // eslint-disable-next-line no-self-compare 466 if (IS_INCLUDES && el != el) while (length > index) { 467 value = O[index++]; 468 // eslint-disable-next-line no-self-compare 469 if (value != value) return true; 470 // Array#indexOf ignores holes, Array#includes - not 471 } else for (;length > index; index++) if (IS_INCLUDES || index in O) { 472 if (O[index] === el) return IS_INCLUDES || index || 0; 473 } return !IS_INCLUDES && -1; 474 }; 475}; 476 477 478/***/ }), 479
vendor: 2,161 bytes, lines 480-534
480/***/ "./node_modules/core-js/modules/_array-methods.js": 481/*!********************************************************!*\ 482 !*** ./node_modules/core-js/modules/_array-methods.js ***! 483 \********************************************************/ 484/*! no static exports found */ 485/***/ (function(module, exports, __webpack_require__) { 486 487// 0 -> Array#forEach 488// 1 -> Array#map 489// 2 -> Array#filter 490// 3 -> Array#some 491// 4 -> Array#every 492// 5 -> Array#find 493// 6 -> Array#findIndex 494var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); 495var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js"); 496var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); 497var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 498var asc = __webpack_require__(/*! ./_array-species-create */ "./node_modules/core-js/modules/_array-species-create.js"); 499module.exports = function (TYPE, $create) { 500 var IS_MAP = TYPE == 1; 501 var IS_FILTER = TYPE == 2; 502 var IS_SOME = TYPE == 3; 503 var IS_EVERY = TYPE == 4; 504 var IS_FIND_INDEX = TYPE == 6; 505 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; 506 var create = $create || asc; 507 return function ($this, callbackfn, that) { 508 var O = toObject($this); 509 var self = IObject(O); 510 var f = ctx(callbackfn, that, 3); 511 var length = toLength(self.length); 512 var index = 0; 513 var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; 514 var val, res; 515 for (;length > index; index++) if (NO_HOLES || index in self) { 516 val = self[index]; 517 res = f(val, index, O); 518 if (TYPE) { 519 if (IS_MAP) result[index] = res; // map 520 else if (res) switch (TYPE) { 521 case 3: return true; // some 522 case 5: return val; // find 523 case 6: return index; // findIndex 524 case 2: result.push(val); // filter 525 } else if (IS_EVERY) return false; // every 526 } 527 } 528 return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; 529 }; 530}; 531 532 533/***/ }), 534
vendor: 1,416 bytes, lines 535-573
535/***/ "./node_modules/core-js/modules/_array-reduce.js": 536/*!*******************************************************!*\ 537 !*** ./node_modules/core-js/modules/_array-reduce.js ***! 538 \*******************************************************/ 539/*! no static exports found */ 540/***/ (function(module, exports, __webpack_require__) { 541 542var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); 543var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); 544var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js"); 545var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 546 547module.exports = function (that, callbackfn, aLen, memo, isRight) { 548 aFunction(callbackfn); 549 var O = toObject(that); 550 var self = IObject(O); 551 var length = toLength(O.length); 552 var index = isRight ? length - 1 : 0; 553 var i = isRight ? -1 : 1; 554 if (aLen < 2) for (;;) { 555 if (index in self) { 556 memo = self[index]; 557 index += i; 558 break; 559 } 560 index += i; 561 if (isRight ? index < 0 : length <= index) { 562 throw TypeError('Reduce of empty array with no initial value'); 563 } 564 } 565 for (;isRight ? index >= 0 : length > index; index += i) if (index in self) { 566 memo = callbackfn(memo, self[index], index, O); 567 } 568 return memo; 569}; 570 571 572/***/ }), 573
vendor: 1,052 bytes, lines 574-600
574/***/ "./node_modules/core-js/modules/_array-species-constructor.js": 575/*!********************************************************************!*\ 576 !*** ./node_modules/core-js/modules/_array-species-constructor.js ***! 577 \********************************************************************/ 578/*! no static exports found */ 579/***/ (function(module, exports, __webpack_require__) { 580 581var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 582var isArray = __webpack_require__(/*! ./_is-array */ "./node_modules/core-js/modules/_is-array.js"); 583var SPECIES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species'); 584 585module.exports = function (original) { 586 var C; 587 if (isArray(original)) { 588 C = original.constructor; 589 // cross-realm fallback 590 if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; 591 if (isObject(C)) { 592 C = C[SPECIES]; 593 if (C === null) C = undefined; 594 } 595 } return C === undefined ? Array : C; 596}; 597 598 599/***/ }), 600
vendor: 675 bytes, lines 601-617
601/***/ "./node_modules/core-js/modules/_array-species-create.js": 602/*!***************************************************************!*\ 603 !*** ./node_modules/core-js/modules/_array-species-create.js ***! 604 \***************************************************************/ 605/*! no static exports found */ 606/***/ (function(module, exports, __webpack_require__) { 607 608// 9.4.2.3 ArraySpeciesCreate(originalArray, length) 609var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "./node_modules/core-js/modules/_array-species-constructor.js"); 610 611module.exports = function (original, length) { 612 return new (speciesConstructor(original))(length); 613}; 614 615 616/***/ }), 617
vendor: 1,402 bytes, lines 618-654
618/***/ "./node_modules/core-js/modules/_bind.js": 619/*!***********************************************!*\ 620 !*** ./node_modules/core-js/modules/_bind.js ***! 621 \***********************************************/ 622/*! no static exports found */ 623/***/ (function(module, exports, __webpack_require__) { 624 625"use strict"; 626 627var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); 628var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 629var invoke = __webpack_require__(/*! ./_invoke */ "./node_modules/core-js/modules/_invoke.js"); 630var arraySlice = [].slice; 631var factories = {}; 632 633var construct = function (F, len, args) { 634 if (!(len in factories)) { 635 for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']'; 636 // eslint-disable-next-line no-new-func 637 factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')'); 638 } return factories[len](F, args); 639}; 640 641module.exports = Function.bind || function bind(that /* , ...args */) { 642 var fn = aFunction(this); 643 var partArgs = arraySlice.call(arguments, 1); 644 var bound = function (/* args... */) { 645 var args = partArgs.concat(arraySlice.call(arguments)); 646 return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that); 647 }; 648 if (isObject(fn.prototype)) bound.prototype = fn.prototype; 649 return bound; 650}; 651 652 653/***/ }), 654
vendor: 1,154 bytes, lines 655-688
655/***/ "./node_modules/core-js/modules/_classof.js": 656/*!**************************************************!*\ 657 !*** ./node_modules/core-js/modules/_classof.js ***! 658 \**************************************************/ 659/*! no static exports found */ 660/***/ (function(module, exports, __webpack_require__) { 661 662// getting tag from 19.1.3.6 Object.prototype.toString() 663var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); 664var TAG = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toStringTag'); 665// ES3 wrong here 666var ARG = cof(function () { return arguments; }()) == 'Arguments'; 667 668// fallback for IE11 Script Access Denied error 669var tryGet = function (it, key) { 670 try { 671 return it[key]; 672 } catch (e) { /* empty */ } 673}; 674 675module.exports = function (it) { 676 var O, T, B; 677 return it === undefined ? 'Undefined' : it === null ? 'Null' 678 // @@toStringTag case 679 : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T 680 // builtinTag case 681 : ARG ? cof(O) 682 // ES3 arguments fallback 683 : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; 684}; 685 686 687/***/ }), 688
vendor: 389 bytes, lines 689-704
689/***/ "./node_modules/core-js/modules/_cof.js": 690/*!**********************************************!*\ 691 !*** ./node_modules/core-js/modules/_cof.js ***! 692 \**********************************************/ 693/*! no static exports found */ 694/***/ (function(module, exports) { 695 696var toString = {}.toString; 697 698module.exports = function (it) { 699 return toString.call(it).slice(8, -1); 700}; 701 702 703/***/ }), 704
vendor: 6,159 bytes, lines 705-860
705/***/ "./node_modules/core-js/modules/_collection-strong.js": 706/*!************************************************************!*\ 707 !*** ./node_modules/core-js/modules/_collection-strong.js ***! 708 \************************************************************/ 709/*! no static exports found */ 710/***/ (function(module, exports, __webpack_require__) { 711 712"use strict"; 713 714var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; 715var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js"); 716var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); 717var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); 718var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); 719var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); 720var $iterDefine = __webpack_require__(/*! ./_iter-define */ "./node_modules/core-js/modules/_iter-define.js"); 721var step = __webpack_require__(/*! ./_iter-step */ "./node_modules/core-js/modules/_iter-step.js"); 722var setSpecies = __webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js"); 723var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); 724var fastKey = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").fastKey; 725var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); 726var SIZE = DESCRIPTORS ? '_s' : 'size'; 727 728var getEntry = function (that, key) { 729 // fast case 730 var index = fastKey(key); 731 var entry; 732 if (index !== 'F') return that._i[index]; 733 // frozen object case 734 for (entry = that._f; entry; entry = entry.n) { 735 if (entry.k == key) return entry; 736 } 737}; 738 739module.exports = { 740 getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { 741 var C = wrapper(function (that, iterable) { 742 anInstance(that, C, NAME, '_i'); 743 that._t = NAME; // collection type 744 that._i = create(null); // index 745 that._f = undefined; // first entry 746 that._l = undefined; // last entry 747 that[SIZE] = 0; // size 748 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 749 }); 750 redefineAll(C.prototype, { 751 // 23.1.3.1 Map.prototype.clear() 752 // 23.2.3.2 Set.prototype.clear() 753 clear: function clear() { 754 for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { 755 entry.r = true; 756 if (entry.p) entry.p = entry.p.n = undefined; 757 delete data[entry.i]; 758 } 759 that._f = that._l = undefined; 760 that[SIZE] = 0; 761 }, 762 // 23.1.3.3 Map.prototype.delete(key) 763 // 23.2.3.4 Set.prototype.delete(value) 764 'delete': function (key) { 765 var that = validate(this, NAME); 766 var entry = getEntry(that, key); 767 if (entry) { 768 var next = entry.n; 769 var prev = entry.p; 770 delete that._i[entry.i]; 771 entry.r = true; 772 if (prev) prev.n = next; 773 if (next) next.p = prev; 774 if (that._f == entry) that._f = next; 775 if (that._l == entry) that._l = prev; 776 that[SIZE]--; 777 } return !!entry; 778 }, 779 // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) 780 // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) 781 forEach: function forEach(callbackfn /* , that = undefined */) { 782 validate(this, NAME); 783 var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); 784 var entry; 785 while (entry = entry ? entry.n : this._f) { 786 f(entry.v, entry.k, this); 787 // revert to the last existing entry 788 while (entry && entry.r) entry = entry.p; 789 } 790 }, 791 // 23.1.3.7 Map.prototype.has(key) 792 // 23.2.3.7 Set.prototype.has(value) 793 has: function has(key) { 794 return !!getEntry(validate(this, NAME), key); 795 } 796 }); 797 if (DESCRIPTORS) dP(C.prototype, 'size', { 798 get: function () { 799 return validate(this, NAME)[SIZE]; 800 } 801 }); 802 return C; 803 }, 804 def: function (that, key, value) { 805 var entry = getEntry(that, key); 806 var prev, index; 807 // change existing entry 808 if (entry) { 809 entry.v = value; 810 // create new entry 811 } else { 812 that._l = entry = { 813 i: index = fastKey(key, true), // <- index 814 k: key, // <- key 815 v: value, // <- value 816 p: prev = that._l, // <- previous entry 817 n: undefined, // <- next entry 818 r: false // <- removed 819 }; 820 if (!that._f) that._f = entry; 821 if (prev) prev.n = entry; 822 that[SIZE]++; 823 // add to index 824 if (index !== 'F') that._i[index] = entry; 825 } return that; 826 }, 827 getEntry: getEntry, 828 setStrong: function (C, NAME, IS_MAP) { 829 // add .keys, .values, .entries, [@@iterator] 830 // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 831 $iterDefine(C, NAME, function (iterated, kind) { 832 this._t = validate(iterated, NAME); // target 833 this._k = kind; // kind 834 this._l = undefined; // previous 835 }, function () { 836 var that = this; 837 var kind = that._k; 838 var entry = that._l; 839 // revert to the last existing entry 840 while (entry && entry.r) entry = entry.p; 841 // get next entry 842 if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { 843 // or finish the iteration 844 that._t = undefined; 845 return step(1); 846 } 847 // return step by kind 848 if (kind == 'keys') return step(0, entry.k); 849 if (kind == 'values') return step(0, entry.v); 850 return step(0, [entry.k, entry.v]); 851 }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); 852 853 // add [@@species], 23.1.2.2, 23.2.2.2 854 setSpecies(NAME); 855 } 856}; 857 858 859/***/ }), 860
vendor: 3,722 bytes, lines 861-957
861/***/ "./node_modules/core-js/modules/_collection-weak.js": 862/*!**********************************************************!*\ 863 !*** ./node_modules/core-js/modules/_collection-weak.js ***! 864 \**********************************************************/ 865/*! no static exports found */ 866/***/ (function(module, exports, __webpack_require__) { 867 868"use strict"; 869 870var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); 871var getWeak = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").getWeak; 872var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 873var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 874var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); 875var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); 876var createArrayMethod = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js"); 877var $has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); 878var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); 879var arrayFind = createArrayMethod(5); 880var arrayFindIndex = createArrayMethod(6); 881var id = 0; 882 883// fallback for uncaught frozen keys 884var uncaughtFrozenStore = function (that) { 885 return that._l || (that._l = new UncaughtFrozenStore()); 886}; 887var UncaughtFrozenStore = function () { 888 this.a = []; 889}; 890var findUncaughtFrozen = function (store, key) { 891 return arrayFind(store.a, function (it) { 892 return it[0] === key; 893 }); 894}; 895UncaughtFrozenStore.prototype = { 896 get: function (key) { 897 var entry = findUncaughtFrozen(this, key); 898 if (entry) return entry[1]; 899 }, 900 has: function (key) { 901 return !!findUncaughtFrozen(this, key); 902 }, 903 set: function (key, value) { 904 var entry = findUncaughtFrozen(this, key); 905 if (entry) entry[1] = value; 906 else this.a.push([key, value]); 907 }, 908 'delete': function (key) { 909 var index = arrayFindIndex(this.a, function (it) { 910 return it[0] === key; 911 }); 912 if (~index) this.a.splice(index, 1); 913 return !!~index; 914 } 915}; 916 917module.exports = { 918 getConstructor: function (wrapper, NAME, IS_MAP, ADDER) { 919 var C = wrapper(function (that, iterable) { 920 anInstance(that, C, NAME, '_i'); 921 that._t = NAME; // collection type 922 that._i = id++; // collection id 923 that._l = undefined; // leak store for uncaught frozen objects 924 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 925 }); 926 redefineAll(C.prototype, { 927 // 23.3.3.2 WeakMap.prototype.delete(key) 928 // 23.4.3.3 WeakSet.prototype.delete(value) 929 'delete': function (key) { 930 if (!isObject(key)) return false; 931 var data = getWeak(key); 932 if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); 933 return data && $has(data, this._i) && delete data[this._i]; 934 }, 935 // 23.3.3.4 WeakMap.prototype.has(key) 936 // 23.4.3.4 WeakSet.prototype.has(value) 937 has: function has(key) { 938 if (!isObject(key)) return false; 939 var data = getWeak(key); 940 if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); 941 return data && $has(data, this._i); 942 } 943 }); 944 return C; 945 }, 946 def: function (that, key, value) { 947 var data = getWeak(anObject(key), true); 948 if (data === true) uncaughtFrozenStore(that).set(key, value); 949 else data[that._i] = value; 950 return that; 951 }, 952 ufstore: uncaughtFrozenStore 953}; 954 955 956/***/ }), 957
vendor: 4,414 bytes, lines 958-1054
958/***/ "./node_modules/core-js/modules/_collection.js": 959/*!*****************************************************!*\ 960 !*** ./node_modules/core-js/modules/_collection.js ***! 961 \*****************************************************/ 962/*! no static exports found */ 963/***/ (function(module, exports, __webpack_require__) { 964 965"use strict"; 966 967var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 968var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 969var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); 970var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); 971var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js"); 972var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); 973var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); 974var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 975var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 976var $iterDetect = __webpack_require__(/*! ./_iter-detect */ "./node_modules/core-js/modules/_iter-detect.js"); 977var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js"); 978var inheritIfRequired = __webpack_require__(/*! ./_inherit-if-required */ "./node_modules/core-js/modules/_inherit-if-required.js"); 979 980module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { 981 var Base = global[NAME]; 982 var C = Base; 983 var ADDER = IS_MAP ? 'set' : 'add'; 984 var proto = C && C.prototype; 985 var O = {}; 986 var fixMethod = function (KEY) { 987 var fn = proto[KEY]; 988 redefine(proto, KEY, 989 KEY == 'delete' ? function (a) { 990 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); 991 } : KEY == 'has' ? function has(a) { 992 return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); 993 } : KEY == 'get' ? function get(a) { 994 return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); 995 } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; } 996 : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; } 997 ); 998 }; 999 if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { 1000 new C().entries().next(); 1001 }))) { 1002 // create collection constructor 1003 C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); 1004 redefineAll(C.prototype, methods); 1005 meta.NEED = true; 1006 } else { 1007 var instance = new C(); 1008 // early implementations not supports chaining 1009 var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; 1010 // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false 1011 var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); }); 1012 // most early implementations doesn't supports iterables, most modern - not close it correctly 1013 var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new 1014 // for early implementations -0 and +0 not the same 1015 var BUGGY_ZERO = !IS_WEAK && fails(function () { 1016 // V8 ~ Chromium 42- fails only with 5+ elements 1017 var $instance = new C(); 1018 var index = 5; 1019 while (index--) $instance[ADDER](index, index); 1020 return !$instance.has(-0); 1021 }); 1022 if (!ACCEPT_ITERABLES) { 1023 C = wrapper(function (target, iterable) { 1024 anInstance(target, C, NAME); 1025 var that = inheritIfRequired(new Base(), target, C); 1026 if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); 1027 return that; 1028 }); 1029 C.prototype = proto; 1030 proto.constructor = C; 1031 } 1032 if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { 1033 fixMethod('delete'); 1034 fixMethod('has'); 1035 IS_MAP && fixMethod('get'); 1036 } 1037 if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); 1038 // weak collections should not contains .clear method 1039 if (IS_WEAK && proto.clear) delete proto.clear; 1040 } 1041 1042 setToStringTag(C, NAME); 1043 1044 O[NAME] = C; 1045 $export($export.G + $export.W + $export.F * (C != Base), O); 1046 1047 if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); 1048 1049 return C; 1050}; 1051 1052 1053/***/ }), 1054
vendor: 409 bytes, lines 1055-1067
1055/***/ "./node_modules/core-js/modules/_core.js": 1056/*!***********************************************!*\ 1057 !*** ./node_modules/core-js/modules/_core.js ***! 1058 \***********************************************/ 1059/*! no static exports found */ 1060/***/ (function(module, exports) { 1061 1062var core = module.exports = { version: '2.5.7' }; 1063if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef 1064 1065 1066/***/ }), 1067
vendor: 756 bytes, lines 1068-1087
1068/***/ "./node_modules/core-js/modules/_create-property.js": 1069/*!**********************************************************!*\ 1070 !*** ./node_modules/core-js/modules/_create-property.js ***! 1071 \**********************************************************/ 1072/*! no static exports found */ 1073/***/ (function(module, exports, __webpack_require__) { 1074 1075"use strict"; 1076 1077var $defineProperty = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); 1078var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); 1079 1080module.exports = function (object, index, value) { 1081 if (index in object) $defineProperty.f(object, index, createDesc(0, value)); 1082 else object[index] = value; 1083}; 1084 1085 1086/***/ }), 1087
vendor: 889 bytes, lines 1088-1118
1088/***/ "./node_modules/core-js/modules/_ctx.js": 1089/*!**********************************************!*\ 1090 !*** ./node_modules/core-js/modules/_ctx.js ***! 1091 \**********************************************/ 1092/*! no static exports found */ 1093/***/ (function(module, exports, __webpack_require__) { 1094 1095// optional / simple context binding 1096var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); 1097module.exports = function (fn, that, length) { 1098 aFunction(fn); 1099 if (that === undefined) return fn; 1100 switch (length) { 1101 case 1: return function (a) { 1102 return fn.call(that, a); 1103 }; 1104 case 2: return function (a, b) { 1105 return fn.call(that, a, b); 1106 }; 1107 case 3: return function (a, b, c) { 1108 return fn.call(that, a, b, c); 1109 }; 1110 } 1111 return function (/* ...args */) { 1112 return fn.apply(that, arguments); 1113 }; 1114}; 1115 1116 1117/***/ }), 1118
vendor: 1,421 bytes, lines 1119-1156
1119/***/ "./node_modules/core-js/modules/_date-to-iso-string.js": 1120/*!*************************************************************!*\ 1121 !*** ./node_modules/core-js/modules/_date-to-iso-string.js ***! 1122 \*************************************************************/ 1123/*! no static exports found */ 1124/***/ (function(module, exports, __webpack_require__) { 1125 1126"use strict"; 1127 1128// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() 1129var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 1130var getTime = Date.prototype.getTime; 1131var $toISOString = Date.prototype.toISOString; 1132 1133var lz = function (num) { 1134 return num > 9 ? num : '0' + num; 1135}; 1136 1137// PhantomJS / old WebKit has a broken implementations 1138module.exports = (fails(function () { 1139 return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; 1140}) || !fails(function () { 1141 $toISOString.call(new Date(NaN)); 1142})) ? function toISOString() { 1143 if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); 1144 var d = this; 1145 var y = d.getUTCFullYear(); 1146 var m = d.getUTCMilliseconds(); 1147 var s = y < 0 ? '-' : y > 9999 ? '+' : ''; 1148 return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + 1149 '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + 1150 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + 1151 ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z'; 1152} : $toISOString; 1153 1154 1155/***/ }), 1156
vendor: 809 bytes, lines 1157-1177
1157/***/ "./node_modules/core-js/modules/_date-to-primitive.js": 1158/*!************************************************************!*\ 1159 !*** ./node_modules/core-js/modules/_date-to-primitive.js ***! 1160 \************************************************************/ 1161/*! no static exports found */ 1162/***/ (function(module, exports, __webpack_require__) { 1163 1164"use strict"; 1165 1166var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 1167var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); 1168var NUMBER = 'number'; 1169 1170module.exports = function (hint) { 1171 if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint'); 1172 return toPrimitive(anObject(this), hint != NUMBER); 1173}; 1174 1175 1176/***/ }), 1177
vendor: 461 bytes, lines 1178-1193
1178/***/ "./node_modules/core-js/modules/_defined.js": 1179/*!**************************************************!*\ 1180 !*** ./node_modules/core-js/modules/_defined.js ***! 1181 \**************************************************/ 1182/*! no static exports found */ 1183/***/ (function(module, exports) { 1184 1185// 7.2.1 RequireObjectCoercible(argument) 1186module.exports = function (it) { 1187 if (it == undefined) throw TypeError("Can't call method on " + it); 1188 return it; 1189}; 1190 1191 1192/***/ }), 1193
vendor: 580 bytes, lines 1194-1208
1194/***/ "./node_modules/core-js/modules/_descriptors.js": 1195/*!******************************************************!*\ 1196 !*** ./node_modules/core-js/modules/_descriptors.js ***! 1197 \******************************************************/ 1198/*! no static exports found */ 1199/***/ (function(module, exports, __webpack_require__) { 1200 1201// Thank's IE8 for his funny defineProperty 1202module.exports = !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 1203 return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; 1204}); 1205 1206 1207/***/ }), 1208
vendor: 746 bytes, lines 1209-1226
1209/***/ "./node_modules/core-js/modules/_dom-create.js": 1210/*!*****************************************************!*\ 1211 !*** ./node_modules/core-js/modules/_dom-create.js ***! 1212 \*****************************************************/ 1213/*! no static exports found */ 1214/***/ (function(module, exports, __webpack_require__) { 1215 1216var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 1217var document = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").document; 1218// typeof document.createElement is 'object' in old IE 1219var is = isObject(document) && isObject(document.createElement); 1220module.exports = function (it) { 1221 return is ? document.createElement(it) : {}; 1222}; 1223 1224 1225/***/ }), 1226
vendor: 483 bytes, lines 1227-1241
1227/***/ "./node_modules/core-js/modules/_enum-bug-keys.js": 1228/*!********************************************************!*\ 1229 !*** ./node_modules/core-js/modules/_enum-bug-keys.js ***! 1230 \********************************************************/ 1231/*! no static exports found */ 1232/***/ (function(module, exports) { 1233 1234// IE 8- don't enum bug keys 1235module.exports = ( 1236 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' 1237).split(','); 1238 1239 1240/***/ }), 1241
vendor: 994 bytes, lines 1242-1267
1242/***/ "./node_modules/core-js/modules/_enum-keys.js": 1243/*!****************************************************!*\ 1244 !*** ./node_modules/core-js/modules/_enum-keys.js ***! 1245 \****************************************************/ 1246/*! no static exports found */ 1247/***/ (function(module, exports, __webpack_require__) { 1248 1249// all enumerable object keys, includes symbols 1250var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); 1251var gOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/core-js/modules/_object-gops.js"); 1252var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js"); 1253module.exports = function (it) { 1254 var result = getKeys(it); 1255 var getSymbols = gOPS.f; 1256 if (getSymbols) { 1257 var symbols = getSymbols(it); 1258 var isEnum = pIE.f; 1259 var i = 0; 1260 var key; 1261 while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); 1262 } return result; 1263}; 1264 1265 1266/***/ }), 1267
vendor: 2,217 bytes, lines 1268-1321
1268/***/ "./node_modules/core-js/modules/_export.js": 1269/*!*************************************************!*\ 1270 !*** ./node_modules/core-js/modules/_export.js ***! 1271 \*************************************************/ 1272/*! no static exports found */ 1273/***/ (function(module, exports, __webpack_require__) { 1274 1275var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 1276var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js"); 1277var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); 1278var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); 1279var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); 1280var PROTOTYPE = 'prototype'; 1281 1282var $export = function (type, name, source) { 1283 var IS_FORCED = type & $export.F; 1284 var IS_GLOBAL = type & $export.G; 1285 var IS_STATIC = type & $export.S; 1286 var IS_PROTO = type & $export.P; 1287 var IS_BIND = type & $export.B; 1288 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; 1289 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); 1290 var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); 1291 var key, own, out, exp; 1292 if (IS_GLOBAL) source = name; 1293 for (key in source) { 1294 // contains in native 1295 own = !IS_FORCED && target && target[key] !== undefined; 1296 // export native or passed 1297 out = (own ? target : source)[key]; 1298 // bind timers to global for call from export context 1299 exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; 1300 // extend global 1301 if (target) redefine(target, key, out, type & $export.U); 1302 // export 1303 if (exports[key] != out) hide(exports, key, exp); 1304 if (IS_PROTO && expProto[key] != out) expProto[key] = out; 1305 } 1306}; 1307global.core = core; 1308// type bitmap 1309$export.F = 1; // forced 1310$export.G = 2; // global 1311$export.S = 4; // static 1312$export.P = 8; // proto 1313$export.B = 16; // bind 1314$export.W = 32; // wrap 1315$export.U = 64; // safe 1316$export.R = 128; // real proto method for `library` 1317module.exports = $export; 1318 1319 1320/***/ }), 1321
vendor: 661 bytes, lines 1322-1344
1322/***/ "./node_modules/core-js/modules/_fails-is-regexp.js": 1323/*!**********************************************************!*\ 1324 !*** ./node_modules/core-js/modules/_fails-is-regexp.js ***! 1325 \**********************************************************/ 1326/*! no static exports found */ 1327/***/ (function(module, exports, __webpack_require__) { 1328 1329var MATCH = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('match'); 1330module.exports = function (KEY) { 1331 var re = /./; 1332 try { 1333 '/./'[KEY](re); 1334 } catch (e) { 1335 try { 1336 re[MATCH] = false; 1337 return !'/./'[KEY](re); 1338 } catch (f) { /* empty */ } 1339 } return true; 1340}; 1341 1342 1343/***/ }), 1344
vendor: 395 bytes, lines 1345-1362
1345/***/ "./node_modules/core-js/modules/_fails.js": 1346/*!************************************************!*\ 1347 !*** ./node_modules/core-js/modules/_fails.js ***! 1348 \************************************************/ 1349/*! no static exports found */ 1350/***/ (function(module, exports) { 1351 1352module.exports = function (exec) { 1353 try { 1354 return !!exec(); 1355 } catch (e) { 1356 return true; 1357 } 1358}; 1359 1360 1361/***/ }), 1362
vendor: 1,572 bytes, lines 1363-1402
1363/***/ "./node_modules/core-js/modules/_fix-re-wks.js": 1364/*!*****************************************************!*\ 1365 !*** ./node_modules/core-js/modules/_fix-re-wks.js ***! 1366 \*****************************************************/ 1367/*! no static exports found */ 1368/***/ (function(module, exports, __webpack_require__) { 1369 1370"use strict"; 1371 1372var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); 1373var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); 1374var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 1375var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); 1376var wks = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js"); 1377 1378module.exports = function (KEY, length, exec) { 1379 var SYMBOL = wks(KEY); 1380 var fns = exec(defined, SYMBOL, ''[KEY]); 1381 var strfn = fns[0]; 1382 var rxfn = fns[1]; 1383 if (fails(function () { 1384 var O = {}; 1385 O[SYMBOL] = function () { return 7; }; 1386 return ''[KEY](O) != 7; 1387 })) { 1388 redefine(String.prototype, KEY, strfn); 1389 hide(RegExp.prototype, SYMBOL, length == 2 1390 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) 1391 // 21.2.5.11 RegExp.prototype[@@split](string, limit) 1392 ? function (string, arg) { return rxfn.call(string, this, arg); } 1393 // 21.2.5.6 RegExp.prototype[@@match](string) 1394 // 21.2.5.9 RegExp.prototype[@@search](string) 1395 : function (string) { return rxfn.call(string, this); } 1396 ); 1397 } 1398}; 1399 1400 1401/***/ }), 1402
vendor: 747 bytes, lines 1403-1427
1403/***/ "./node_modules/core-js/modules/_flags.js": 1404/*!************************************************!*\ 1405 !*** ./node_modules/core-js/modules/_flags.js ***! 1406 \************************************************/ 1407/*! no static exports found */ 1408/***/ (function(module, exports, __webpack_require__) { 1409 1410"use strict"; 1411 1412// 21.2.5.3 get RegExp.prototype.flags 1413var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 1414module.exports = function () { 1415 var that = anObject(this); 1416 var result = ''; 1417 if (that.global) result += 'g'; 1418 if (that.ignoreCase) result += 'i'; 1419 if (that.multiline) result += 'm'; 1420 if (that.unicode) result += 'u'; 1421 if (that.sticky) result += 'y'; 1422 return result; 1423}; 1424 1425 1426/***/ }), 1427
vendor: 1,888 bytes, lines 1428-1463
1428/***/ "./node_modules/core-js/modules/_for-of.js": 1429/*!*************************************************!*\ 1430 !*** ./node_modules/core-js/modules/_for-of.js ***! 1431 \*************************************************/ 1432/*! no static exports found */ 1433/***/ (function(module, exports, __webpack_require__) { 1434 1435var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); 1436var call = __webpack_require__(/*! ./_iter-call */ "./node_modules/core-js/modules/_iter-call.js"); 1437var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "./node_modules/core-js/modules/_is-array-iter.js"); 1438var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 1439var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 1440var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "./node_modules/core-js/modules/core.get-iterator-method.js"); 1441var BREAK = {}; 1442var RETURN = {}; 1443var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { 1444 var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); 1445 var f = ctx(fn, that, entries ? 2 : 1); 1446 var index = 0; 1447 var length, step, iterator, result; 1448 if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); 1449 // fast case for arrays with default iterator 1450 if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { 1451 result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); 1452 if (result === BREAK || result === RETURN) return result; 1453 } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { 1454 result = call(iterator, f, step.value, entries); 1455 if (result === BREAK || result === RETURN) return result; 1456 } 1457}; 1458exports.BREAK = BREAK; 1459exports.RETURN = RETURN; 1460 1461 1462/***/ }), 1463
vendor: 664 bytes, lines 1464-1480
1464/***/ "./node_modules/core-js/modules/_global.js": 1465/*!*************************************************!*\ 1466 !*** ./node_modules/core-js/modules/_global.js ***! 1467 \*************************************************/ 1468/*! no static exports found */ 1469/***/ (function(module, exports) { 1470 1471// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 1472var global = module.exports = typeof window != 'undefined' && window.Math == Math 1473 ? window : typeof self != 'undefined' && self.Math == Math ? self 1474 // eslint-disable-next-line no-new-func 1475 : Function('return this')(); 1476if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef 1477 1478 1479/***/ }), 1480
vendor: 403 bytes, lines 1481-1495
1481/***/ "./node_modules/core-js/modules/_has.js": 1482/*!**********************************************!*\ 1483 !*** ./node_modules/core-js/modules/_has.js ***! 1484 \**********************************************/ 1485/*! no static exports found */ 1486/***/ (function(module, exports) { 1487 1488var hasOwnProperty = {}.hasOwnProperty; 1489module.exports = function (it, key) { 1490 return hasOwnProperty.call(it, key); 1491}; 1492 1493 1494/***/ }), 1495
vendor: 792 bytes, lines 1496-1514
1496/***/ "./node_modules/core-js/modules/_hide.js": 1497/*!***********************************************!*\ 1498 !*** ./node_modules/core-js/modules/_hide.js ***! 1499 \***********************************************/ 1500/*! no static exports found */ 1501/***/ (function(module, exports, __webpack_require__) { 1502 1503var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); 1504var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); 1505module.exports = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? function (object, key, value) { 1506 return dP.f(object, key, createDesc(1, value)); 1507} : function (object, key, value) { 1508 object[key] = value; 1509 return object; 1510}; 1511 1512 1513/***/ }), 1514
vendor: 470 bytes, lines 1515-1527
1515/***/ "./node_modules/core-js/modules/_html.js": 1516/*!***********************************************!*\ 1517 !*** ./node_modules/core-js/modules/_html.js ***! 1518 \***********************************************/ 1519/*! no static exports found */ 1520/***/ (function(module, exports, __webpack_require__) { 1521 1522var document = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").document; 1523module.exports = document && document.documentElement; 1524 1525 1526/***/ }), 1527
vendor: 738 bytes, lines 1528-1541
1528/***/ "./node_modules/core-js/modules/_ie8-dom-define.js": 1529/*!*********************************************************!*\ 1530 !*** ./node_modules/core-js/modules/_ie8-dom-define.js ***! 1531 \*********************************************************/ 1532/*! no static exports found */ 1533/***/ (function(module, exports, __webpack_require__) { 1534 1535module.exports = !__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 1536 return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "./node_modules/core-js/modules/_dom-create.js")('div'), 'a', { get: function () { return 7; } }).a != 7; 1537}); 1538 1539 1540/***/ }), 1541
vendor: 833 bytes, lines 1542-1561
1542/***/ "./node_modules/core-js/modules/_inherit-if-required.js": 1543/*!**************************************************************!*\ 1544 !*** ./node_modules/core-js/modules/_inherit-if-required.js ***! 1545 \**************************************************************/ 1546/*! no static exports found */ 1547/***/ (function(module, exports, __webpack_require__) { 1548 1549var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 1550var setPrototypeOf = __webpack_require__(/*! ./_set-proto */ "./node_modules/core-js/modules/_set-proto.js").set; 1551module.exports = function (that, target, C) { 1552 var S = target.constructor; 1553 var P; 1554 if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { 1555 setPrototypeOf(that, P); 1556 } return that; 1557}; 1558 1559 1560/***/ }), 1561
vendor: 996 bytes, lines 1562-1588
1562/***/ "./node_modules/core-js/modules/_invoke.js": 1563/*!*************************************************!*\ 1564 !*** ./node_modules/core-js/modules/_invoke.js ***! 1565 \*************************************************/ 1566/*! no static exports found */ 1567/***/ (function(module, exports) { 1568 1569// fast apply, http://jsperf.lnkit.com/fast-apply/5 1570module.exports = function (fn, args, that) { 1571 var un = that === undefined; 1572 switch (args.length) { 1573 case 0: return un ? fn() 1574 : fn.call(that); 1575 case 1: return un ? fn(args[0]) 1576 : fn.call(that, args[0]); 1577 case 2: return un ? fn(args[0], args[1]) 1578 : fn.call(that, args[0], args[1]); 1579 case 3: return un ? fn(args[0], args[1], args[2]) 1580 : fn.call(that, args[0], args[1], args[2]); 1581 case 4: return un ? fn(args[0], args[1], args[2], args[3]) 1582 : fn.call(that, args[0], args[1], args[2], args[3]); 1583 } return fn.apply(that, args); 1584}; 1585 1586 1587/***/ }), 1588
vendor: 667 bytes, lines 1589-1605
1589/***/ "./node_modules/core-js/modules/_iobject.js": 1590/*!**************************************************!*\ 1591 !*** ./node_modules/core-js/modules/_iobject.js ***! 1592 \**************************************************/ 1593/*! no static exports found */ 1594/***/ (function(module, exports, __webpack_require__) { 1595 1596// fallback for non-array-like ES3 and non-enumerable old V8 strings 1597var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); 1598// eslint-disable-next-line no-prototype-builtins 1599module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { 1600 return cof(it) == 'String' ? it.split('') : Object(it); 1601}; 1602 1603 1604/***/ }), 1605
vendor: 745 bytes, lines 1606-1624
1606/***/ "./node_modules/core-js/modules/_is-array-iter.js": 1607/*!********************************************************!*\ 1608 !*** ./node_modules/core-js/modules/_is-array-iter.js ***! 1609 \********************************************************/ 1610/*! no static exports found */ 1611/***/ (function(module, exports, __webpack_require__) { 1612 1613// check on default Array iterator 1614var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); 1615var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'); 1616var ArrayProto = Array.prototype; 1617 1618module.exports = function (it) { 1619 return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); 1620}; 1621 1622 1623/***/ }), 1624
vendor: 529 bytes, lines 1625-1640
1625/***/ "./node_modules/core-js/modules/_is-array.js": 1626/*!***************************************************!*\ 1627 !*** ./node_modules/core-js/modules/_is-array.js ***! 1628 \***************************************************/ 1629/*! no static exports found */ 1630/***/ (function(module, exports, __webpack_require__) { 1631 1632// 7.2.2 IsArray(argument) 1633var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); 1634module.exports = Array.isArray || function isArray(arg) { 1635 return cof(arg) == 'Array'; 1636}; 1637 1638 1639/***/ }), 1640
vendor: 602 bytes, lines 1641-1657
1641/***/ "./node_modules/core-js/modules/_is-integer.js": 1642/*!*****************************************************!*\ 1643 !*** ./node_modules/core-js/modules/_is-integer.js ***! 1644 \*****************************************************/ 1645/*! no static exports found */ 1646/***/ (function(module, exports, __webpack_require__) { 1647 1648// 20.1.2.3 Number.isInteger(number) 1649var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 1650var floor = Math.floor; 1651module.exports = function isInteger(it) { 1652 return !isObject(it) && isFinite(it) && floor(it) === it; 1653}; 1654 1655 1656/***/ }), 1657
vendor: 417 bytes, lines 1658-1671
1658/***/ "./node_modules/core-js/modules/_is-object.js": 1659/*!****************************************************!*\ 1660 !*** ./node_modules/core-js/modules/_is-object.js ***! 1661 \****************************************************/ 1662/*! no static exports found */ 1663/***/ (function(module, exports) { 1664 1665module.exports = function (it) { 1666 return typeof it === 'object' ? it !== null : typeof it === 'function'; 1667}; 1668 1669 1670/***/ }), 1671
vendor: 797 bytes, lines 1672-1690
1672/***/ "./node_modules/core-js/modules/_is-regexp.js": 1673/*!****************************************************!*\ 1674 !*** ./node_modules/core-js/modules/_is-regexp.js ***! 1675 \****************************************************/ 1676/*! no static exports found */ 1677/***/ (function(module, exports, __webpack_require__) { 1678 1679// 7.2.8 IsRegExp(argument) 1680var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 1681var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); 1682var MATCH = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('match'); 1683module.exports = function (it) { 1684 var isRegExp; 1685 return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); 1686}; 1687 1688 1689/***/ }), 1690
vendor: 802 bytes, lines 1691-1713
1691/***/ "./node_modules/core-js/modules/_iter-call.js": 1692/*!****************************************************!*\ 1693 !*** ./node_modules/core-js/modules/_iter-call.js ***! 1694 \****************************************************/ 1695/*! no static exports found */ 1696/***/ (function(module, exports, __webpack_require__) { 1697 1698// call something on iterator step with safe closing on error 1699var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 1700module.exports = function (iterator, fn, value, entries) { 1701 try { 1702 return entries ? fn(anObject(value)[0], value[1]) : fn(value); 1703 // 7.4.6 IteratorClose(iterator, completion) 1704 } catch (e) { 1705 var ret = iterator['return']; 1706 if (ret !== undefined) anObject(ret.call(iterator)); 1707 throw e; 1708 } 1709}; 1710 1711 1712/***/ }), 1713
vendor: 1,188 bytes, lines 1714-1738
1714/***/ "./node_modules/core-js/modules/_iter-create.js": 1715/*!******************************************************!*\ 1716 !*** ./node_modules/core-js/modules/_iter-create.js ***! 1717 \******************************************************/ 1718/*! no static exports found */ 1719/***/ (function(module, exports, __webpack_require__) { 1720 1721"use strict"; 1722 1723var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js"); 1724var descriptor = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); 1725var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js"); 1726var IteratorPrototype = {}; 1727 1728// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() 1729__webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'), function () { return this; }); 1730 1731module.exports = function (Constructor, NAME, next) { 1732 Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); 1733 setToStringTag(Constructor, NAME + ' Iterator'); 1734}; 1735 1736 1737/***/ }), 1738
vendor: 3,686 bytes, lines 1739-1819
1739/***/ "./node_modules/core-js/modules/_iter-define.js": 1740/*!******************************************************!*\ 1741 !*** ./node_modules/core-js/modules/_iter-define.js ***! 1742 \******************************************************/ 1743/*! no static exports found */ 1744/***/ (function(module, exports, __webpack_require__) { 1745 1746"use strict"; 1747 1748var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js"); 1749var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 1750var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); 1751var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); 1752var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); 1753var $iterCreate = __webpack_require__(/*! ./_iter-create */ "./node_modules/core-js/modules/_iter-create.js"); 1754var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js"); 1755var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); 1756var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'); 1757var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` 1758var FF_ITERATOR = '@@iterator'; 1759var KEYS = 'keys'; 1760var VALUES = 'values'; 1761 1762var returnThis = function () { return this; }; 1763 1764module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { 1765 $iterCreate(Constructor, NAME, next); 1766 var getMethod = function (kind) { 1767 if (!BUGGY && kind in proto) return proto[kind]; 1768 switch (kind) { 1769 case KEYS: return function keys() { return new Constructor(this, kind); }; 1770 case VALUES: return function values() { return new Constructor(this, kind); }; 1771 } return function entries() { return new Constructor(this, kind); }; 1772 }; 1773 var TAG = NAME + ' Iterator'; 1774 var DEF_VALUES = DEFAULT == VALUES; 1775 var VALUES_BUG = false; 1776 var proto = Base.prototype; 1777 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; 1778 var $default = $native || getMethod(DEFAULT); 1779 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; 1780 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; 1781 var methods, key, IteratorPrototype; 1782 // Fix native 1783 if ($anyNative) { 1784 IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); 1785 if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { 1786 // Set @@toStringTag to native iterators 1787 setToStringTag(IteratorPrototype, TAG, true); 1788 // fix for some old engines 1789 if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); 1790 } 1791 } 1792 // fix Array#{values, @@iterator}.name in V8 / FF 1793 if (DEF_VALUES && $native && $native.name !== VALUES) { 1794 VALUES_BUG = true; 1795 $default = function values() { return $native.call(this); }; 1796 } 1797 // Define iterator 1798 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { 1799 hide(proto, ITERATOR, $default); 1800 } 1801 // Plug for library 1802 Iterators[NAME] = $default; 1803 Iterators[TAG] = returnThis; 1804 if (DEFAULT) { 1805 methods = { 1806 values: DEF_VALUES ? $default : getMethod(VALUES), 1807 keys: IS_SET ? $default : getMethod(KEYS), 1808 entries: $entries 1809 }; 1810 if (FORCED) for (key in methods) { 1811 if (!(key in proto)) redefine(proto, key, methods[key]); 1812 } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); 1813 } 1814 return methods; 1815}; 1816 1817 1818/***/ }), 1819
vendor: 1,039 bytes, lines 1820-1852
1820/***/ "./node_modules/core-js/modules/_iter-detect.js": 1821/*!******************************************************!*\ 1822 !*** ./node_modules/core-js/modules/_iter-detect.js ***! 1823 \******************************************************/ 1824/*! no static exports found */ 1825/***/ (function(module, exports, __webpack_require__) { 1826 1827var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'); 1828var SAFE_CLOSING = false; 1829 1830try { 1831 var riter = [7][ITERATOR](); 1832 riter['return'] = function () { SAFE_CLOSING = true; }; 1833 // eslint-disable-next-line no-throw-literal 1834 Array.from(riter, function () { throw 2; }); 1835} catch (e) { /* empty */ } 1836 1837module.exports = function (exec, skipClosing) { 1838 if (!skipClosing && !SAFE_CLOSING) return false; 1839 var safe = false; 1840 try { 1841 var arr = [7]; 1842 var iter = arr[ITERATOR](); 1843 iter.next = function () { return { done: safe = true }; }; 1844 arr[ITERATOR] = function () { return iter; }; 1845 exec(arr); 1846 } catch (e) { /* empty */ } 1847 return safe; 1848}; 1849 1850 1851/***/ }), 1852
vendor: 393 bytes, lines 1853-1866
1853/***/ "./node_modules/core-js/modules/_iter-step.js": 1854/*!****************************************************!*\ 1855 !*** ./node_modules/core-js/modules/_iter-step.js ***! 1856 \****************************************************/ 1857/*! no static exports found */ 1858/***/ (function(module, exports) { 1859 1860module.exports = function (done, value) { 1861 return { value: value, done: !!done }; 1862}; 1863 1864 1865/***/ }), 1866
vendor: 328 bytes, lines 1867-1878
1867/***/ "./node_modules/core-js/modules/_iterators.js": 1868/*!****************************************************!*\ 1869 !*** ./node_modules/core-js/modules/_iterators.js ***! 1870 \****************************************************/ 1871/*! no static exports found */ 1872/***/ (function(module, exports) { 1873 1874module.exports = {}; 1875 1876 1877/***/ }), 1878
vendor: 323 bytes, lines 1879-1890
1879/***/ "./node_modules/core-js/modules/_library.js": 1880/*!**************************************************!*\ 1881 !*** ./node_modules/core-js/modules/_library.js ***! 1882 \**************************************************/ 1883/*! no static exports found */ 1884/***/ (function(module, exports) { 1885 1886module.exports = false; 1887 1888 1889/***/ }), 1890
vendor: 654 bytes, lines 1891-1911
1891/***/ "./node_modules/core-js/modules/_math-expm1.js": 1892/*!*****************************************************!*\ 1893 !*** ./node_modules/core-js/modules/_math-expm1.js ***! 1894 \*****************************************************/ 1895/*! no static exports found */ 1896/***/ (function(module, exports) { 1897 1898// 20.2.2.14 Math.expm1(x) 1899var $expm1 = Math.expm1; 1900module.exports = (!$expm1 1901 // Old FF bug 1902 || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 1903 // Tor Browser bug 1904 || $expm1(-2e-17) != -2e-17 1905) ? function expm1(x) { 1906 return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1; 1907} : $expm1; 1908 1909 1910/***/ }), 1911
vendor: 1,116 bytes, lines 1912-1945
1912/***/ "./node_modules/core-js/modules/_math-fround.js": 1913/*!******************************************************!*\ 1914 !*** ./node_modules/core-js/modules/_math-fround.js ***! 1915 \******************************************************/ 1916/*! no static exports found */ 1917/***/ (function(module, exports, __webpack_require__) { 1918 1919// 20.2.2.16 Math.fround(x) 1920var sign = __webpack_require__(/*! ./_math-sign */ "./node_modules/core-js/modules/_math-sign.js"); 1921var pow = Math.pow; 1922var EPSILON = pow(2, -52); 1923var EPSILON32 = pow(2, -23); 1924var MAX32 = pow(2, 127) * (2 - EPSILON32); 1925var MIN32 = pow(2, -126); 1926 1927var roundTiesToEven = function (n) { 1928 return n + 1 / EPSILON - 1 / EPSILON; 1929}; 1930 1931module.exports = Math.fround || function fround(x) { 1932 var $abs = Math.abs(x); 1933 var $sign = sign(x); 1934 var a, result; 1935 if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; 1936 a = (1 + EPSILON32 / EPSILON) * $abs; 1937 result = a - (a - $abs); 1938 // eslint-disable-next-line no-self-compare 1939 if (result > MAX32 || result != result) return $sign * Infinity; 1940 return $sign * result; 1941}; 1942 1943 1944/***/ }), 1945
vendor: 465 bytes, lines 1946-1960
1946/***/ "./node_modules/core-js/modules/_math-log1p.js": 1947/*!*****************************************************!*\ 1948 !*** ./node_modules/core-js/modules/_math-log1p.js ***! 1949 \*****************************************************/ 1950/*! no static exports found */ 1951/***/ (function(module, exports) { 1952 1953// 20.2.2.20 Math.log1p(x) 1954module.exports = Math.log1p || function log1p(x) { 1955 return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x); 1956}; 1957 1958 1959/***/ }), 1960
vendor: 486 bytes, lines 1961-1976
1961/***/ "./node_modules/core-js/modules/_math-sign.js": 1962/*!****************************************************!*\ 1963 !*** ./node_modules/core-js/modules/_math-sign.js ***! 1964 \****************************************************/ 1965/*! no static exports found */ 1966/***/ (function(module, exports) { 1967 1968// 20.2.2.28 Math.sign(x) 1969module.exports = Math.sign || function sign(x) { 1970 // eslint-disable-next-line no-self-compare 1971 return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; 1972}; 1973 1974 1975/***/ }), 1976
vendor: 2,170 bytes, lines 1977-2040
1977/***/ "./node_modules/core-js/modules/_meta.js": 1978/*!***********************************************!*\ 1979 !*** ./node_modules/core-js/modules/_meta.js ***! 1980 \***********************************************/ 1981/*! no static exports found */ 1982/***/ (function(module, exports, __webpack_require__) { 1983 1984var META = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js")('meta'); 1985var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 1986var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); 1987var setDesc = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; 1988var id = 0; 1989var isExtensible = Object.isExtensible || function () { 1990 return true; 1991}; 1992var FREEZE = !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 1993 return isExtensible(Object.preventExtensions({})); 1994}); 1995var setMeta = function (it) { 1996 setDesc(it, META, { value: { 1997 i: 'O' + ++id, // object ID 1998 w: {} // weak collections IDs 1999 } }); 2000}; 2001var fastKey = function (it, create) { 2002 // return primitive with prefix 2003 if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; 2004 if (!has(it, META)) { 2005 // can't set metadata to uncaught frozen object 2006 if (!isExtensible(it)) return 'F'; 2007 // not necessary to add metadata 2008 if (!create) return 'E'; 2009 // add missing metadata 2010 setMeta(it); 2011 // return object ID 2012 } return it[META].i; 2013}; 2014var getWeak = function (it, create) { 2015 if (!has(it, META)) { 2016 // can't set metadata to uncaught frozen object 2017 if (!isExtensible(it)) return true; 2018 // not necessary to add metadata 2019 if (!create) return false; 2020 // add missing metadata 2021 setMeta(it); 2022 // return hash weak collections IDs 2023 } return it[META].w; 2024}; 2025// add metadata on freeze-family methods calling 2026var onFreeze = function (it) { 2027 if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); 2028 return it; 2029}; 2030var meta = module.exports = { 2031 KEY: META, 2032 NEED: false, 2033 fastKey: fastKey, 2034 getWeak: getWeak, 2035 onFreeze: onFreeze 2036}; 2037 2038 2039/***/ }), 2040
vendor: 2,488 bytes, lines 2041-2120
2041/***/ "./node_modules/core-js/modules/_microtask.js": 2042/*!****************************************************!*\ 2043 !*** ./node_modules/core-js/modules/_microtask.js ***! 2044 \****************************************************/ 2045/*! no static exports found */ 2046/***/ (function(module, exports, __webpack_require__) { 2047 2048var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 2049var macrotask = __webpack_require__(/*! ./_task */ "./node_modules/core-js/modules/_task.js").set; 2050var Observer = global.MutationObserver || global.WebKitMutationObserver; 2051var process = global.process; 2052var Promise = global.Promise; 2053var isNode = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js")(process) == 'process'; 2054 2055module.exports = function () { 2056 var head, last, notify; 2057 2058 var flush = function () { 2059 var parent, fn; 2060 if (isNode && (parent = process.domain)) parent.exit(); 2061 while (head) { 2062 fn = head.fn; 2063 head = head.next; 2064 try { 2065 fn(); 2066 } catch (e) { 2067 if (head) notify(); 2068 else last = undefined; 2069 throw e; 2070 } 2071 } last = undefined; 2072 if (parent) parent.enter(); 2073 }; 2074 2075 // Node.js 2076 if (isNode) { 2077 notify = function () { 2078 process.nextTick(flush); 2079 }; 2080 // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339 2081 } else if (Observer && !(global.navigator && global.navigator.standalone)) { 2082 var toggle = true; 2083 var node = document.createTextNode(''); 2084 new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new 2085 notify = function () { 2086 node.data = toggle = !toggle; 2087 }; 2088 // environments with maybe non-completely correct, but existent Promise 2089 } else if (Promise && Promise.resolve) { 2090 // Promise.resolve without an argument throws an error in LG WebOS 2 2091 var promise = Promise.resolve(undefined); 2092 notify = function () { 2093 promise.then(flush); 2094 }; 2095 // for other environments - macrotask based on: 2096 // - setImmediate 2097 // - MessageChannel 2098 // - window.postMessag 2099 // - onreadystatechange 2100 // - setTimeout 2101 } else { 2102 notify = function () { 2103 // strange IE + webpack dev server bug - use .call(global) 2104 macrotask.call(global, flush); 2105 }; 2106 } 2107 2108 return function (fn) { 2109 var task = { fn: fn, next: undefined }; 2110 if (last) last.next = task; 2111 if (!head) { 2112 head = task; 2113 notify(); 2114 } last = task; 2115 }; 2116}; 2117 2118 2119/***/ }), 2120
vendor: 950 bytes, lines 2121-2150
2121/***/ "./node_modules/core-js/modules/_new-promise-capability.js": 2122/*!*****************************************************************!*\ 2123 !*** ./node_modules/core-js/modules/_new-promise-capability.js ***! 2124 \*****************************************************************/ 2125/*! no static exports found */ 2126/***/ (function(module, exports, __webpack_require__) { 2127 2128"use strict"; 2129 2130// 25.4.1.5 NewPromiseCapability(C) 2131var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); 2132 2133function PromiseCapability(C) { 2134 var resolve, reject; 2135 this.promise = new C(function ($$resolve, $$reject) { 2136 if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); 2137 resolve = $$resolve; 2138 reject = $$reject; 2139 }); 2140 this.resolve = aFunction(resolve); 2141 this.reject = aFunction(reject); 2142} 2143 2144module.exports.f = function (C) { 2145 return new PromiseCapability(C); 2146}; 2147 2148 2149/***/ }), 2150
vendor: 1,923 bytes, lines 2151-2196
2151/***/ "./node_modules/core-js/modules/_object-assign.js": 2152/*!********************************************************!*\ 2153 !*** ./node_modules/core-js/modules/_object-assign.js ***! 2154 \********************************************************/ 2155/*! no static exports found */ 2156/***/ (function(module, exports, __webpack_require__) { 2157 2158"use strict"; 2159 2160// 19.1.2.1 Object.assign(target, source, ...) 2161var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); 2162var gOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/core-js/modules/_object-gops.js"); 2163var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js"); 2164var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); 2165var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js"); 2166var $assign = Object.assign; 2167 2168// should work with symbols and should have deterministic property order (V8 bug) 2169module.exports = !$assign || __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 2170 var A = {}; 2171 var B = {}; 2172 // eslint-disable-next-line no-undef 2173 var S = Symbol(); 2174 var K = 'abcdefghijklmnopqrst'; 2175 A[S] = 7; 2176 K.split('').forEach(function (k) { B[k] = k; }); 2177 return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; 2178}) ? function assign(target, source) { // eslint-disable-line no-unused-vars 2179 var T = toObject(target); 2180 var aLen = arguments.length; 2181 var index = 1; 2182 var getSymbols = gOPS.f; 2183 var isEnum = pIE.f; 2184 while (aLen > index) { 2185 var S = IObject(arguments[index++]); 2186 var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); 2187 var length = keys.length; 2188 var j = 0; 2189 var key; 2190 while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; 2191 } return T; 2192} : $assign; 2193 2194 2195/***/ }), 2196
vendor: 2,235 bytes, lines 2197-2248
2197/***/ "./node_modules/core-js/modules/_object-create.js": 2198/*!********************************************************!*\ 2199 !*** ./node_modules/core-js/modules/_object-create.js ***! 2200 \********************************************************/ 2201/*! no static exports found */ 2202/***/ (function(module, exports, __webpack_require__) { 2203 2204// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) 2205var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 2206var dPs = __webpack_require__(/*! ./_object-dps */ "./node_modules/core-js/modules/_object-dps.js"); 2207var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/core-js/modules/_enum-bug-keys.js"); 2208var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/core-js/modules/_shared-key.js")('IE_PROTO'); 2209var Empty = function () { /* empty */ }; 2210var PROTOTYPE = 'prototype'; 2211 2212// Create object with fake `null` prototype: use iframe Object with cleared prototype 2213var createDict = function () { 2214 // Thrash, waste and sodomy: IE GC bug 2215 var iframe = __webpack_require__(/*! ./_dom-create */ "./node_modules/core-js/modules/_dom-create.js")('iframe'); 2216 var i = enumBugKeys.length; 2217 var lt = '<'; 2218 var gt = '>'; 2219 var iframeDocument; 2220 iframe.style.display = 'none'; 2221 __webpack_require__(/*! ./_html */ "./node_modules/core-js/modules/_html.js").appendChild(iframe); 2222 iframe.src = 'javascript:'; // eslint-disable-line no-script-url 2223 // createDict = iframe.contentWindow.Object; 2224 // html.removeChild(iframe); 2225 iframeDocument = iframe.contentWindow.document; 2226 iframeDocument.open(); 2227 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); 2228 iframeDocument.close(); 2229 createDict = iframeDocument.F; 2230 while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; 2231 return createDict(); 2232}; 2233 2234module.exports = Object.create || function create(O, Properties) { 2235 var result; 2236 if (O !== null) { 2237 Empty[PROTOTYPE] = anObject(O); 2238 result = new Empty(); 2239 Empty[PROTOTYPE] = null; 2240 // add "__proto__" for Object.getPrototypeOf polyfill 2241 result[IE_PROTO] = O; 2242 } else result = createDict(); 2243 return Properties === undefined ? result : dPs(result, Properties); 2244}; 2245 2246 2247/***/ }), 2248
vendor: 1,194 bytes, lines 2249-2275
2249/***/ "./node_modules/core-js/modules/_object-dp.js": 2250/*!****************************************************!*\ 2251 !*** ./node_modules/core-js/modules/_object-dp.js ***! 2252 \****************************************************/ 2253/*! no static exports found */ 2254/***/ (function(module, exports, __webpack_require__) { 2255 2256var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 2257var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "./node_modules/core-js/modules/_ie8-dom-define.js"); 2258var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); 2259var dP = Object.defineProperty; 2260 2261exports.f = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) { 2262 anObject(O); 2263 P = toPrimitive(P, true); 2264 anObject(Attributes); 2265 if (IE8_DOM_DEFINE) try { 2266 return dP(O, P, Attributes); 2267 } catch (e) { /* empty */ } 2268 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); 2269 if ('value' in Attributes) O[P] = Attributes.value; 2270 return O; 2271}; 2272 2273 2274/***/ }), 2275
vendor: 996 bytes, lines 2276-2299
2276/***/ "./node_modules/core-js/modules/_object-dps.js": 2277/*!*****************************************************!*\ 2278 !*** ./node_modules/core-js/modules/_object-dps.js ***! 2279 \*****************************************************/ 2280/*! no static exports found */ 2281/***/ (function(module, exports, __webpack_require__) { 2282 2283var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); 2284var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 2285var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); 2286 2287module.exports = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) { 2288 anObject(O); 2289 var keys = getKeys(Properties); 2290 var length = keys.length; 2291 var i = 0; 2292 var P; 2293 while (length > i) dP.f(O, P = keys[i++], Properties[P]); 2294 return O; 2295}; 2296 2297 2298/***/ }), 2299
vendor: 1,371 bytes, lines 2300-2326
2300/***/ "./node_modules/core-js/modules/_object-gopd.js": 2301/*!******************************************************!*\ 2302 !*** ./node_modules/core-js/modules/_object-gopd.js ***! 2303 \******************************************************/ 2304/*! no static exports found */ 2305/***/ (function(module, exports, __webpack_require__) { 2306 2307var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js"); 2308var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); 2309var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); 2310var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); 2311var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); 2312var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "./node_modules/core-js/modules/_ie8-dom-define.js"); 2313var gOPD = Object.getOwnPropertyDescriptor; 2314 2315exports.f = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) { 2316 O = toIObject(O); 2317 P = toPrimitive(P, true); 2318 if (IE8_DOM_DEFINE) try { 2319 return gOPD(O, P); 2320 } catch (e) { /* empty */ } 2321 if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); 2322}; 2323 2324 2325/***/ }), 2326
vendor: 1,087 bytes, lines 2327-2356
2327/***/ "./node_modules/core-js/modules/_object-gopn-ext.js": 2328/*!**********************************************************!*\ 2329 !*** ./node_modules/core-js/modules/_object-gopn-ext.js ***! 2330 \**********************************************************/ 2331/*! no static exports found */ 2332/***/ (function(module, exports, __webpack_require__) { 2333 2334// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window 2335var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); 2336var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f; 2337var toString = {}.toString; 2338 2339var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames 2340 ? Object.getOwnPropertyNames(window) : []; 2341 2342var getWindowNames = function (it) { 2343 try { 2344 return gOPN(it); 2345 } catch (e) { 2346 return windowNames.slice(); 2347 } 2348}; 2349 2350module.exports.f = function getOwnPropertyNames(it) { 2351 return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); 2352}; 2353 2354 2355/***/ }), 2356
vendor: 767 bytes, lines 2357-2374
2357/***/ "./node_modules/core-js/modules/_object-gopn.js": 2358/*!******************************************************!*\ 2359 !*** ./node_modules/core-js/modules/_object-gopn.js ***! 2360 \******************************************************/ 2361/*! no static exports found */ 2362/***/ (function(module, exports, __webpack_require__) { 2363 2364// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) 2365var $keys = __webpack_require__(/*! ./_object-keys-internal */ "./node_modules/core-js/modules/_object-keys-internal.js"); 2366var hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/core-js/modules/_enum-bug-keys.js").concat('length', 'prototype'); 2367 2368exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 2369 return $keys(O, hiddenKeys); 2370}; 2371 2372 2373/***/ }), 2374
vendor: 357 bytes, lines 2375-2386
2375/***/ "./node_modules/core-js/modules/_object-gops.js": 2376/*!******************************************************!*\ 2377 !*** ./node_modules/core-js/modules/_object-gops.js ***! 2378 \******************************************************/ 2379/*! no static exports found */ 2380/***/ (function(module, exports) { 2381 2382exports.f = Object.getOwnPropertySymbols; 2383 2384 2385/***/ }), 2386
vendor: 1,012 bytes, lines 2387-2410
2387/***/ "./node_modules/core-js/modules/_object-gpo.js": 2388/*!*****************************************************!*\ 2389 !*** ./node_modules/core-js/modules/_object-gpo.js ***! 2390 \*****************************************************/ 2391/*! no static exports found */ 2392/***/ (function(module, exports, __webpack_require__) { 2393 2394// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) 2395var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); 2396var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); 2397var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/core-js/modules/_shared-key.js")('IE_PROTO'); 2398var ObjectProto = Object.prototype; 2399 2400module.exports = Object.getPrototypeOf || function (O) { 2401 O = toObject(O); 2402 if (has(O, IE_PROTO)) return O[IE_PROTO]; 2403 if (typeof O.constructor == 'function' && O instanceof O.constructor) { 2404 return O.constructor.prototype; 2405 } return O instanceof Object ? ObjectProto : null; 2406}; 2407 2408 2409/***/ }), 2410
vendor: 1,166 bytes, lines 2411-2438
2411/***/ "./node_modules/core-js/modules/_object-keys-internal.js": 2412/*!***************************************************************!*\ 2413 !*** ./node_modules/core-js/modules/_object-keys-internal.js ***! 2414 \***************************************************************/ 2415/*! no static exports found */ 2416/***/ (function(module, exports, __webpack_require__) { 2417 2418var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); 2419var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); 2420var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "./node_modules/core-js/modules/_array-includes.js")(false); 2421var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/core-js/modules/_shared-key.js")('IE_PROTO'); 2422 2423module.exports = function (object, names) { 2424 var O = toIObject(object); 2425 var i = 0; 2426 var result = []; 2427 var key; 2428 for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); 2429 // Don't enum bug & hidden keys 2430 while (names.length > i) if (has(O, key = names[i++])) { 2431 ~arrayIndexOf(result, key) || result.push(key); 2432 } 2433 return result; 2434}; 2435 2436 2437/***/ }), 2438
vendor: 701 bytes, lines 2439-2456
2439/***/ "./node_modules/core-js/modules/_object-keys.js": 2440/*!******************************************************!*\ 2441 !*** ./node_modules/core-js/modules/_object-keys.js ***! 2442 \******************************************************/ 2443/*! no static exports found */ 2444/***/ (function(module, exports, __webpack_require__) { 2445 2446// 19.1.2.14 / 15.2.3.14 Object.keys(O) 2447var $keys = __webpack_require__(/*! ./_object-keys-internal */ "./node_modules/core-js/modules/_object-keys-internal.js"); 2448var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/core-js/modules/_enum-bug-keys.js"); 2449 2450module.exports = Object.keys || function keys(O) { 2451 return $keys(O, enumBugKeys); 2452}; 2453 2454 2455/***/ }), 2456
vendor: 348 bytes, lines 2457-2468
2457/***/ "./node_modules/core-js/modules/_object-pie.js": 2458/*!*****************************************************!*\ 2459 !*** ./node_modules/core-js/modules/_object-pie.js ***! 2460 \*****************************************************/ 2461/*! no static exports found */ 2462/***/ (function(module, exports) { 2463 2464exports.f = {}.propertyIsEnumerable; 2465 2466 2467/***/ }), 2468
vendor: 882 bytes, lines 2469-2489
2469/***/ "./node_modules/core-js/modules/_object-sap.js": 2470/*!*****************************************************!*\ 2471 !*** ./node_modules/core-js/modules/_object-sap.js ***! 2472 \*****************************************************/ 2473/*! no static exports found */ 2474/***/ (function(module, exports, __webpack_require__) { 2475 2476// most Object methods by ES6 should accept primitives 2477var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 2478var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js"); 2479var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 2480module.exports = function (KEY, exec) { 2481 var fn = (core.Object || {})[KEY] || Object[KEY]; 2482 var exp = {}; 2483 exp[KEY] = exec(fn); 2484 $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); 2485}; 2486 2487 2488/***/ }), 2489
vendor: 1,016 bytes, lines 2490-2516
2490/***/ "./node_modules/core-js/modules/_object-to-array.js": 2491/*!**********************************************************!*\ 2492 !*** ./node_modules/core-js/modules/_object-to-array.js ***! 2493 \**********************************************************/ 2494/*! no static exports found */ 2495/***/ (function(module, exports, __webpack_require__) { 2496 2497var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); 2498var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); 2499var isEnum = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js").f; 2500module.exports = function (isEntries) { 2501 return function (it) { 2502 var O = toIObject(it); 2503 var keys = getKeys(O); 2504 var length = keys.length; 2505 var i = 0; 2506 var result = []; 2507 var key; 2508 while (length > i) if (isEnum.call(O, key = keys[i++])) { 2509 result.push(isEntries ? [key, O[key]] : O[key]); 2510 } return result; 2511 }; 2512}; 2513 2514 2515/***/ }), 2516
vendor: 990 bytes, lines 2517-2537
2517/***/ "./node_modules/core-js/modules/_own-keys.js": 2518/*!***************************************************!*\ 2519 !*** ./node_modules/core-js/modules/_own-keys.js ***! 2520 \***************************************************/ 2521/*! no static exports found */ 2522/***/ (function(module, exports, __webpack_require__) { 2523 2524// all object keys, includes non-enumerable and symbols 2525var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js"); 2526var gOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/core-js/modules/_object-gops.js"); 2527var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 2528var Reflect = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").Reflect; 2529module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) { 2530 var keys = gOPN.f(anObject(it)); 2531 var getSymbols = gOPS.f; 2532 return getSymbols ? keys.concat(getSymbols(it)) : keys; 2533}; 2534 2535 2536/***/ }), 2537
vendor: 886 bytes, lines 2538-2556
2538/***/ "./node_modules/core-js/modules/_parse-float.js": 2539/*!******************************************************!*\ 2540 !*** ./node_modules/core-js/modules/_parse-float.js ***! 2541 \******************************************************/ 2542/*! no static exports found */ 2543/***/ (function(module, exports, __webpack_require__) { 2544 2545var $parseFloat = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").parseFloat; 2546var $trim = __webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js").trim; 2547 2548module.exports = 1 / $parseFloat(__webpack_require__(/*! ./_string-ws */ "./node_modules/core-js/modules/_string-ws.js") + '-0') !== -Infinity ? function parseFloat(str) { 2549 var string = $trim(String(str), 3); 2550 var result = $parseFloat(string); 2551 return result === 0 && string.charAt(0) == '-' ? -0 : result; 2552} : $parseFloat; 2553 2554 2555/***/ }), 2556
vendor: 909 bytes, lines 2557-2576
2557/***/ "./node_modules/core-js/modules/_parse-int.js": 2558/*!****************************************************!*\ 2559 !*** ./node_modules/core-js/modules/_parse-int.js ***! 2560 \****************************************************/ 2561/*! no static exports found */ 2562/***/ (function(module, exports, __webpack_require__) { 2563 2564var $parseInt = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").parseInt; 2565var $trim = __webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js").trim; 2566var ws = __webpack_require__(/*! ./_string-ws */ "./node_modules/core-js/modules/_string-ws.js"); 2567var hex = /^[-+]?0[xX]/; 2568 2569module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) { 2570 var string = $trim(String(str), 3); 2571 return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10)); 2572} : $parseInt; 2573 2574 2575/***/ }), 2576
vendor: 431 bytes, lines 2577-2594
2577/***/ "./node_modules/core-js/modules/_perform.js": 2578/*!**************************************************!*\ 2579 !*** ./node_modules/core-js/modules/_perform.js ***! 2580 \**************************************************/ 2581/*! no static exports found */ 2582/***/ (function(module, exports) { 2583 2584module.exports = function (exec) { 2585 try { 2586 return { e: false, v: exec() }; 2587 } catch (e) { 2588 return { e: true, v: e }; 2589 } 2590}; 2591 2592 2593/***/ }), 2594
vendor: 954 bytes, lines 2595-2617
2595/***/ "./node_modules/core-js/modules/_promise-resolve.js": 2596/*!**********************************************************!*\ 2597 !*** ./node_modules/core-js/modules/_promise-resolve.js ***! 2598 \**********************************************************/ 2599/*! no static exports found */ 2600/***/ (function(module, exports, __webpack_require__) { 2601 2602var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 2603var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 2604var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "./node_modules/core-js/modules/_new-promise-capability.js"); 2605 2606module.exports = function (C, x) { 2607 anObject(C); 2608 if (isObject(x) && x.constructor === C) return x; 2609 var promiseCapability = newPromiseCapability.f(C); 2610 var resolve = promiseCapability.resolve; 2611 resolve(x); 2612 return promiseCapability.promise; 2613}; 2614 2615 2616/***/ }), 2617
vendor: 496 bytes, lines 2618-2636
2618/***/ "./node_modules/core-js/modules/_property-desc.js": 2619/*!********************************************************!*\ 2620 !*** ./node_modules/core-js/modules/_property-desc.js ***! 2621 \********************************************************/ 2622/*! no static exports found */ 2623/***/ (function(module, exports) { 2624 2625module.exports = function (bitmap, value) { 2626 return { 2627 enumerable: !(bitmap & 1), 2628 configurable: !(bitmap & 2), 2629 writable: !(bitmap & 4), 2630 value: value 2631 }; 2632}; 2633 2634 2635/***/ }), 2636
vendor: 572 bytes, lines 2637-2652
2637/***/ "./node_modules/core-js/modules/_redefine-all.js": 2638/*!*******************************************************!*\ 2639 !*** ./node_modules/core-js/modules/_redefine-all.js ***! 2640 \*******************************************************/ 2641/*! no static exports found */ 2642/***/ (function(module, exports, __webpack_require__) { 2643 2644var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); 2645module.exports = function (target, src, safe) { 2646 for (var key in src) redefine(target, key, src[key], safe); 2647 return target; 2648}; 2649 2650 2651/***/ }), 2652
vendor: 1,656 bytes, lines 2653-2694
2653/***/ "./node_modules/core-js/modules/_redefine.js": 2654/*!***************************************************!*\ 2655 !*** ./node_modules/core-js/modules/_redefine.js ***! 2656 \***************************************************/ 2657/*! no static exports found */ 2658/***/ (function(module, exports, __webpack_require__) { 2659 2660var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 2661var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); 2662var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); 2663var SRC = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js")('src'); 2664var TO_STRING = 'toString'; 2665var $toString = Function[TO_STRING]; 2666var TPL = ('' + $toString).split(TO_STRING); 2667 2668__webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js").inspectSource = function (it) { 2669 return $toString.call(it); 2670}; 2671 2672(module.exports = function (O, key, val, safe) { 2673 var isFunction = typeof val == 'function'; 2674 if (isFunction) has(val, 'name') || hide(val, 'name', key); 2675 if (O[key] === val) return; 2676 if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); 2677 if (O === global) { 2678 O[key] = val; 2679 } else if (!safe) { 2680 delete O[key]; 2681 hide(O, key, val); 2682 } else if (O[key]) { 2683 O[key] = val; 2684 } else { 2685 hide(O, key, val); 2686 } 2687// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative 2688})(Function.prototype, TO_STRING, function toString() { 2689 return typeof this == 'function' && this[SRC] || $toString.call(this); 2690}); 2691 2692 2693/***/ }), 2694
vendor: 501 bytes, lines 2695-2710
2695/***/ "./node_modules/core-js/modules/_same-value.js": 2696/*!*****************************************************!*\ 2697 !*** ./node_modules/core-js/modules/_same-value.js ***! 2698 \*****************************************************/ 2699/*! no static exports found */ 2700/***/ (function(module, exports) { 2701 2702// 7.2.9 SameValue(x, y) 2703module.exports = Object.is || function is(x, y) { 2704 // eslint-disable-next-line no-self-compare 2705 return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; 2706}; 2707 2708 2709/***/ }), 2710
vendor: 1,486 bytes, lines 2711-2746
2711/***/ "./node_modules/core-js/modules/_set-proto.js": 2712/*!****************************************************!*\ 2713 !*** ./node_modules/core-js/modules/_set-proto.js ***! 2714 \****************************************************/ 2715/*! no static exports found */ 2716/***/ (function(module, exports, __webpack_require__) { 2717 2718// Works with __proto__ only. Old v8 can't work with null proto objects. 2719/* eslint-disable no-proto */ 2720var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 2721var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 2722var check = function (O, proto) { 2723 anObject(O); 2724 if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); 2725}; 2726module.exports = { 2727 set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line 2728 function (test, buggy, set) { 2729 try { 2730 set = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js")(Function.call, __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2); 2731 set(test, []); 2732 buggy = !(test instanceof Array); 2733 } catch (e) { buggy = true; } 2734 return function setPrototypeOf(O, proto) { 2735 check(O, proto); 2736 if (buggy) O.__proto__ = proto; 2737 else set(O, proto); 2738 return O; 2739 }; 2740 }({}, false) : undefined), 2741 check: check 2742}; 2743 2744 2745/***/ }), 2746
vendor: 945 bytes, lines 2747-2771
2747/***/ "./node_modules/core-js/modules/_set-species.js": 2748/*!******************************************************!*\ 2749 !*** ./node_modules/core-js/modules/_set-species.js ***! 2750 \******************************************************/ 2751/*! no static exports found */ 2752/***/ (function(module, exports, __webpack_require__) { 2753 2754"use strict"; 2755 2756var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 2757var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); 2758var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); 2759var SPECIES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species'); 2760 2761module.exports = function (KEY) { 2762 var C = global[KEY]; 2763 if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { 2764 configurable: true, 2765 get: function () { return this; } 2766 }); 2767}; 2768 2769 2770/***/ }), 2771
vendor: 802 bytes, lines 2772-2789
2772/***/ "./node_modules/core-js/modules/_set-to-string-tag.js": 2773/*!************************************************************!*\ 2774 !*** ./node_modules/core-js/modules/_set-to-string-tag.js ***! 2775 \************************************************************/ 2776/*! no static exports found */ 2777/***/ (function(module, exports, __webpack_require__) { 2778 2779var def = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; 2780var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); 2781var TAG = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toStringTag'); 2782 2783module.exports = function (it, tag, stat) { 2784 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); 2785}; 2786 2787 2788/***/ }), 2789
vendor: 610 bytes, lines 2790-2805
2790/***/ "./node_modules/core-js/modules/_shared-key.js": 2791/*!*****************************************************!*\ 2792 !*** ./node_modules/core-js/modules/_shared-key.js ***! 2793 \*****************************************************/ 2794/*! no static exports found */ 2795/***/ (function(module, exports, __webpack_require__) { 2796 2797var shared = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js")('keys'); 2798var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js"); 2799module.exports = function (key) { 2800 return shared[key] || (shared[key] = uid(key)); 2801}; 2802 2803 2804/***/ }), 2805
vendor: 926 bytes, lines 2806-2828
2806/***/ "./node_modules/core-js/modules/_shared.js": 2807/*!*************************************************!*\ 2808 !*** ./node_modules/core-js/modules/_shared.js ***! 2809 \*************************************************/ 2810/*! no static exports found */ 2811/***/ (function(module, exports, __webpack_require__) { 2812 2813var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js"); 2814var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 2815var SHARED = '__core-js_shared__'; 2816var store = global[SHARED] || (global[SHARED] = {}); 2817 2818(module.exports = function (key, value) { 2819 return store[key] || (store[key] = value !== undefined ? value : {}); 2820})('versions', []).push({ 2821 version: core.version, 2822 mode: __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js") ? 'pure' : 'global', 2823 copyright: '© 2018 Denis Pushkarev (zloirock.ru)' 2824}); 2825 2826 2827/***/ }), 2828
vendor: 903 bytes, lines 2829-2848
2829/***/ "./node_modules/core-js/modules/_species-constructor.js": 2830/*!**************************************************************!*\ 2831 !*** ./node_modules/core-js/modules/_species-constructor.js ***! 2832 \**************************************************************/ 2833/*! no static exports found */ 2834/***/ (function(module, exports, __webpack_require__) { 2835 2836// 7.3.20 SpeciesConstructor(O, defaultConstructor) 2837var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 2838var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); 2839var SPECIES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species'); 2840module.exports = function (O, D) { 2841 var C = anObject(O).constructor; 2842 var S; 2843 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); 2844}; 2845 2846 2847/***/ }), 2848
vendor: 674 bytes, lines 2849-2869
2849/***/ "./node_modules/core-js/modules/_strict-method.js": 2850/*!********************************************************!*\ 2851 !*** ./node_modules/core-js/modules/_strict-method.js ***! 2852 \********************************************************/ 2853/*! no static exports found */ 2854/***/ (function(module, exports, __webpack_require__) { 2855 2856"use strict"; 2857 2858var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 2859 2860module.exports = function (method, arg) { 2861 return !!method && fails(function () { 2862 // eslint-disable-next-line no-useless-call 2863 arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null); 2864 }); 2865}; 2866 2867 2868/***/ }), 2869
vendor: 1,075 bytes, lines 2870-2897
2870/***/ "./node_modules/core-js/modules/_string-at.js": 2871/*!****************************************************!*\ 2872 !*** ./node_modules/core-js/modules/_string-at.js ***! 2873 \****************************************************/ 2874/*! no static exports found */ 2875/***/ (function(module, exports, __webpack_require__) { 2876 2877var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); 2878var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); 2879// true -> String#at 2880// false -> String#codePointAt 2881module.exports = function (TO_STRING) { 2882 return function (that, pos) { 2883 var s = String(defined(that)); 2884 var i = toInteger(pos); 2885 var l = s.length; 2886 var a, b; 2887 if (i < 0 || i >= l) return TO_STRING ? '' : undefined; 2888 a = s.charCodeAt(i); 2889 return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff 2890 ? TO_STRING ? s.charAt(i) : a 2891 : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; 2892 }; 2893}; 2894 2895 2896/***/ }), 2897
vendor: 788 bytes, lines 2898-2916
2898/***/ "./node_modules/core-js/modules/_string-context.js": 2899/*!*********************************************************!*\ 2900 !*** ./node_modules/core-js/modules/_string-context.js ***! 2901 \*********************************************************/ 2902/*! no static exports found */ 2903/***/ (function(module, exports, __webpack_require__) { 2904 2905// helper for String#{startsWith, endsWith, includes} 2906var isRegExp = __webpack_require__(/*! ./_is-regexp */ "./node_modules/core-js/modules/_is-regexp.js"); 2907var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); 2908 2909module.exports = function (that, searchString, NAME) { 2910 if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); 2911 return String(defined(that)); 2912}; 2913 2914 2915/***/ }), 2916
vendor: 1,221 bytes, lines 2917-2946
2917/***/ "./node_modules/core-js/modules/_string-html.js": 2918/*!******************************************************!*\ 2919 !*** ./node_modules/core-js/modules/_string-html.js ***! 2920 \******************************************************/ 2921/*! no static exports found */ 2922/***/ (function(module, exports, __webpack_require__) { 2923 2924var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 2925var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 2926var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); 2927var quot = /"/g; 2928// B.2.3.2.1 CreateHTML(string, tag, attribute, value) 2929var createHTML = function (string, tag, attribute, value) { 2930 var S = String(defined(string)); 2931 var p1 = '<' + tag; 2932 if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"'; 2933 return p1 + '>' + S + '</' + tag + '>'; 2934}; 2935module.exports = function (NAME, exec) { 2936 var O = {}; 2937 O[NAME] = exec(createHTML); 2938 $export($export.P + $export.F * fails(function () { 2939 var test = ''[NAME]('"'); 2940 return test !== test.toLowerCase() || test.split('"').length > 3; 2941 }), 'String', O); 2942}; 2943 2944 2945/***/ }), 2946
vendor: 1,270 bytes, lines 2947-2973
2947/***/ "./node_modules/core-js/modules/_string-pad.js": 2948/*!*****************************************************!*\ 2949 !*** ./node_modules/core-js/modules/_string-pad.js ***! 2950 \*****************************************************/ 2951/*! no static exports found */ 2952/***/ (function(module, exports, __webpack_require__) { 2953 2954// https://github.com/tc39/proposal-string-pad-start-end 2955var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 2956var repeat = __webpack_require__(/*! ./_string-repeat */ "./node_modules/core-js/modules/_string-repeat.js"); 2957var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); 2958 2959module.exports = function (that, maxLength, fillString, left) { 2960 var S = String(defined(that)); 2961 var stringLength = S.length; 2962 var fillStr = fillString === undefined ? ' ' : String(fillString); 2963 var intMaxLength = toLength(maxLength); 2964 if (intMaxLength <= stringLength || fillStr == '') return S; 2965 var fillLen = intMaxLength - stringLength; 2966 var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); 2967 if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); 2968 return left ? stringFiller + S : S + stringFiller; 2969}; 2970 2971 2972/***/ }), 2973
vendor: 845 bytes, lines 2974-2997
2974/***/ "./node_modules/core-js/modules/_string-repeat.js": 2975/*!********************************************************!*\ 2976 !*** ./node_modules/core-js/modules/_string-repeat.js ***! 2977 \********************************************************/ 2978/*! no static exports found */ 2979/***/ (function(module, exports, __webpack_require__) { 2980 2981"use strict"; 2982 2983var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); 2984var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); 2985 2986module.exports = function repeat(count) { 2987 var str = String(defined(this)); 2988 var res = ''; 2989 var n = toInteger(count); 2990 if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); 2991 for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str; 2992 return res; 2993}; 2994 2995 2996/***/ }), 2997
vendor: 1,482 bytes, lines 2998-3038
2998/***/ "./node_modules/core-js/modules/_string-trim.js": 2999/*!******************************************************!*\ 3000 !*** ./node_modules/core-js/modules/_string-trim.js ***! 3001 \******************************************************/ 3002/*! no static exports found */ 3003/***/ (function(module, exports, __webpack_require__) { 3004 3005var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 3006var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); 3007var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 3008var spaces = __webpack_require__(/*! ./_string-ws */ "./node_modules/core-js/modules/_string-ws.js"); 3009var space = '[' + spaces + ']'; 3010var non = '\u200b\u0085'; 3011var ltrim = RegExp('^' + space + space + '*'); 3012var rtrim = RegExp(space + space + '*$'); 3013 3014var exporter = function (KEY, exec, ALIAS) { 3015 var exp = {}; 3016 var FORCE = fails(function () { 3017 return !!spaces[KEY]() || non[KEY]() != non; 3018 }); 3019 var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY]; 3020 if (ALIAS) exp[ALIAS] = fn; 3021 $export($export.P + $export.F * FORCE, 'String', exp); 3022}; 3023 3024// 1 -> String#trimLeft 3025// 2 -> String#trimRight 3026// 3 -> String#trim 3027var trim = exporter.trim = function (string, TYPE) { 3028 string = String(defined(string)); 3029 if (TYPE & 1) string = string.replace(ltrim, ''); 3030 if (TYPE & 2) string = string.replace(rtrim, ''); 3031 return string; 3032}; 3033 3034module.exports = exporter; 3035 3036 3037/***/ }), 3038
vendor: 477 bytes, lines 3039-3051
3039/***/ "./node_modules/core-js/modules/_string-ws.js": 3040/*!****************************************************!*\ 3041 !*** ./node_modules/core-js/modules/_string-ws.js ***! 3042 \****************************************************/ 3043/*! no static exports found */ 3044/***/ (function(module, exports) { 3045 3046module.exports = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + 3047 '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; 3048 3049 3050/***/ }), 3051
vendor: 3,154 bytes, lines 3052-3146
3052/***/ "./node_modules/core-js/modules/_task.js": 3053/*!***********************************************!*\ 3054 !*** ./node_modules/core-js/modules/_task.js ***! 3055 \***********************************************/ 3056/*! no static exports found */ 3057/***/ (function(module, exports, __webpack_require__) { 3058 3059var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); 3060var invoke = __webpack_require__(/*! ./_invoke */ "./node_modules/core-js/modules/_invoke.js"); 3061var html = __webpack_require__(/*! ./_html */ "./node_modules/core-js/modules/_html.js"); 3062var cel = __webpack_require__(/*! ./_dom-create */ "./node_modules/core-js/modules/_dom-create.js"); 3063var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 3064var process = global.process; 3065var setTask = global.setImmediate; 3066var clearTask = global.clearImmediate; 3067var MessageChannel = global.MessageChannel; 3068var Dispatch = global.Dispatch; 3069var counter = 0; 3070var queue = {}; 3071var ONREADYSTATECHANGE = 'onreadystatechange'; 3072var defer, channel, port; 3073var run = function () { 3074 var id = +this; 3075 // eslint-disable-next-line no-prototype-builtins 3076 if (queue.hasOwnProperty(id)) { 3077 var fn = queue[id]; 3078 delete queue[id]; 3079 fn(); 3080 } 3081}; 3082var listener = function (event) { 3083 run.call(event.data); 3084}; 3085// Node.js 0.9+ & IE10+ has setImmediate, otherwise: 3086if (!setTask || !clearTask) { 3087 setTask = function setImmediate(fn) { 3088 var args = []; 3089 var i = 1; 3090 while (arguments.length > i) args.push(arguments[i++]); 3091 queue[++counter] = function () { 3092 // eslint-disable-next-line no-new-func 3093 invoke(typeof fn == 'function' ? fn : Function(fn), args); 3094 }; 3095 defer(counter); 3096 return counter; 3097 }; 3098 clearTask = function clearImmediate(id) { 3099 delete queue[id]; 3100 }; 3101 // Node.js 0.8- 3102 if (__webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js")(process) == 'process') { 3103 defer = function (id) { 3104 process.nextTick(ctx(run, id, 1)); 3105 }; 3106 // Sphere (JS game engine) Dispatch API 3107 } else if (Dispatch && Dispatch.now) { 3108 defer = function (id) { 3109 Dispatch.now(ctx(run, id, 1)); 3110 }; 3111 // Browsers with MessageChannel, includes WebWorkers 3112 } else if (MessageChannel) { 3113 channel = new MessageChannel(); 3114 port = channel.port2; 3115 channel.port1.onmessage = listener; 3116 defer = ctx(port.postMessage, port, 1); 3117 // Browsers with postMessage, skip WebWorkers 3118 // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' 3119 } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { 3120 defer = function (id) { 3121 global.postMessage(id + '', '*'); 3122 }; 3123 global.addEventListener('message', listener, false); 3124 // IE8- 3125 } else if (ONREADYSTATECHANGE in cel('script')) { 3126 defer = function (id) { 3127 html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { 3128 html.removeChild(this); 3129 run.call(id); 3130 }; 3131 }; 3132 // Rest old browsers 3133 } else { 3134 defer = function (id) { 3135 setTimeout(ctx(run, id, 1), 0); 3136 }; 3137 } 3138} 3139module.exports = { 3140 set: setTask, 3141 clear: clearTask 3142}; 3143 3144 3145/***/ }), 3146
vendor: 648 bytes, lines 3147-3164
3147/***/ "./node_modules/core-js/modules/_to-absolute-index.js": 3148/*!************************************************************!*\ 3149 !*** ./node_modules/core-js/modules/_to-absolute-index.js ***! 3150 \************************************************************/ 3151/*! no static exports found */ 3152/***/ (function(module, exports, __webpack_require__) { 3153 3154var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); 3155var max = Math.max; 3156var min = Math.min; 3157module.exports = function (index, length) { 3158 index = toInteger(index); 3159 return index < 0 ? max(index + length, 0) : min(index, length); 3160}; 3161 3162 3163/***/ }), 3164
vendor: 792 bytes, lines 3165-3185
3165/***/ "./node_modules/core-js/modules/_to-index.js": 3166/*!***************************************************!*\ 3167 !*** ./node_modules/core-js/modules/_to-index.js ***! 3168 \***************************************************/ 3169/*! no static exports found */ 3170/***/ (function(module, exports, __webpack_require__) { 3171 3172// https://tc39.github.io/ecma262/#sec-toindex 3173var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); 3174var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 3175module.exports = function (it) { 3176 if (it === undefined) return 0; 3177 var number = toInteger(it); 3178 var length = toLength(number); 3179 if (number !== length) throw RangeError('Wrong length!'); 3180 return length; 3181}; 3182 3183 3184/***/ }), 3185
vendor: 472 bytes, lines 3186-3202
3186/***/ "./node_modules/core-js/modules/_to-integer.js": 3187/*!*****************************************************!*\ 3188 !*** ./node_modules/core-js/modules/_to-integer.js ***! 3189 \*****************************************************/ 3190/*! no static exports found */ 3191/***/ (function(module, exports) { 3192 3193// 7.1.4 ToInteger 3194var ceil = Math.ceil; 3195var floor = Math.floor; 3196module.exports = function (it) { 3197 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); 3198}; 3199 3200 3201/***/ }), 3202
vendor: 673 bytes, lines 3203-3219
3203/***/ "./node_modules/core-js/modules/_to-iobject.js": 3204/*!*****************************************************!*\ 3205 !*** ./node_modules/core-js/modules/_to-iobject.js ***! 3206 \*****************************************************/ 3207/*! no static exports found */ 3208/***/ (function(module, exports, __webpack_require__) { 3209 3210// to indexed object, toObject with fallback for non-array-like ES3 strings 3211var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js"); 3212var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); 3213module.exports = function (it) { 3214 return IObject(defined(it)); 3215}; 3216 3217 3218/***/ }), 3219
vendor: 608 bytes, lines 3220-3236
3220/***/ "./node_modules/core-js/modules/_to-length.js": 3221/*!****************************************************!*\ 3222 !*** ./node_modules/core-js/modules/_to-length.js ***! 3223 \****************************************************/ 3224/*! no static exports found */ 3225/***/ (function(module, exports, __webpack_require__) { 3226 3227// 7.1.15 ToLength 3228var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); 3229var min = Math.min; 3230module.exports = function (it) { 3231 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 3232}; 3233 3234 3235/***/ }), 3236
vendor: 522 bytes, lines 3237-3252
3237/***/ "./node_modules/core-js/modules/_to-object.js": 3238/*!****************************************************!*\ 3239 !*** ./node_modules/core-js/modules/_to-object.js ***! 3240 \****************************************************/ 3241/*! no static exports found */ 3242/***/ (function(module, exports, __webpack_require__) { 3243 3244// 7.1.13 ToObject(argument) 3245var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); 3246module.exports = function (it) { 3247 return Object(defined(it)); 3248}; 3249 3250 3251/***/ }), 3252
vendor: 1,059 bytes, lines 3253-3275
3253/***/ "./node_modules/core-js/modules/_to-primitive.js": 3254/*!*******************************************************!*\ 3255 !*** ./node_modules/core-js/modules/_to-primitive.js ***! 3256 \*******************************************************/ 3257/*! no static exports found */ 3258/***/ (function(module, exports, __webpack_require__) { 3259 3260// 7.1.1 ToPrimitive(input [, PreferredType]) 3261var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 3262// instead of the ES6 spec version, we didn't implement @@toPrimitive case 3263// and the second argument - flag - preferred type is a string 3264module.exports = function (it, S) { 3265 if (!isObject(it)) return it; 3266 var fn, val; 3267 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 3268 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; 3269 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; 3270 throw TypeError("Can't convert object to primitive value"); 3271}; 3272 3273 3274/***/ }), 3275
vendor: 21,164 bytes, lines 3276-3767
3276/***/ "./node_modules/core-js/modules/_typed-array.js": 3277/*!******************************************************!*\ 3278 !*** ./node_modules/core-js/modules/_typed-array.js ***! 3279 \******************************************************/ 3280/*! no static exports found */ 3281/***/ (function(module, exports, __webpack_require__) { 3282 3283"use strict"; 3284 3285if (__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js")) { 3286 var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js"); 3287 var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 3288 var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 3289 var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 3290 var $typed = __webpack_require__(/*! ./_typed */ "./node_modules/core-js/modules/_typed.js"); 3291 var $buffer = __webpack_require__(/*! ./_typed-buffer */ "./node_modules/core-js/modules/_typed-buffer.js"); 3292 var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); 3293 var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); 3294 var propertyDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); 3295 var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); 3296 var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); 3297 var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); 3298 var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 3299 var toIndex = __webpack_require__(/*! ./_to-index */ "./node_modules/core-js/modules/_to-index.js"); 3300 var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); 3301 var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); 3302 var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); 3303 var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js"); 3304 var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 3305 var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); 3306 var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "./node_modules/core-js/modules/_is-array-iter.js"); 3307 var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js"); 3308 var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); 3309 var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f; 3310 var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "./node_modules/core-js/modules/core.get-iterator-method.js"); 3311 var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js"); 3312 var wks = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js"); 3313 var createArrayMethod = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js"); 3314 var createArrayIncludes = __webpack_require__(/*! ./_array-includes */ "./node_modules/core-js/modules/_array-includes.js"); 3315 var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js"); 3316 var ArrayIterators = __webpack_require__(/*! ./es6.array.iterator */ "./node_modules/core-js/modules/es6.array.iterator.js"); 3317 var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); 3318 var $iterDetect = __webpack_require__(/*! ./_iter-detect */ "./node_modules/core-js/modules/_iter-detect.js"); 3319 var setSpecies = __webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js"); 3320 var arrayFill = __webpack_require__(/*! ./_array-fill */ "./node_modules/core-js/modules/_array-fill.js"); 3321 var arrayCopyWithin = __webpack_require__(/*! ./_array-copy-within */ "./node_modules/core-js/modules/_array-copy-within.js"); 3322 var $DP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); 3323 var $GOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js"); 3324 var dP = $DP.f; 3325 var gOPD = $GOPD.f; 3326 var RangeError = global.RangeError; 3327 var TypeError = global.TypeError; 3328 var Uint8Array = global.Uint8Array; 3329 var ARRAY_BUFFER = 'ArrayBuffer'; 3330 var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER; 3331 var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; 3332 var PROTOTYPE = 'prototype'; 3333 var ArrayProto = Array[PROTOTYPE]; 3334 var $ArrayBuffer = $buffer.ArrayBuffer; 3335 var $DataView = $buffer.DataView; 3336 var arrayForEach = createArrayMethod(0); 3337 var arrayFilter = createArrayMethod(2); 3338 var arraySome = createArrayMethod(3); 3339 var arrayEvery = createArrayMethod(4); 3340 var arrayFind = createArrayMethod(5); 3341 var arrayFindIndex = createArrayMethod(6); 3342 var arrayIncludes = createArrayIncludes(true); 3343 var arrayIndexOf = createArrayIncludes(false); 3344 var arrayValues = ArrayIterators.values; 3345 var arrayKeys = ArrayIterators.keys; 3346 var arrayEntries = ArrayIterators.entries; 3347 var arrayLastIndexOf = ArrayProto.lastIndexOf; 3348 var arrayReduce = ArrayProto.reduce; 3349 var arrayReduceRight = ArrayProto.reduceRight; 3350 var arrayJoin = ArrayProto.join; 3351 var arraySort = ArrayProto.sort; 3352 var arraySlice = ArrayProto.slice; 3353 var arrayToString = ArrayProto.toString; 3354 var arrayToLocaleString = ArrayProto.toLocaleString; 3355 var ITERATOR = wks('iterator'); 3356 var TAG = wks('toStringTag'); 3357 var TYPED_CONSTRUCTOR = uid('typed_constructor'); 3358 var DEF_CONSTRUCTOR = uid('def_constructor'); 3359 var ALL_CONSTRUCTORS = $typed.CONSTR; 3360 var TYPED_ARRAY = $typed.TYPED; 3361 var VIEW = $typed.VIEW; 3362 var WRONG_LENGTH = 'Wrong length!'; 3363 3364 var $map = createArrayMethod(1, function (O, length) { 3365 return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length); 3366 }); 3367 3368 var LITTLE_ENDIAN = fails(function () { 3369 // eslint-disable-next-line no-undef 3370 return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; 3371 }); 3372 3373 var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () { 3374 new Uint8Array(1).set({}); 3375 }); 3376 3377 var toOffset = function (it, BYTES) { 3378 var offset = toInteger(it); 3379 if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!'); 3380 return offset; 3381 }; 3382 3383 var validate = function (it) { 3384 if (isObject(it) && TYPED_ARRAY in it) return it; 3385 throw TypeError(it + ' is not a typed array!'); 3386 }; 3387 3388 var allocate = function (C, length) { 3389 if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) { 3390 throw TypeError('It is not a typed array constructor!'); 3391 } return new C(length); 3392 }; 3393 3394 var speciesFromList = function (O, list) { 3395 return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list); 3396 }; 3397 3398 var fromList = function (C, list) { 3399 var index = 0; 3400 var length = list.length; 3401 var result = allocate(C, length); 3402 while (length > index) result[index] = list[index++]; 3403 return result; 3404 }; 3405 3406 var addGetter = function (it, key, internal) { 3407 dP(it, key, { get: function () { return this._d[internal]; } }); 3408 }; 3409 3410 var $from = function from(source /* , mapfn, thisArg */) { 3411 var O = toObject(source); 3412 var aLen = arguments.length; 3413 var mapfn = aLen > 1 ? arguments[1] : undefined; 3414 var mapping = mapfn !== undefined; 3415 var iterFn = getIterFn(O); 3416 var i, length, values, result, step, iterator; 3417 if (iterFn != undefined && !isArrayIter(iterFn)) { 3418 for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) { 3419 values.push(step.value); 3420 } O = values; 3421 } 3422 if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2); 3423 for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) { 3424 result[i] = mapping ? mapfn(O[i], i) : O[i]; 3425 } 3426 return result; 3427 }; 3428 3429 var $of = function of(/* ...items */) { 3430 var index = 0; 3431 var length = arguments.length; 3432 var result = allocate(this, length); 3433 while (length > index) result[index] = arguments[index++]; 3434 return result; 3435 }; 3436 3437 // iOS Safari 6.x fails here 3438 var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); }); 3439 3440 var $toLocaleString = function toLocaleString() { 3441 return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments); 3442 }; 3443 3444 var proto = { 3445 copyWithin: function copyWithin(target, start /* , end */) { 3446 return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined); 3447 }, 3448 every: function every(callbackfn /* , thisArg */) { 3449 return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); 3450 }, 3451 fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars 3452 return arrayFill.apply(validate(this), arguments); 3453 }, 3454 filter: function filter(callbackfn /* , thisArg */) { 3455 return speciesFromList(this, arrayFilter(validate(this), callbackfn, 3456 arguments.length > 1 ? arguments[1] : undefined)); 3457 }, 3458 find: function find(predicate /* , thisArg */) { 3459 return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); 3460 }, 3461 findIndex: function findIndex(predicate /* , thisArg */) { 3462 return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); 3463 }, 3464 forEach: function forEach(callbackfn /* , thisArg */) { 3465 arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); 3466 }, 3467 indexOf: function indexOf(searchElement /* , fromIndex */) { 3468 return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); 3469 }, 3470 includes: function includes(searchElement /* , fromIndex */) { 3471 return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); 3472 }, 3473 join: function join(separator) { // eslint-disable-line no-unused-vars 3474 return arrayJoin.apply(validate(this), arguments); 3475 }, 3476 lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars 3477 return arrayLastIndexOf.apply(validate(this), arguments); 3478 }, 3479 map: function map(mapfn /* , thisArg */) { 3480 return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined); 3481 }, 3482 reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars 3483 return arrayReduce.apply(validate(this), arguments); 3484 }, 3485 reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars 3486 return arrayReduceRight.apply(validate(this), arguments); 3487 }, 3488 reverse: function reverse() { 3489 var that = this; 3490 var length = validate(that).length; 3491 var middle = Math.floor(length / 2); 3492 var index = 0; 3493 var value; 3494 while (index < middle) { 3495 value = that[index]; 3496 that[index++] = that[--length]; 3497 that[length] = value; 3498 } return that; 3499 }, 3500 some: function some(callbackfn /* , thisArg */) { 3501 return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); 3502 }, 3503 sort: function sort(comparefn) { 3504 return arraySort.call(validate(this), comparefn); 3505 }, 3506 subarray: function subarray(begin, end) { 3507 var O = validate(this); 3508 var length = O.length; 3509 var $begin = toAbsoluteIndex(begin, length); 3510 return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))( 3511 O.buffer, 3512 O.byteOffset + $begin * O.BYTES_PER_ELEMENT, 3513 toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin) 3514 ); 3515 } 3516 }; 3517 3518 var $slice = function slice(start, end) { 3519 return speciesFromList(this, arraySlice.call(validate(this), start, end)); 3520 }; 3521 3522 var $set = function set(arrayLike /* , offset */) { 3523 validate(this); 3524 var offset = toOffset(arguments[1], 1); 3525 var length = this.length; 3526 var src = toObject(arrayLike); 3527 var len = toLength(src.length); 3528 var index = 0; 3529 if (len + offset > length) throw RangeError(WRONG_LENGTH); 3530 while (index < len) this[offset + index] = src[index++]; 3531 }; 3532 3533 var $iterators = { 3534 entries: function entries() { 3535 return arrayEntries.call(validate(this)); 3536 }, 3537 keys: function keys() { 3538 return arrayKeys.call(validate(this)); 3539 }, 3540 values: function values() { 3541 return arrayValues.call(validate(this)); 3542 } 3543 }; 3544 3545 var isTAIndex = function (target, key) { 3546 return isObject(target) 3547 && target[TYPED_ARRAY] 3548 && typeof key != 'symbol' 3549 && key in target 3550 && String(+key) == String(key); 3551 }; 3552 var $getDesc = function getOwnPropertyDescriptor(target, key) { 3553 return isTAIndex(target, key = toPrimitive(key, true)) 3554 ? propertyDesc(2, target[key]) 3555 : gOPD(target, key); 3556 }; 3557 var $setDesc = function defineProperty(target, key, desc) { 3558 if (isTAIndex(target, key = toPrimitive(key, true)) 3559 && isObject(desc) 3560 && has(desc, 'value') 3561 && !has(desc, 'get') 3562 && !has(desc, 'set') 3563 // TODO: add validation descriptor w/o calling accessors 3564 && !desc.configurable 3565 && (!has(desc, 'writable') || desc.writable) 3566 && (!has(desc, 'enumerable') || desc.enumerable) 3567 ) { 3568 target[key] = desc.value; 3569 return target; 3570 } return dP(target, key, desc); 3571 }; 3572 3573 if (!ALL_CONSTRUCTORS) { 3574 $GOPD.f = $getDesc; 3575 $DP.f = $setDesc; 3576 } 3577 3578 $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', { 3579 getOwnPropertyDescriptor: $getDesc, 3580 defineProperty: $setDesc 3581 }); 3582 3583 if (fails(function () { arrayToString.call({}); })) { 3584 arrayToString = arrayToLocaleString = function toString() { 3585 return arrayJoin.call(this); 3586 }; 3587 } 3588 3589 var $TypedArrayPrototype$ = redefineAll({}, proto); 3590 redefineAll($TypedArrayPrototype$, $iterators); 3591 hide($TypedArrayPrototype$, ITERATOR, $iterators.values); 3592 redefineAll($TypedArrayPrototype$, { 3593 slice: $slice, 3594 set: $set, 3595 constructor: function () { /* noop */ }, 3596 toString: arrayToString, 3597 toLocaleString: $toLocaleString 3598 }); 3599 addGetter($TypedArrayPrototype$, 'buffer', 'b'); 3600 addGetter($TypedArrayPrototype$, 'byteOffset', 'o'); 3601 addGetter($TypedArrayPrototype$, 'byteLength', 'l'); 3602 addGetter($TypedArrayPrototype$, 'length', 'e'); 3603 dP($TypedArrayPrototype$, TAG, { 3604 get: function () { return this[TYPED_ARRAY]; } 3605 }); 3606 3607 // eslint-disable-next-line max-statements 3608 module.exports = function (KEY, BYTES, wrapper, CLAMPED) { 3609 CLAMPED = !!CLAMPED; 3610 var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'; 3611 var GETTER = 'get' + KEY; 3612 var SETTER = 'set' + KEY; 3613 var TypedArray = global[NAME]; 3614 var Base = TypedArray || {}; 3615 var TAC = TypedArray && getPrototypeOf(TypedArray); 3616 var FORCED = !TypedArray || !$typed.ABV; 3617 var O = {}; 3618 var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE]; 3619 var getter = function (that, index) { 3620 var data = that._d; 3621 return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN); 3622 }; 3623 var setter = function (that, index, value) { 3624 var data = that._d; 3625 if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff; 3626 data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN); 3627 }; 3628 var addElement = function (that, index) { 3629 dP(that, index, { 3630 get: function () { 3631 return getter(this, index); 3632 }, 3633 set: function (value) { 3634 return setter(this, index, value); 3635 }, 3636 enumerable: true 3637 }); 3638 }; 3639 if (FORCED) { 3640 TypedArray = wrapper(function (that, data, $offset, $length) { 3641 anInstance(that, TypedArray, NAME, '_d'); 3642 var index = 0; 3643 var offset = 0; 3644 var buffer, byteLength, length, klass; 3645 if (!isObject(data)) { 3646 length = toIndex(data); 3647 byteLength = length * BYTES; 3648 buffer = new $ArrayBuffer(byteLength); 3649 } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { 3650 buffer = data; 3651 offset = toOffset($offset, BYTES); 3652 var $len = data.byteLength; 3653 if ($length === undefined) { 3654 if ($len % BYTES) throw RangeError(WRONG_LENGTH); 3655 byteLength = $len - offset; 3656 if (byteLength < 0) throw RangeError(WRONG_LENGTH); 3657 } else { 3658 byteLength = toLength($length) * BYTES; 3659 if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH); 3660 } 3661 length = byteLength / BYTES; 3662 } else if (TYPED_ARRAY in data) { 3663 return fromList(TypedArray, data); 3664 } else { 3665 return $from.call(TypedArray, data); 3666 } 3667 hide(that, '_d', { 3668 b: buffer, 3669 o: offset, 3670 l: byteLength, 3671 e: length, 3672 v: new $DataView(buffer) 3673 }); 3674 while (index < length) addElement(that, index++); 3675 }); 3676 TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$); 3677 hide(TypedArrayPrototype, 'constructor', TypedArray); 3678 } else if (!fails(function () { 3679 TypedArray(1); 3680 }) || !fails(function () { 3681 new TypedArray(-1); // eslint-disable-line no-new 3682 }) || !$iterDetect(function (iter) { 3683 new TypedArray(); // eslint-disable-line no-new 3684 new TypedArray(null); // eslint-disable-line no-new 3685 new TypedArray(1.5); // eslint-disable-line no-new 3686 new TypedArray(iter); // eslint-disable-line no-new 3687 }, true)) { 3688 TypedArray = wrapper(function (that, data, $offset, $length) { 3689 anInstance(that, TypedArray, NAME); 3690 var klass; 3691 // `ws` module bug, temporarily remove validation length for Uint8Array 3692 // https://github.com/websockets/ws/pull/645 3693 if (!isObject(data)) return new Base(toIndex(data)); 3694 if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { 3695 return $length !== undefined 3696 ? new Base(data, toOffset($offset, BYTES), $length) 3697 : $offset !== undefined 3698 ? new Base(data, toOffset($offset, BYTES)) 3699 : new Base(data); 3700 } 3701 if (TYPED_ARRAY in data) return fromList(TypedArray, data); 3702 return $from.call(TypedArray, data); 3703 }); 3704 arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) { 3705 if (!(key in TypedArray)) hide(TypedArray, key, Base[key]); 3706 }); 3707 TypedArray[PROTOTYPE] = TypedArrayPrototype; 3708 if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray; 3709 } 3710 var $nativeIterator = TypedArrayPrototype[ITERATOR]; 3711 var CORRECT_ITER_NAME = !!$nativeIterator 3712 && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined); 3713 var $iterator = $iterators.values; 3714 hide(TypedArray, TYPED_CONSTRUCTOR, true); 3715 hide(TypedArrayPrototype, TYPED_ARRAY, NAME); 3716 hide(TypedArrayPrototype, VIEW, true); 3717 hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray); 3718 3719 if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) { 3720 dP(TypedArrayPrototype, TAG, { 3721 get: function () { return NAME; } 3722 }); 3723 } 3724 3725 O[NAME] = TypedArray; 3726 3727 $export($export.G + $export.W + $export.F * (TypedArray != Base), O); 3728 3729 $export($export.S, NAME, { 3730 BYTES_PER_ELEMENT: BYTES 3731 }); 3732 3733 $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, { 3734 from: $from, 3735 of: $of 3736 }); 3737 3738 if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES); 3739 3740 $export($export.P, NAME, proto); 3741 3742 setSpecies(NAME); 3743 3744 $export($export.P + $export.F * FORCED_SET, NAME, { set: $set }); 3745 3746 $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators); 3747 3748 if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString; 3749 3750 $export($export.P + $export.F * fails(function () { 3751 new TypedArray(1).slice(); 3752 }), NAME, { slice: $slice }); 3753 3754 $export($export.P + $export.F * (fails(function () { 3755 return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString(); 3756 }) || !fails(function () { 3757 TypedArrayPrototype.toLocaleString.call([1, 2]); 3758 })), NAME, { toLocaleString: $toLocaleString }); 3759 3760 Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator; 3761 if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator); 3762 }; 3763} else module.exports = function () { /* empty */ }; 3764 3765 3766/***/ }), 3767
vendor: 10,780 bytes, lines 3768-4055
3768/***/ "./node_modules/core-js/modules/_typed-buffer.js": 3769/*!*******************************************************!*\ 3770 !*** ./node_modules/core-js/modules/_typed-buffer.js ***! 3771 \*******************************************************/ 3772/*! no static exports found */ 3773/***/ (function(module, exports, __webpack_require__) { 3774 3775"use strict"; 3776 3777var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 3778var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); 3779var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js"); 3780var $typed = __webpack_require__(/*! ./_typed */ "./node_modules/core-js/modules/_typed.js"); 3781var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); 3782var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); 3783var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 3784var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); 3785var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); 3786var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 3787var toIndex = __webpack_require__(/*! ./_to-index */ "./node_modules/core-js/modules/_to-index.js"); 3788var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f; 3789var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; 3790var arrayFill = __webpack_require__(/*! ./_array-fill */ "./node_modules/core-js/modules/_array-fill.js"); 3791var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js"); 3792var ARRAY_BUFFER = 'ArrayBuffer'; 3793var DATA_VIEW = 'DataView'; 3794var PROTOTYPE = 'prototype'; 3795var WRONG_LENGTH = 'Wrong length!'; 3796var WRONG_INDEX = 'Wrong index!'; 3797var $ArrayBuffer = global[ARRAY_BUFFER]; 3798var $DataView = global[DATA_VIEW]; 3799var Math = global.Math; 3800var RangeError = global.RangeError; 3801// eslint-disable-next-line no-shadow-restricted-names 3802var Infinity = global.Infinity; 3803var BaseBuffer = $ArrayBuffer; 3804var abs = Math.abs; 3805var pow = Math.pow; 3806var floor = Math.floor; 3807var log = Math.log; 3808var LN2 = Math.LN2; 3809var BUFFER = 'buffer'; 3810var BYTE_LENGTH = 'byteLength'; 3811var BYTE_OFFSET = 'byteOffset'; 3812var $BUFFER = DESCRIPTORS ? '_b' : BUFFER; 3813var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH; 3814var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET; 3815 3816// IEEE754 conversions based on https://github.com/feross/ieee754 3817function packIEEE754(value, mLen, nBytes) { 3818 var buffer = new Array(nBytes); 3819 var eLen = nBytes * 8 - mLen - 1; 3820 var eMax = (1 << eLen) - 1; 3821 var eBias = eMax >> 1; 3822 var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0; 3823 var i = 0; 3824 var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; 3825 var e, m, c; 3826 value = abs(value); 3827 // eslint-disable-next-line no-self-compare 3828 if (value != value || value === Infinity) { 3829 // eslint-disable-next-line no-self-compare 3830 m = value != value ? 1 : 0; 3831 e = eMax; 3832 } else { 3833 e = floor(log(value) / LN2); 3834 if (value * (c = pow(2, -e)) < 1) { 3835 e--; 3836 c *= 2; 3837 } 3838 if (e + eBias >= 1) { 3839 value += rt / c; 3840 } else { 3841 value += rt * pow(2, 1 - eBias); 3842 } 3843 if (value * c >= 2) { 3844 e++; 3845 c /= 2; 3846 } 3847 if (e + eBias >= eMax) { 3848 m = 0; 3849 e = eMax; 3850 } else if (e + eBias >= 1) { 3851 m = (value * c - 1) * pow(2, mLen); 3852 e = e + eBias; 3853 } else { 3854 m = value * pow(2, eBias - 1) * pow(2, mLen); 3855 e = 0; 3856 } 3857 } 3858 for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8); 3859 e = e << mLen | m; 3860 eLen += mLen; 3861 for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8); 3862 buffer[--i] |= s * 128; 3863 return buffer; 3864} 3865function unpackIEEE754(buffer, mLen, nBytes) { 3866 var eLen = nBytes * 8 - mLen - 1; 3867 var eMax = (1 << eLen) - 1; 3868 var eBias = eMax >> 1; 3869 var nBits = eLen - 7; 3870 var i = nBytes - 1; 3871 var s = buffer[i--]; 3872 var e = s & 127; 3873 var m; 3874 s >>= 7; 3875 for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8); 3876 m = e & (1 << -nBits) - 1; 3877 e >>= -nBits; 3878 nBits += mLen; 3879 for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8); 3880 if (e === 0) { 3881 e = 1 - eBias; 3882 } else if (e === eMax) { 3883 return m ? NaN : s ? -Infinity : Infinity; 3884 } else { 3885 m = m + pow(2, mLen); 3886 e = e - eBias; 3887 } return (s ? -1 : 1) * m * pow(2, e - mLen); 3888} 3889 3890function unpackI32(bytes) { 3891 return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0]; 3892} 3893function packI8(it) { 3894 return [it & 0xff]; 3895} 3896function packI16(it) { 3897 return [it & 0xff, it >> 8 & 0xff]; 3898} 3899function packI32(it) { 3900 return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff]; 3901} 3902function packF64(it) { 3903 return packIEEE754(it, 52, 8); 3904} 3905function packF32(it) { 3906 return packIEEE754(it, 23, 4); 3907} 3908 3909function addGetter(C, key, internal) { 3910 dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } }); 3911} 3912 3913function get(view, bytes, index, isLittleEndian) { 3914 var numIndex = +index; 3915 var intIndex = toIndex(numIndex); 3916 if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); 3917 var store = view[$BUFFER]._b; 3918 var start = intIndex + view[$OFFSET]; 3919 var pack = store.slice(start, start + bytes); 3920 return isLittleEndian ? pack : pack.reverse(); 3921} 3922function set(view, bytes, index, conversion, value, isLittleEndian) { 3923 var numIndex = +index; 3924 var intIndex = toIndex(numIndex); 3925 if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); 3926 var store = view[$BUFFER]._b; 3927 var start = intIndex + view[$OFFSET]; 3928 var pack = conversion(+value); 3929 for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1]; 3930} 3931 3932if (!$typed.ABV) { 3933 $ArrayBuffer = function ArrayBuffer(length) { 3934 anInstance(this, $ArrayBuffer, ARRAY_BUFFER); 3935 var byteLength = toIndex(length); 3936 this._b = arrayFill.call(new Array(byteLength), 0); 3937 this[$LENGTH] = byteLength; 3938 }; 3939 3940 $DataView = function DataView(buffer, byteOffset, byteLength) { 3941 anInstance(this, $DataView, DATA_VIEW); 3942 anInstance(buffer, $ArrayBuffer, DATA_VIEW); 3943 var bufferLength = buffer[$LENGTH]; 3944 var offset = toInteger(byteOffset); 3945 if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!'); 3946 byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); 3947 if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH); 3948 this[$BUFFER] = buffer; 3949 this[$OFFSET] = offset; 3950 this[$LENGTH] = byteLength; 3951 }; 3952 3953 if (DESCRIPTORS) { 3954 addGetter($ArrayBuffer, BYTE_LENGTH, '_l'); 3955 addGetter($DataView, BUFFER, '_b'); 3956 addGetter($DataView, BYTE_LENGTH, '_l'); 3957 addGetter($DataView, BYTE_OFFSET, '_o'); 3958 } 3959 3960 redefineAll($DataView[PROTOTYPE], { 3961 getInt8: function getInt8(byteOffset) { 3962 return get(this, 1, byteOffset)[0] << 24 >> 24; 3963 }, 3964 getUint8: function getUint8(byteOffset) { 3965 return get(this, 1, byteOffset)[0]; 3966 }, 3967 getInt16: function getInt16(byteOffset /* , littleEndian */) { 3968 var bytes = get(this, 2, byteOffset, arguments[1]); 3969 return (bytes[1] << 8 | bytes[0]) << 16 >> 16; 3970 }, 3971 getUint16: function getUint16(byteOffset /* , littleEndian */) { 3972 var bytes = get(this, 2, byteOffset, arguments[1]); 3973 return bytes[1] << 8 | bytes[0]; 3974 }, 3975 getInt32: function getInt32(byteOffset /* , littleEndian */) { 3976 return unpackI32(get(this, 4, byteOffset, arguments[1])); 3977 }, 3978 getUint32: function getUint32(byteOffset /* , littleEndian */) { 3979 return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0; 3980 }, 3981 getFloat32: function getFloat32(byteOffset /* , littleEndian */) { 3982 return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4); 3983 }, 3984 getFloat64: function getFloat64(byteOffset /* , littleEndian */) { 3985 return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8); 3986 }, 3987 setInt8: function setInt8(byteOffset, value) { 3988 set(this, 1, byteOffset, packI8, value); 3989 }, 3990 setUint8: function setUint8(byteOffset, value) { 3991 set(this, 1, byteOffset, packI8, value); 3992 }, 3993 setInt16: function setInt16(byteOffset, value /* , littleEndian */) { 3994 set(this, 2, byteOffset, packI16, value, arguments[2]); 3995 }, 3996 setUint16: function setUint16(byteOffset, value /* , littleEndian */) { 3997 set(this, 2, byteOffset, packI16, value, arguments[2]); 3998 }, 3999 setInt32: function setInt32(byteOffset, value /* , littleEndian */) { 4000 set(this, 4, byteOffset, packI32, value, arguments[2]); 4001 }, 4002 setUint32: function setUint32(byteOffset, value /* , littleEndian */) { 4003 set(this, 4, byteOffset, packI32, value, arguments[2]); 4004 }, 4005 setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) { 4006 set(this, 4, byteOffset, packF32, value, arguments[2]); 4007 }, 4008 setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) { 4009 set(this, 8, byteOffset, packF64, value, arguments[2]); 4010 } 4011 }); 4012} else { 4013 if (!fails(function () { 4014 $ArrayBuffer(1); 4015 }) || !fails(function () { 4016 new $ArrayBuffer(-1); // eslint-disable-line no-new 4017 }) || fails(function () { 4018 new $ArrayBuffer(); // eslint-disable-line no-new 4019 new $ArrayBuffer(1.5); // eslint-disable-line no-new 4020 new $ArrayBuffer(NaN); // eslint-disable-line no-new 4021 return $ArrayBuffer.name != ARRAY_BUFFER; 4022 })) { 4023 $ArrayBuffer = function ArrayBuffer(length) { 4024 anInstance(this, $ArrayBuffer); 4025 return new BaseBuffer(toIndex(length)); 4026 }; 4027 var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE]; 4028 for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) { 4029 if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]); 4030 } 4031 if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer; 4032 } 4033 // iOS Safari 7.x bug 4034 var view = new $DataView(new $ArrayBuffer(2)); 4035 var $setInt8 = $DataView[PROTOTYPE].setInt8; 4036 view.setInt8(0, 2147483648); 4037 view.setInt8(1, 2147483649); 4038 if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], { 4039 setInt8: function setInt8(byteOffset, value) { 4040 $setInt8.call(this, byteOffset, value << 24 >> 24); 4041 }, 4042 setUint8: function setUint8(byteOffset, value) { 4043 $setInt8.call(this, byteOffset, value << 24 >> 24); 4044 } 4045 }, true); 4046} 4047setToStringTag($ArrayBuffer, ARRAY_BUFFER); 4048setToStringTag($DataView, DATA_VIEW); 4049hide($DataView[PROTOTYPE], $typed.VIEW, true); 4050exports[ARRAY_BUFFER] = $ArrayBuffer; 4051exports[DATA_VIEW] = $DataView; 4052 4053 4054/***/ }), 4055
vendor: 1,164 bytes, lines 4056-4094
4056/***/ "./node_modules/core-js/modules/_typed.js": 4057/*!************************************************!*\ 4058 !*** ./node_modules/core-js/modules/_typed.js ***! 4059 \************************************************/ 4060/*! no static exports found */ 4061/***/ (function(module, exports, __webpack_require__) { 4062 4063var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 4064var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); 4065var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js"); 4066var TYPED = uid('typed_array'); 4067var VIEW = uid('view'); 4068var ABV = !!(global.ArrayBuffer && global.DataView); 4069var CONSTR = ABV; 4070var i = 0; 4071var l = 9; 4072var Typed; 4073 4074var TypedArrayConstructors = ( 4075 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array' 4076).split(','); 4077 4078while (i < l) { 4079 if (Typed = global[TypedArrayConstructors[i++]]) { 4080 hide(Typed.prototype, TYPED, true); 4081 hide(Typed.prototype, VIEW, true); 4082 } else CONSTR = false; 4083} 4084 4085module.exports = { 4086 ABV: ABV, 4087 CONSTR: CONSTR, 4088 TYPED: TYPED, 4089 VIEW: VIEW 4090}; 4091 4092 4093/***/ }), 4094
vendor: 445 bytes, lines 4095-4110
4095/***/ "./node_modules/core-js/modules/_uid.js": 4096/*!**********************************************!*\ 4097 !*** ./node_modules/core-js/modules/_uid.js ***! 4098 \**********************************************/ 4099/*! no static exports found */ 4100/***/ (function(module, exports) { 4101 4102var id = 0; 4103var px = Math.random(); 4104module.exports = function (key) { 4105 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); 4106}; 4107 4108 4109/***/ }), 4110
vendor: 520 bytes, lines 4111-4125
4111/***/ "./node_modules/core-js/modules/_user-agent.js": 4112/*!*****************************************************!*\ 4113 !*** ./node_modules/core-js/modules/_user-agent.js ***! 4114 \*****************************************************/ 4115/*! no static exports found */ 4116/***/ (function(module, exports, __webpack_require__) { 4117 4118var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 4119var navigator = global.navigator; 4120 4121module.exports = navigator && navigator.userAgent || ''; 4122 4123 4124/***/ }), 4125
vendor: 632 bytes, lines 4126-4141
4126/***/ "./node_modules/core-js/modules/_validate-collection.js": 4127/*!**************************************************************!*\ 4128 !*** ./node_modules/core-js/modules/_validate-collection.js ***! 4129 \**************************************************************/ 4130/*! no static exports found */ 4131/***/ (function(module, exports, __webpack_require__) { 4132 4133var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 4134module.exports = function (it, TYPE) { 4135 if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); 4136 return it; 4137}; 4138 4139 4140/***/ }), 4141
vendor: 1,057 bytes, lines 4142-4161
4142/***/ "./node_modules/core-js/modules/_wks-define.js": 4143/*!*****************************************************!*\ 4144 !*** ./node_modules/core-js/modules/_wks-define.js ***! 4145 \*****************************************************/ 4146/*! no static exports found */ 4147/***/ (function(module, exports, __webpack_require__) { 4148 4149var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 4150var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js"); 4151var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js"); 4152var wksExt = __webpack_require__(/*! ./_wks-ext */ "./node_modules/core-js/modules/_wks-ext.js"); 4153var defineProperty = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; 4154module.exports = function (name) { 4155 var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); 4156 if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); 4157}; 4158 4159 4160/***/ }), 4161
vendor: 409 bytes, lines 4162-4173
4162/***/ "./node_modules/core-js/modules/_wks-ext.js": 4163/*!**************************************************!*\ 4164 !*** ./node_modules/core-js/modules/_wks-ext.js ***! 4165 \**************************************************/ 4166/*! no static exports found */ 4167/***/ (function(module, exports, __webpack_require__) { 4168 4169exports.f = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js"); 4170 4171 4172/***/ }), 4173
vendor: 842 bytes, lines 4174-4195
4174/***/ "./node_modules/core-js/modules/_wks.js": 4175/*!**********************************************!*\ 4176 !*** ./node_modules/core-js/modules/_wks.js ***! 4177 \**********************************************/ 4178/*! no static exports found */ 4179/***/ (function(module, exports, __webpack_require__) { 4180 4181var store = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js")('wks'); 4182var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js"); 4183var Symbol = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").Symbol; 4184var USE_SYMBOL = typeof Symbol == 'function'; 4185 4186var $exports = module.exports = function (name) { 4187 return store[name] || (store[name] = 4188 USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); 4189}; 4190 4191$exports.store = store; 4192 4193 4194/***/ }), 4195
vendor: 924 bytes, lines 4196-4214
4196/***/ "./node_modules/core-js/modules/core.get-iterator-method.js": 4197/*!******************************************************************!*\ 4198 !*** ./node_modules/core-js/modules/core.get-iterator-method.js ***! 4199 \******************************************************************/ 4200/*! no static exports found */ 4201/***/ (function(module, exports, __webpack_require__) { 4202 4203var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js"); 4204var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'); 4205var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); 4206module.exports = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js").getIteratorMethod = function (it) { 4207 if (it != undefined) return it[ITERATOR] 4208 || it['@@iterator'] 4209 || Iterators[classof(it)]; 4210}; 4211 4212 4213/***/ }), 4214
vendor: 815 bytes, lines 4215-4231
4215/***/ "./node_modules/core-js/modules/es6.array.copy-within.js": 4216/*!***************************************************************!*\ 4217 !*** ./node_modules/core-js/modules/es6.array.copy-within.js ***! 4218 \***************************************************************/ 4219/*! no static exports found */ 4220/***/ (function(module, exports, __webpack_require__) { 4221 4222// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) 4223var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4224 4225$export($export.P, 'Array', { copyWithin: __webpack_require__(/*! ./_array-copy-within */ "./node_modules/core-js/modules/_array-copy-within.js") }); 4226 4227__webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")('copyWithin'); 4228 4229 4230/***/ }), 4231
vendor: 916 bytes, lines 4232-4253
4232/***/ "./node_modules/core-js/modules/es6.array.every.js": 4233/*!*********************************************************!*\ 4234 !*** ./node_modules/core-js/modules/es6.array.every.js ***! 4235 \*********************************************************/ 4236/*! no static exports found */ 4237/***/ (function(module, exports, __webpack_require__) { 4238 4239"use strict"; 4240 4241var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4242var $every = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(4); 4243 4244$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].every, true), 'Array', { 4245 // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg]) 4246 every: function every(callbackfn /* , thisArg */) { 4247 return $every(this, callbackfn, arguments[1]); 4248 } 4249}); 4250 4251 4252/***/ }), 4253
vendor: 758 bytes, lines 4254-4270
4254/***/ "./node_modules/core-js/modules/es6.array.fill.js": 4255/*!********************************************************!*\ 4256 !*** ./node_modules/core-js/modules/es6.array.fill.js ***! 4257 \********************************************************/ 4258/*! no static exports found */ 4259/***/ (function(module, exports, __webpack_require__) { 4260 4261// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) 4262var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4263 4264$export($export.P, 'Array', { fill: __webpack_require__(/*! ./_array-fill */ "./node_modules/core-js/modules/_array-fill.js") }); 4265 4266__webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")('fill'); 4267 4268 4269/***/ }), 4270
vendor: 926 bytes, lines 4271-4292
4271/***/ "./node_modules/core-js/modules/es6.array.filter.js": 4272/*!**********************************************************!*\ 4273 !*** ./node_modules/core-js/modules/es6.array.filter.js ***! 4274 \**********************************************************/ 4275/*! no static exports found */ 4276/***/ (function(module, exports, __webpack_require__) { 4277 4278"use strict"; 4279 4280var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4281var $filter = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(2); 4282 4283$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].filter, true), 'Array', { 4284 // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg]) 4285 filter: function filter(callbackfn /* , thisArg */) { 4286 return $filter(this, callbackfn, arguments[1]); 4287 } 4288}); 4289 4290 4291/***/ }), 4292
vendor: 1,118 bytes, lines 4293-4318
4293/***/ "./node_modules/core-js/modules/es6.array.find-index.js": 4294/*!**************************************************************!*\ 4295 !*** ./node_modules/core-js/modules/es6.array.find-index.js ***! 4296 \**************************************************************/ 4297/*! no static exports found */ 4298/***/ (function(module, exports, __webpack_require__) { 4299 4300"use strict"; 4301 4302// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined) 4303var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4304var $find = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(6); 4305var KEY = 'findIndex'; 4306var forced = true; 4307// Shouldn't skip holes 4308if (KEY in []) Array(1)[KEY](function () { forced = false; }); 4309$export($export.P + $export.F * forced, 'Array', { 4310 findIndex: function findIndex(callbackfn /* , that = undefined */) { 4311 return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); 4312 } 4313}); 4314__webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")(KEY); 4315 4316 4317/***/ }), 4318
vendor: 1,074 bytes, lines 4319-4344
4319/***/ "./node_modules/core-js/modules/es6.array.find.js": 4320/*!********************************************************!*\ 4321 !*** ./node_modules/core-js/modules/es6.array.find.js ***! 4322 \********************************************************/ 4323/*! no static exports found */ 4324/***/ (function(module, exports, __webpack_require__) { 4325 4326"use strict"; 4327 4328// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined) 4329var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4330var $find = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(5); 4331var KEY = 'find'; 4332var forced = true; 4333// Shouldn't skip holes 4334if (KEY in []) Array(1)[KEY](function () { forced = false; }); 4335$export($export.P + $export.F * forced, 'Array', { 4336 find: function find(callbackfn /* , that = undefined */) { 4337 return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); 4338 } 4339}); 4340__webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")(KEY); 4341 4342 4343/***/ }), 4344
vendor: 962 bytes, lines 4345-4367
4345/***/ "./node_modules/core-js/modules/es6.array.for-each.js": 4346/*!************************************************************!*\ 4347 !*** ./node_modules/core-js/modules/es6.array.for-each.js ***! 4348 \************************************************************/ 4349/*! no static exports found */ 4350/***/ (function(module, exports, __webpack_require__) { 4351 4352"use strict"; 4353 4354var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4355var $forEach = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(0); 4356var STRICT = __webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].forEach, true); 4357 4358$export($export.P + $export.F * !STRICT, 'Array', { 4359 // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg]) 4360 forEach: function forEach(callbackfn /* , thisArg */) { 4361 return $forEach(this, callbackfn, arguments[1]); 4362 } 4363}); 4364 4365 4366/***/ }), 4367
vendor: 2,573 bytes, lines 4368-4416
4368/***/ "./node_modules/core-js/modules/es6.array.from.js": 4369/*!********************************************************!*\ 4370 !*** ./node_modules/core-js/modules/es6.array.from.js ***! 4371 \********************************************************/ 4372/*! no static exports found */ 4373/***/ (function(module, exports, __webpack_require__) { 4374 4375"use strict"; 4376 4377var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); 4378var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4379var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); 4380var call = __webpack_require__(/*! ./_iter-call */ "./node_modules/core-js/modules/_iter-call.js"); 4381var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "./node_modules/core-js/modules/_is-array-iter.js"); 4382var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 4383var createProperty = __webpack_require__(/*! ./_create-property */ "./node_modules/core-js/modules/_create-property.js"); 4384var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "./node_modules/core-js/modules/core.get-iterator-method.js"); 4385 4386$export($export.S + $export.F * !__webpack_require__(/*! ./_iter-detect */ "./node_modules/core-js/modules/_iter-detect.js")(function (iter) { Array.from(iter); }), 'Array', { 4387 // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) 4388 from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { 4389 var O = toObject(arrayLike); 4390 var C = typeof this == 'function' ? this : Array; 4391 var aLen = arguments.length; 4392 var mapfn = aLen > 1 ? arguments[1] : undefined; 4393 var mapping = mapfn !== undefined; 4394 var index = 0; 4395 var iterFn = getIterFn(O); 4396 var length, result, step, iterator; 4397 if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); 4398 // if object isn't iterable or it's array with default iterator - use simple case 4399 if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { 4400 for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { 4401 createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); 4402 } 4403 } else { 4404 length = toLength(O.length); 4405 for (result = new C(length); length > index; index++) { 4406 createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); 4407 } 4408 } 4409 result.length = index; 4410 return result; 4411 } 4412}); 4413 4414 4415/***/ }), 4416
vendor: 1,153 bytes, lines 4417-4443
4417/***/ "./node_modules/core-js/modules/es6.array.index-of.js": 4418/*!************************************************************!*\ 4419 !*** ./node_modules/core-js/modules/es6.array.index-of.js ***! 4420 \************************************************************/ 4421/*! no static exports found */ 4422/***/ (function(module, exports, __webpack_require__) { 4423 4424"use strict"; 4425 4426var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4427var $indexOf = __webpack_require__(/*! ./_array-includes */ "./node_modules/core-js/modules/_array-includes.js")(false); 4428var $native = [].indexOf; 4429var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0; 4430 4431$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")($native)), 'Array', { 4432 // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex]) 4433 indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { 4434 return NEGATIVE_ZERO 4435 // convert -0 to +0 4436 ? $native.apply(this, arguments) || 0 4437 : $indexOf(this, searchElement, arguments[1]); 4438 } 4439}); 4440 4441 4442/***/ }), 4443
vendor: 629 bytes, lines 4444-4458
4444/***/ "./node_modules/core-js/modules/es6.array.is-array.js": 4445/*!************************************************************!*\ 4446 !*** ./node_modules/core-js/modules/es6.array.is-array.js ***! 4447 \************************************************************/ 4448/*! no static exports found */ 4449/***/ (function(module, exports, __webpack_require__) { 4450 4451// 22.1.2.2 / 15.4.3.2 Array.isArray(arg) 4452var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4453 4454$export($export.S, 'Array', { isArray: __webpack_require__(/*! ./_is-array */ "./node_modules/core-js/modules/_is-array.js") }); 4455 4456 4457/***/ }), 4458
vendor: 1,809 bytes, lines 4459-4504
4459/***/ "./node_modules/core-js/modules/es6.array.iterator.js": 4460/*!************************************************************!*\ 4461 !*** ./node_modules/core-js/modules/es6.array.iterator.js ***! 4462 \************************************************************/ 4463/*! no static exports found */ 4464/***/ (function(module, exports, __webpack_require__) { 4465 4466"use strict"; 4467 4468var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js"); 4469var step = __webpack_require__(/*! ./_iter-step */ "./node_modules/core-js/modules/_iter-step.js"); 4470var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); 4471var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); 4472 4473// 22.1.3.4 Array.prototype.entries() 4474// 22.1.3.13 Array.prototype.keys() 4475// 22.1.3.29 Array.prototype.values() 4476// 22.1.3.30 Array.prototype[@@iterator]() 4477module.exports = __webpack_require__(/*! ./_iter-define */ "./node_modules/core-js/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) { 4478 this._t = toIObject(iterated); // target 4479 this._i = 0; // next index 4480 this._k = kind; // kind 4481// 22.1.5.2.1 %ArrayIteratorPrototype%.next() 4482}, function () { 4483 var O = this._t; 4484 var kind = this._k; 4485 var index = this._i++; 4486 if (!O || index >= O.length) { 4487 this._t = undefined; 4488 return step(1); 4489 } 4490 if (kind == 'keys') return step(0, index); 4491 if (kind == 'values') return step(0, O[index]); 4492 return step(0, [index, O[index]]); 4493}, 'values'); 4494 4495// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) 4496Iterators.Arguments = Iterators.Array; 4497 4498addToUnscopables('keys'); 4499addToUnscopables('values'); 4500addToUnscopables('entries'); 4501 4502 4503/***/ }), 4504
vendor: 1,054 bytes, lines 4505-4528
4505/***/ "./node_modules/core-js/modules/es6.array.join.js": 4506/*!********************************************************!*\ 4507 !*** ./node_modules/core-js/modules/es6.array.join.js ***! 4508 \********************************************************/ 4509/*! no static exports found */ 4510/***/ (function(module, exports, __webpack_require__) { 4511 4512"use strict"; 4513 4514// 22.1.3.13 Array.prototype.join(separator) 4515var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4516var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); 4517var arrayJoin = [].join; 4518 4519// fallback for not array-like strings 4520$export($export.P + $export.F * (__webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js") != Object || !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")(arrayJoin)), 'Array', { 4521 join: function join(separator) { 4522 return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator); 4523 } 4524}); 4525 4526 4527/***/ }), 4528
vendor: 1,668 bytes, lines 4529-4562
4529/***/ "./node_modules/core-js/modules/es6.array.last-index-of.js": 4530/*!*****************************************************************!*\ 4531 !*** ./node_modules/core-js/modules/es6.array.last-index-of.js ***! 4532 \*****************************************************************/ 4533/*! no static exports found */ 4534/***/ (function(module, exports, __webpack_require__) { 4535 4536"use strict"; 4537 4538var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4539var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); 4540var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); 4541var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 4542var $native = [].lastIndexOf; 4543var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0; 4544 4545$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")($native)), 'Array', { 4546 // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex]) 4547 lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { 4548 // convert -0 to +0 4549 if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0; 4550 var O = toIObject(this); 4551 var length = toLength(O.length); 4552 var index = length - 1; 4553 if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1])); 4554 if (index < 0) index = length + index; 4555 for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0; 4556 return -1; 4557 } 4558}); 4559 4560 4561/***/ }), 4562
vendor: 897 bytes, lines 4563-4584
4563/***/ "./node_modules/core-js/modules/es6.array.map.js": 4564/*!*******************************************************!*\ 4565 !*** ./node_modules/core-js/modules/es6.array.map.js ***! 4566 \*******************************************************/ 4567/*! no static exports found */ 4568/***/ (function(module, exports, __webpack_require__) { 4569 4570"use strict"; 4571 4572var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4573var $map = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(1); 4574 4575$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].map, true), 'Array', { 4576 // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg]) 4577 map: function map(callbackfn /* , thisArg */) { 4578 return $map(this, callbackfn, arguments[1]); 4579 } 4580}); 4581 4582 4583/***/ }), 4584
vendor: 1,140 bytes, lines 4585-4615
4585/***/ "./node_modules/core-js/modules/es6.array.of.js": 4586/*!******************************************************!*\ 4587 !*** ./node_modules/core-js/modules/es6.array.of.js ***! 4588 \******************************************************/ 4589/*! no static exports found */ 4590/***/ (function(module, exports, __webpack_require__) { 4591 4592"use strict"; 4593 4594var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4595var createProperty = __webpack_require__(/*! ./_create-property */ "./node_modules/core-js/modules/_create-property.js"); 4596 4597// WebKit Array.of isn't generic 4598$export($export.S + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 4599 function F() { /* empty */ } 4600 return !(Array.of.call(F) instanceof F); 4601}), 'Array', { 4602 // 22.1.2.3 Array.of( ...items) 4603 of: function of(/* ...args */) { 4604 var index = 0; 4605 var aLen = arguments.length; 4606 var result = new (typeof this == 'function' ? this : Array)(aLen); 4607 while (aLen > index) createProperty(result, index, arguments[index++]); 4608 result.length = aLen; 4609 return result; 4610 } 4611}); 4612 4613 4614/***/ }), 4615
vendor: 1,000 bytes, lines 4616-4637
4616/***/ "./node_modules/core-js/modules/es6.array.reduce-right.js": 4617/*!****************************************************************!*\ 4618 !*** ./node_modules/core-js/modules/es6.array.reduce-right.js ***! 4619 \****************************************************************/ 4620/*! no static exports found */ 4621/***/ (function(module, exports, __webpack_require__) { 4622 4623"use strict"; 4624 4625var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4626var $reduce = __webpack_require__(/*! ./_array-reduce */ "./node_modules/core-js/modules/_array-reduce.js"); 4627 4628$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].reduceRight, true), 'Array', { 4629 // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue]) 4630 reduceRight: function reduceRight(callbackfn /* , initialValue */) { 4631 return $reduce(this, callbackfn, arguments.length, arguments[1], true); 4632 } 4633}); 4634 4635 4636/***/ }), 4637
vendor: 957 bytes, lines 4638-4659
4638/***/ "./node_modules/core-js/modules/es6.array.reduce.js": 4639/*!**********************************************************!*\ 4640 !*** ./node_modules/core-js/modules/es6.array.reduce.js ***! 4641 \**********************************************************/ 4642/*! no static exports found */ 4643/***/ (function(module, exports, __webpack_require__) { 4644 4645"use strict"; 4646 4647var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4648var $reduce = __webpack_require__(/*! ./_array-reduce */ "./node_modules/core-js/modules/_array-reduce.js"); 4649 4650$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].reduce, true), 'Array', { 4651 // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue]) 4652 reduce: function reduce(callbackfn /* , initialValue */) { 4653 return $reduce(this, callbackfn, arguments.length, arguments[1], false); 4654 } 4655}); 4656 4657 4658/***/ }), 4659
vendor: 1,656 bytes, lines 4660-4699
4660/***/ "./node_modules/core-js/modules/es6.array.slice.js": 4661/*!*********************************************************!*\ 4662 !*** ./node_modules/core-js/modules/es6.array.slice.js ***! 4663 \*********************************************************/ 4664/*! no static exports found */ 4665/***/ (function(module, exports, __webpack_require__) { 4666 4667"use strict"; 4668 4669var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4670var html = __webpack_require__(/*! ./_html */ "./node_modules/core-js/modules/_html.js"); 4671var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); 4672var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); 4673var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 4674var arraySlice = [].slice; 4675 4676// fallback for not array-like ES3 strings and DOM objects 4677$export($export.P + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 4678 if (html) arraySlice.call(html); 4679}), 'Array', { 4680 slice: function slice(begin, end) { 4681 var len = toLength(this.length); 4682 var klass = cof(this); 4683 end = end === undefined ? len : end; 4684 if (klass == 'Array') return arraySlice.call(this, begin, end); 4685 var start = toAbsoluteIndex(begin, len); 4686 var upTo = toAbsoluteIndex(end, len); 4687 var size = toLength(upTo - start); 4688 var cloned = new Array(size); 4689 var i = 0; 4690 for (; i < size; i++) cloned[i] = klass == 'String' 4691 ? this.charAt(start + i) 4692 : this[start + i]; 4693 return cloned; 4694 } 4695}); 4696 4697 4698/***/ }), 4699
vendor: 907 bytes, lines 4700-4721
4700/***/ "./node_modules/core-js/modules/es6.array.some.js": 4701/*!********************************************************!*\ 4702 !*** ./node_modules/core-js/modules/es6.array.some.js ***! 4703 \********************************************************/ 4704/*! no static exports found */ 4705/***/ (function(module, exports, __webpack_require__) { 4706 4707"use strict"; 4708 4709var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4710var $some = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(3); 4711 4712$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].some, true), 'Array', { 4713 // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg]) 4714 some: function some(callbackfn /* , thisArg */) { 4715 return $some(this, callbackfn, arguments[1]); 4716 } 4717}); 4718 4719 4720/***/ }), 4721
vendor: 1,306 bytes, lines 4722-4756
4722/***/ "./node_modules/core-js/modules/es6.array.sort.js": 4723/*!********************************************************!*\ 4724 !*** ./node_modules/core-js/modules/es6.array.sort.js ***! 4725 \********************************************************/ 4726/*! no static exports found */ 4727/***/ (function(module, exports, __webpack_require__) { 4728 4729"use strict"; 4730 4731var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4732var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); 4733var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); 4734var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 4735var $sort = [].sort; 4736var test = [1, 2, 3]; 4737 4738$export($export.P + $export.F * (fails(function () { 4739 // IE8- 4740 test.sort(undefined); 4741}) || !fails(function () { 4742 // V8 bug 4743 test.sort(null); 4744 // Old WebKit 4745}) || !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")($sort)), 'Array', { 4746 // 22.1.3.25 Array.prototype.sort(comparefn) 4747 sort: function sort(comparefn) { 4748 return comparefn === undefined 4749 ? $sort.call(toObject(this)) 4750 : $sort.call(toObject(this), aFunction(comparefn)); 4751 } 4752}); 4753 4754 4755/***/ }), 4756
vendor: 458 bytes, lines 4757-4768
4757/***/ "./node_modules/core-js/modules/es6.array.species.js": 4758/*!***********************************************************!*\ 4759 !*** ./node_modules/core-js/modules/es6.array.species.js ***! 4760 \***********************************************************/ 4761/*! no static exports found */ 4762/***/ (function(module, exports, __webpack_require__) { 4763 4764__webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js")('Array'); 4765 4766 4767/***/ }), 4768
vendor: 551 bytes, lines 4769-4783
4769/***/ "./node_modules/core-js/modules/es6.date.now.js": 4770/*!******************************************************!*\ 4771 !*** ./node_modules/core-js/modules/es6.date.now.js ***! 4772 \******************************************************/ 4773/*! no static exports found */ 4774/***/ (function(module, exports, __webpack_require__) { 4775 4776// 20.3.3.1 / 15.9.4.4 Date.now() 4777var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4778 4779$export($export.S, 'Date', { now: function () { return new Date().getTime(); } }); 4780 4781 4782/***/ }), 4783
vendor: 827 bytes, lines 4784-4802
4784/***/ "./node_modules/core-js/modules/es6.date.to-iso-string.js": 4785/*!****************************************************************!*\ 4786 !*** ./node_modules/core-js/modules/es6.date.to-iso-string.js ***! 4787 \****************************************************************/ 4788/*! no static exports found */ 4789/***/ (function(module, exports, __webpack_require__) { 4790 4791// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() 4792var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4793var toISOString = __webpack_require__(/*! ./_date-to-iso-string */ "./node_modules/core-js/modules/_date-to-iso-string.js"); 4794 4795// PhantomJS / old WebKit has a broken implementations 4796$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', { 4797 toISOString: toISOString 4798}); 4799 4800 4801/***/ }), 4802
vendor: 1,167 bytes, lines 4803-4830
4803/***/ "./node_modules/core-js/modules/es6.date.to-json.js": 4804/*!**********************************************************!*\ 4805 !*** ./node_modules/core-js/modules/es6.date.to-json.js ***! 4806 \**********************************************************/ 4807/*! no static exports found */ 4808/***/ (function(module, exports, __webpack_require__) { 4809 4810"use strict"; 4811 4812var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4813var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); 4814var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); 4815 4816$export($export.P + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 4817 return new Date(NaN).toJSON() !== null 4818 || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1; 4819}), 'Date', { 4820 // eslint-disable-next-line no-unused-vars 4821 toJSON: function toJSON(key) { 4822 var O = toObject(this); 4823 var pv = toPrimitive(O); 4824 return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); 4825 } 4826}); 4827 4828 4829/***/ }), 4830
vendor: 747 bytes, lines 4831-4845
4831/***/ "./node_modules/core-js/modules/es6.date.to-primitive.js": 4832/*!***************************************************************!*\ 4833 !*** ./node_modules/core-js/modules/es6.date.to-primitive.js ***! 4834 \***************************************************************/ 4835/*! no static exports found */ 4836/***/ (function(module, exports, __webpack_require__) { 4837 4838var TO_PRIMITIVE = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toPrimitive'); 4839var proto = Date.prototype; 4840 4841if (!(TO_PRIMITIVE in proto)) __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js")(proto, TO_PRIMITIVE, __webpack_require__(/*! ./_date-to-primitive */ "./node_modules/core-js/modules/_date-to-primitive.js")); 4842 4843 4844/***/ }), 4845
vendor: 858 bytes, lines 4846-4868
4846/***/ "./node_modules/core-js/modules/es6.date.to-string.js": 4847/*!************************************************************!*\ 4848 !*** ./node_modules/core-js/modules/es6.date.to-string.js ***! 4849 \************************************************************/ 4850/*! no static exports found */ 4851/***/ (function(module, exports, __webpack_require__) { 4852 4853var DateProto = Date.prototype; 4854var INVALID_DATE = 'Invalid Date'; 4855var TO_STRING = 'toString'; 4856var $toString = DateProto[TO_STRING]; 4857var getTime = DateProto.getTime; 4858if (new Date(NaN) + '' != INVALID_DATE) { 4859 __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(DateProto, TO_STRING, function toString() { 4860 var value = getTime.call(this); 4861 // eslint-disable-next-line no-self-compare 4862 return value === value ? $toString.call(this) : INVALID_DATE; 4863 }); 4864} 4865 4866 4867/***/ }), 4868
vendor: 640 bytes, lines 4869-4883
4869/***/ "./node_modules/core-js/modules/es6.function.bind.js": 4870/*!***********************************************************!*\ 4871 !*** ./node_modules/core-js/modules/es6.function.bind.js ***! 4872 \***********************************************************/ 4873/*! no static exports found */ 4874/***/ (function(module, exports, __webpack_require__) { 4875 4876// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...) 4877var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4878 4879$export($export.P, 'Function', { bind: __webpack_require__(/*! ./_bind */ "./node_modules/core-js/modules/_bind.js") }); 4880 4881 4882/***/ }), 4883
vendor: 1,304 bytes, lines 4884-4908
4884/***/ "./node_modules/core-js/modules/es6.function.has-instance.js": 4885/*!*******************************************************************!*\ 4886 !*** ./node_modules/core-js/modules/es6.function.has-instance.js ***! 4887 \*******************************************************************/ 4888/*! no static exports found */ 4889/***/ (function(module, exports, __webpack_require__) { 4890 4891"use strict"; 4892 4893var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 4894var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); 4895var HAS_INSTANCE = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('hasInstance'); 4896var FunctionProto = Function.prototype; 4897// 19.2.3.6 Function.prototype[@@hasInstance](V) 4898if (!(HAS_INSTANCE in FunctionProto)) __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f(FunctionProto, HAS_INSTANCE, { value: function (O) { 4899 if (typeof this != 'function' || !isObject(O)) return false; 4900 if (!isObject(this.prototype)) return O instanceof this; 4901 // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: 4902 while (O = getPrototypeOf(O)) if (this.prototype === O) return true; 4903 return false; 4904} }); 4905 4906 4907/***/ }), 4908
vendor: 841 bytes, lines 4909-4935
4909/***/ "./node_modules/core-js/modules/es6.function.name.js": 4910/*!***********************************************************!*\ 4911 !*** ./node_modules/core-js/modules/es6.function.name.js ***! 4912 \***********************************************************/ 4913/*! no static exports found */ 4914/***/ (function(module, exports, __webpack_require__) { 4915 4916var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; 4917var FProto = Function.prototype; 4918var nameRE = /^\s*function ([^ (]*)/; 4919var NAME = 'name'; 4920 4921// 19.2.4.2 name 4922NAME in FProto || __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && dP(FProto, NAME, { 4923 configurable: true, 4924 get: function () { 4925 try { 4926 return ('' + this).match(nameRE)[1]; 4927 } catch (e) { 4928 return ''; 4929 } 4930 } 4931}); 4932 4933 4934/***/ }), 4935
vendor: 1,170 bytes, lines 4936-4966
4936/***/ "./node_modules/core-js/modules/es6.map.js": 4937/*!*************************************************!*\ 4938 !*** ./node_modules/core-js/modules/es6.map.js ***! 4939 \*************************************************/ 4940/*! no static exports found */ 4941/***/ (function(module, exports, __webpack_require__) { 4942 4943"use strict"; 4944 4945var strong = __webpack_require__(/*! ./_collection-strong */ "./node_modules/core-js/modules/_collection-strong.js"); 4946var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); 4947var MAP = 'Map'; 4948 4949// 23.1 Map Objects 4950module.exports = __webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(MAP, function (get) { 4951 return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; 4952}, { 4953 // 23.1.3.6 Map.prototype.get(key) 4954 get: function get(key) { 4955 var entry = strong.getEntry(validate(this, MAP), key); 4956 return entry && entry.v; 4957 }, 4958 // 23.1.3.9 Map.prototype.set(key, value) 4959 set: function set(key, value) { 4960 return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); 4961 } 4962}, strong, true); 4963 4964 4965/***/ }), 4966
vendor: 1,041 bytes, lines 4967-4995
4967/***/ "./node_modules/core-js/modules/es6.math.acosh.js": 4968/*!********************************************************!*\ 4969 !*** ./node_modules/core-js/modules/es6.math.acosh.js ***! 4970 \********************************************************/ 4971/*! no static exports found */ 4972/***/ (function(module, exports, __webpack_require__) { 4973 4974// 20.2.2.3 Math.acosh(x) 4975var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 4976var log1p = __webpack_require__(/*! ./_math-log1p */ "./node_modules/core-js/modules/_math-log1p.js"); 4977var sqrt = Math.sqrt; 4978var $acosh = Math.acosh; 4979 4980$export($export.S + $export.F * !($acosh 4981 // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 4982 && Math.floor($acosh(Number.MAX_VALUE)) == 710 4983 // Tor Browser bug: Math.acosh(Infinity) -> NaN 4984 && $acosh(Infinity) == Infinity 4985), 'Math', { 4986 acosh: function acosh(x) { 4987 return (x = +x) < 1 ? NaN : x > 94906265.62425156 4988 ? Math.log(x) + Math.LN2 4989 : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1)); 4990 } 4991}); 4992 4993 4994/***/ }), 4995
vendor: 747 bytes, lines 4996-5016
4996/***/ "./node_modules/core-js/modules/es6.math.asinh.js": 4997/*!********************************************************!*\ 4998 !*** ./node_modules/core-js/modules/es6.math.asinh.js ***! 4999 \********************************************************/ 5000/*! no static exports found */ 5001/***/ (function(module, exports, __webpack_require__) { 5002 5003// 20.2.2.5 Math.asinh(x) 5004var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5005var $asinh = Math.asinh; 5006 5007function asinh(x) { 5008 return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1)); 5009} 5010 5011// Tor Browser bug: Math.asinh(0) -> -0 5012$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh }); 5013 5014 5015/***/ }), 5016
vendor: 709 bytes, lines 5017-5037
5017/***/ "./node_modules/core-js/modules/es6.math.atanh.js": 5018/*!********************************************************!*\ 5019 !*** ./node_modules/core-js/modules/es6.math.atanh.js ***! 5020 \********************************************************/ 5021/*! no static exports found */ 5022/***/ (function(module, exports, __webpack_require__) { 5023 5024// 20.2.2.7 Math.atanh(x) 5025var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5026var $atanh = Math.atanh; 5027 5028// Tor Browser bug: Math.atanh(-0) -> 0 5029$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', { 5030 atanh: function atanh(x) { 5031 return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2; 5032 } 5033}); 5034 5035 5036/***/ }), 5037
vendor: 683 bytes, lines 5038-5057
5038/***/ "./node_modules/core-js/modules/es6.math.cbrt.js": 5039/*!*******************************************************!*\ 5040 !*** ./node_modules/core-js/modules/es6.math.cbrt.js ***! 5041 \*******************************************************/ 5042/*! no static exports found */ 5043/***/ (function(module, exports, __webpack_require__) { 5044 5045// 20.2.2.9 Math.cbrt(x) 5046var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5047var sign = __webpack_require__(/*! ./_math-sign */ "./node_modules/core-js/modules/_math-sign.js"); 5048 5049$export($export.S, 'Math', { 5050 cbrt: function cbrt(x) { 5051 return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3); 5052 } 5053}); 5054 5055 5056/***/ }), 5057
vendor: 613 bytes, lines 5058-5076
5058/***/ "./node_modules/core-js/modules/es6.math.clz32.js": 5059/*!********************************************************!*\ 5060 !*** ./node_modules/core-js/modules/es6.math.clz32.js ***! 5061 \********************************************************/ 5062/*! no static exports found */ 5063/***/ (function(module, exports, __webpack_require__) { 5064 5065// 20.2.2.11 Math.clz32(x) 5066var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5067 5068$export($export.S, 'Math', { 5069 clz32: function clz32(x) { 5070 return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32; 5071 } 5072}); 5073 5074 5075/***/ }), 5076
vendor: 588 bytes, lines 5077-5096
5077/***/ "./node_modules/core-js/modules/es6.math.cosh.js": 5078/*!*******************************************************!*\ 5079 !*** ./node_modules/core-js/modules/es6.math.cosh.js ***! 5080 \*******************************************************/ 5081/*! no static exports found */ 5082/***/ (function(module, exports, __webpack_require__) { 5083 5084// 20.2.2.12 Math.cosh(x) 5085var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5086var exp = Math.exp; 5087 5088$export($export.S, 'Math', { 5089 cosh: function cosh(x) { 5090 return (exp(x = +x) + exp(-x)) / 2; 5091 } 5092}); 5093 5094 5095/***/ }), 5096
vendor: 657 bytes, lines 5097-5112
5097/***/ "./node_modules/core-js/modules/es6.math.expm1.js": 5098/*!********************************************************!*\ 5099 !*** ./node_modules/core-js/modules/es6.math.expm1.js ***! 5100 \********************************************************/ 5101/*! no static exports found */ 5102/***/ (function(module, exports, __webpack_require__) { 5103 5104// 20.2.2.14 Math.expm1(x) 5105var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5106var $expm1 = __webpack_require__(/*! ./_math-expm1 */ "./node_modules/core-js/modules/_math-expm1.js"); 5107 5108$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 }); 5109 5110 5111/***/ }), 5112
vendor: 607 bytes, lines 5113-5127
5113/***/ "./node_modules/core-js/modules/es6.math.fround.js": 5114/*!*********************************************************!*\ 5115 !*** ./node_modules/core-js/modules/es6.math.fround.js ***! 5116 \*********************************************************/ 5117/*! no static exports found */ 5118/***/ (function(module, exports, __webpack_require__) { 5119 5120// 20.2.2.16 Math.fround(x) 5121var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5122 5123$export($export.S, 'Math', { fround: __webpack_require__(/*! ./_math-fround */ "./node_modules/core-js/modules/_math-fround.js") }); 5124 5125 5126/***/ }), 5127
vendor: 1,069 bytes, lines 5128-5163
5128/***/ "./node_modules/core-js/modules/es6.math.hypot.js": 5129/*!********************************************************!*\ 5130 !*** ./node_modules/core-js/modules/es6.math.hypot.js ***! 5131 \********************************************************/ 5132/*! no static exports found */ 5133/***/ (function(module, exports, __webpack_require__) { 5134 5135// 20.2.2.17 Math.hypot([value1[, value2[, … ]]]) 5136var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5137var abs = Math.abs; 5138 5139$export($export.S, 'Math', { 5140 hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars 5141 var sum = 0; 5142 var i = 0; 5143 var aLen = arguments.length; 5144 var larg = 0; 5145 var arg, div; 5146 while (i < aLen) { 5147 arg = abs(arguments[i++]); 5148 if (larg < arg) { 5149 div = larg / arg; 5150 sum = sum * div * div + 1; 5151 larg = arg; 5152 } else if (arg > 0) { 5153 div = arg / larg; 5154 sum += div * div; 5155 } else sum += arg; 5156 } 5157 return larg === Infinity ? Infinity : larg * Math.sqrt(sum); 5158 } 5159}); 5160 5161 5162/***/ }), 5163
vendor: 1,000 bytes, lines 5164-5191
5164/***/ "./node_modules/core-js/modules/es6.math.imul.js": 5165/*!*******************************************************!*\ 5166 !*** ./node_modules/core-js/modules/es6.math.imul.js ***! 5167 \*******************************************************/ 5168/*! no static exports found */ 5169/***/ (function(module, exports, __webpack_require__) { 5170 5171// 20.2.2.18 Math.imul(x, y) 5172var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5173var $imul = Math.imul; 5174 5175// some WebKit versions fails with big numbers, some has wrong arity 5176$export($export.S + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 5177 return $imul(0xffffffff, 5) != -5 || $imul.length != 2; 5178}), 'Math', { 5179 imul: function imul(x, y) { 5180 var UINT16 = 0xffff; 5181 var xn = +x; 5182 var yn = +y; 5183 var xl = UINT16 & xn; 5184 var yl = UINT16 & yn; 5185 return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); 5186 } 5187}); 5188 5189 5190/***/ }), 5191
vendor: 573 bytes, lines 5192-5210
5192/***/ "./node_modules/core-js/modules/es6.math.log10.js": 5193/*!********************************************************!*\ 5194 !*** ./node_modules/core-js/modules/es6.math.log10.js ***! 5195 \********************************************************/ 5196/*! no static exports found */ 5197/***/ (function(module, exports, __webpack_require__) { 5198 5199// 20.2.2.21 Math.log10(x) 5200var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5201 5202$export($export.S, 'Math', { 5203 log10: function log10(x) { 5204 return Math.log(x) * Math.LOG10E; 5205 } 5206}); 5207 5208 5209/***/ }), 5210
vendor: 599 bytes, lines 5211-5225
5211/***/ "./node_modules/core-js/modules/es6.math.log1p.js": 5212/*!********************************************************!*\ 5213 !*** ./node_modules/core-js/modules/es6.math.log1p.js ***! 5214 \********************************************************/ 5215/*! no static exports found */ 5216/***/ (function(module, exports, __webpack_require__) { 5217 5218// 20.2.2.20 Math.log1p(x) 5219var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5220 5221$export($export.S, 'Math', { log1p: __webpack_require__(/*! ./_math-log1p */ "./node_modules/core-js/modules/_math-log1p.js") }); 5222 5223 5224/***/ }), 5225
vendor: 563 bytes, lines 5226-5244
5226/***/ "./node_modules/core-js/modules/es6.math.log2.js": 5227/*!*******************************************************!*\ 5228 !*** ./node_modules/core-js/modules/es6.math.log2.js ***! 5229 \*******************************************************/ 5230/*! no static exports found */ 5231/***/ (function(module, exports, __webpack_require__) { 5232 5233// 20.2.2.22 Math.log2(x) 5234var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5235 5236$export($export.S, 'Math', { 5237 log2: function log2(x) { 5238 return Math.log(x) / Math.LN2; 5239 } 5240}); 5241 5242 5243/***/ }), 5244
vendor: 591 bytes, lines 5245-5259
5245/***/ "./node_modules/core-js/modules/es6.math.sign.js": 5246/*!*******************************************************!*\ 5247 !*** ./node_modules/core-js/modules/es6.math.sign.js ***! 5248 \*******************************************************/ 5249/*! no static exports found */ 5250/***/ (function(module, exports, __webpack_require__) { 5251 5252// 20.2.2.28 Math.sign(x) 5253var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5254 5255$export($export.S, 'Math', { sign: __webpack_require__(/*! ./_math-sign */ "./node_modules/core-js/modules/_math-sign.js") }); 5256 5257 5258/***/ }), 5259
vendor: 980 bytes, lines 5260-5285
5260/***/ "./node_modules/core-js/modules/es6.math.sinh.js": 5261/*!*******************************************************!*\ 5262 !*** ./node_modules/core-js/modules/es6.math.sinh.js ***! 5263 \*******************************************************/ 5264/*! no static exports found */ 5265/***/ (function(module, exports, __webpack_require__) { 5266 5267// 20.2.2.30 Math.sinh(x) 5268var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5269var expm1 = __webpack_require__(/*! ./_math-expm1 */ "./node_modules/core-js/modules/_math-expm1.js"); 5270var exp = Math.exp; 5271 5272// V8 near Chromium 38 has a problem with very small numbers 5273$export($export.S + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 5274 return !Math.sinh(-2e-17) != -2e-17; 5275}), 'Math', { 5276 sinh: function sinh(x) { 5277 return Math.abs(x = +x) < 1 5278 ? (expm1(x) - expm1(-x)) / 2 5279 : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2); 5280 } 5281}); 5282 5283 5284/***/ }), 5285
vendor: 783 bytes, lines 5286-5308
5286/***/ "./node_modules/core-js/modules/es6.math.tanh.js": 5287/*!*******************************************************!*\ 5288 !*** ./node_modules/core-js/modules/es6.math.tanh.js ***! 5289 \*******************************************************/ 5290/*! no static exports found */ 5291/***/ (function(module, exports, __webpack_require__) { 5292 5293// 20.2.2.33 Math.tanh(x) 5294var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5295var expm1 = __webpack_require__(/*! ./_math-expm1 */ "./node_modules/core-js/modules/_math-expm1.js"); 5296var exp = Math.exp; 5297 5298$export($export.S, 'Math', { 5299 tanh: function tanh(x) { 5300 var a = expm1(x = +x); 5301 var b = expm1(-x); 5302 return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x)); 5303 } 5304}); 5305 5306 5307/***/ }), 5308
vendor: 586 bytes, lines 5309-5327
5309/***/ "./node_modules/core-js/modules/es6.math.trunc.js": 5310/*!********************************************************!*\ 5311 !*** ./node_modules/core-js/modules/es6.math.trunc.js ***! 5312 \********************************************************/ 5313/*! no static exports found */ 5314/***/ (function(module, exports, __webpack_require__) { 5315 5316// 20.2.2.34 Math.trunc(x) 5317var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5318 5319$export($export.S, 'Math', { 5320 trunc: function trunc(it) { 5321 return (it > 0 ? Math.floor : Math.ceil)(it); 5322 } 5323}); 5324 5325 5326/***/ }), 5327
vendor: 4,007 bytes, lines 5328-5408
5328/***/ "./node_modules/core-js/modules/es6.number.constructor.js": 5329/*!****************************************************************!*\ 5330 !*** ./node_modules/core-js/modules/es6.number.constructor.js ***! 5331 \****************************************************************/ 5332/*! no static exports found */ 5333/***/ (function(module, exports, __webpack_require__) { 5334 5335"use strict"; 5336 5337var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 5338var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); 5339var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); 5340var inheritIfRequired = __webpack_require__(/*! ./_inherit-if-required */ "./node_modules/core-js/modules/_inherit-if-required.js"); 5341var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); 5342var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 5343var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f; 5344var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f; 5345var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; 5346var $trim = __webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js").trim; 5347var NUMBER = 'Number'; 5348var $Number = global[NUMBER]; 5349var Base = $Number; 5350var proto = $Number.prototype; 5351// Opera ~12 has broken Object#toString 5352var BROKEN_COF = cof(__webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js")(proto)) == NUMBER; 5353var TRIM = 'trim' in String.prototype; 5354 5355// 7.1.3 ToNumber(argument) 5356var toNumber = function (argument) { 5357 var it = toPrimitive(argument, false); 5358 if (typeof it == 'string' && it.length > 2) { 5359 it = TRIM ? it.trim() : $trim(it, 3); 5360 var first = it.charCodeAt(0); 5361 var third, radix, maxCode; 5362 if (first === 43 || first === 45) { 5363 third = it.charCodeAt(2); 5364 if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix 5365 } else if (first === 48) { 5366 switch (it.charCodeAt(1)) { 5367 case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i 5368 case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i 5369 default: return +it; 5370 } 5371 for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) { 5372 code = digits.charCodeAt(i); 5373 // parseInt parses a string to a first unavailable symbol 5374 // but ToNumber should return NaN if a string contains unavailable symbols 5375 if (code < 48 || code > maxCode) return NaN; 5376 } return parseInt(digits, radix); 5377 } 5378 } return +it; 5379}; 5380 5381if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) { 5382 $Number = function Number(value) { 5383 var it = arguments.length < 1 ? 0 : value; 5384 var that = this; 5385 return that instanceof $Number 5386 // check on 1..constructor(foo) case 5387 && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER) 5388 ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it); 5389 }; 5390 for (var keys = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? gOPN(Base) : ( 5391 // ES3: 5392 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + 5393 // ES6 (in case, if modules with ES6 Number statics required before): 5394 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + 5395 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger' 5396 ).split(','), j = 0, key; keys.length > j; j++) { 5397 if (has(Base, key = keys[j]) && !has($Number, key)) { 5398 dP($Number, key, gOPD(Base, key)); 5399 } 5400 } 5401 $Number.prototype = proto; 5402 proto.constructor = $Number; 5403 __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(global, NUMBER, $Number); 5404} 5405 5406 5407/***/ }), 5408
vendor: 546 bytes, lines 5409-5423
5409/***/ "./node_modules/core-js/modules/es6.number.epsilon.js": 5410/*!************************************************************!*\ 5411 !*** ./node_modules/core-js/modules/es6.number.epsilon.js ***! 5412 \************************************************************/ 5413/*! no static exports found */ 5414/***/ (function(module, exports, __webpack_require__) { 5415 5416// 20.1.2.1 Number.EPSILON 5417var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5418 5419$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) }); 5420 5421 5422/***/ }), 5423
vendor: 736 bytes, lines 5424-5443
5424/***/ "./node_modules/core-js/modules/es6.number.is-finite.js": 5425/*!**************************************************************!*\ 5426 !*** ./node_modules/core-js/modules/es6.number.is-finite.js ***! 5427 \**************************************************************/ 5428/*! no static exports found */ 5429/***/ (function(module, exports, __webpack_require__) { 5430 5431// 20.1.2.2 Number.isFinite(number) 5432var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5433var _isFinite = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").isFinite; 5434 5435$export($export.S, 'Number', { 5436 isFinite: function isFinite(it) { 5437 return typeof it == 'number' && _isFinite(it); 5438 } 5439}); 5440 5441 5442/***/ }), 5443
vendor: 643 bytes, lines 5444-5458
5444/***/ "./node_modules/core-js/modules/es6.number.is-integer.js": 5445/*!***************************************************************!*\ 5446 !*** ./node_modules/core-js/modules/es6.number.is-integer.js ***! 5447 \***************************************************************/ 5448/*! no static exports found */ 5449/***/ (function(module, exports, __webpack_require__) { 5450 5451// 20.1.2.3 Number.isInteger(number) 5452var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5453 5454$export($export.S, 'Number', { isInteger: __webpack_require__(/*! ./_is-integer */ "./node_modules/core-js/modules/_is-integer.js") }); 5455 5456 5457/***/ }), 5458
vendor: 637 bytes, lines 5459-5478
5459/***/ "./node_modules/core-js/modules/es6.number.is-nan.js": 5460/*!***********************************************************!*\ 5461 !*** ./node_modules/core-js/modules/es6.number.is-nan.js ***! 5462 \***********************************************************/ 5463/*! no static exports found */ 5464/***/ (function(module, exports, __webpack_require__) { 5465 5466// 20.1.2.4 Number.isNaN(number) 5467var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5468 5469$export($export.S, 'Number', { 5470 isNaN: function isNaN(number) { 5471 // eslint-disable-next-line no-self-compare 5472 return number != number; 5473 } 5474}); 5475 5476 5477/***/ }), 5478
vendor: 812 bytes, lines 5479-5499
5479/***/ "./node_modules/core-js/modules/es6.number.is-safe-integer.js": 5480/*!********************************************************************!*\ 5481 !*** ./node_modules/core-js/modules/es6.number.is-safe-integer.js ***! 5482 \********************************************************************/ 5483/*! no static exports found */ 5484/***/ (function(module, exports, __webpack_require__) { 5485 5486// 20.1.2.5 Number.isSafeInteger(number) 5487var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5488var isInteger = __webpack_require__(/*! ./_is-integer */ "./node_modules/core-js/modules/_is-integer.js"); 5489var abs = Math.abs; 5490 5491$export($export.S, 'Number', { 5492 isSafeInteger: function isSafeInteger(number) { 5493 return isInteger(number) && abs(number) <= 0x1fffffffffffff; 5494 } 5495}); 5496 5497 5498/***/ }), 5499
vendor: 600 bytes, lines 5500-5514
5500/***/ "./node_modules/core-js/modules/es6.number.max-safe-integer.js": 5501/*!*********************************************************************!*\ 5502 !*** ./node_modules/core-js/modules/es6.number.max-safe-integer.js ***! 5503 \*********************************************************************/ 5504/*! no static exports found */ 5505/***/ (function(module, exports, __webpack_require__) { 5506 5507// 20.1.2.6 Number.MAX_SAFE_INTEGER 5508var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5509 5510$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff }); 5511 5512 5513/***/ }), 5514
vendor: 602 bytes, lines 5515-5529
5515/***/ "./node_modules/core-js/modules/es6.number.min-safe-integer.js": 5516/*!*********************************************************************!*\ 5517 !*** ./node_modules/core-js/modules/es6.number.min-safe-integer.js ***! 5518 \*********************************************************************/ 5519/*! no static exports found */ 5520/***/ (function(module, exports, __webpack_require__) { 5521 5522// 20.1.2.10 Number.MIN_SAFE_INTEGER 5523var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5524 5525$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff }); 5526 5527 5528/***/ }), 5529
vendor: 731 bytes, lines 5530-5544
5530/***/ "./node_modules/core-js/modules/es6.number.parse-float.js": 5531/*!****************************************************************!*\ 5532 !*** ./node_modules/core-js/modules/es6.number.parse-float.js ***! 5533 \****************************************************************/ 5534/*! no static exports found */ 5535/***/ (function(module, exports, __webpack_require__) { 5536 5537var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5538var $parseFloat = __webpack_require__(/*! ./_parse-float */ "./node_modules/core-js/modules/_parse-float.js"); 5539// 20.1.2.12 Number.parseFloat(string) 5540$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat }); 5541 5542 5543/***/ }), 5544
vendor: 714 bytes, lines 5545-5559
5545/***/ "./node_modules/core-js/modules/es6.number.parse-int.js": 5546/*!**************************************************************!*\ 5547 !*** ./node_modules/core-js/modules/es6.number.parse-int.js ***! 5548 \**************************************************************/ 5549/*! no static exports found */ 5550/***/ (function(module, exports, __webpack_require__) { 5551 5552var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5553var $parseInt = __webpack_require__(/*! ./_parse-int */ "./node_modules/core-js/modules/_parse-int.js"); 5554// 20.1.2.13 Number.parseInt(string, radix) 5555$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt }); 5556 5557 5558/***/ }), 5559
vendor: 3,458 bytes, lines 5560-5685
5560/***/ "./node_modules/core-js/modules/es6.number.to-fixed.js": 5561/*!*************************************************************!*\ 5562 !*** ./node_modules/core-js/modules/es6.number.to-fixed.js ***! 5563 \*************************************************************/ 5564/*! no static exports found */ 5565/***/ (function(module, exports, __webpack_require__) { 5566 5567"use strict"; 5568 5569var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5570var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); 5571var aNumberValue = __webpack_require__(/*! ./_a-number-value */ "./node_modules/core-js/modules/_a-number-value.js"); 5572var repeat = __webpack_require__(/*! ./_string-repeat */ "./node_modules/core-js/modules/_string-repeat.js"); 5573var $toFixed = 1.0.toFixed; 5574var floor = Math.floor; 5575var data = [0, 0, 0, 0, 0, 0]; 5576var ERROR = 'Number.toFixed: incorrect invocation!'; 5577var ZERO = '0'; 5578 5579var multiply = function (n, c) { 5580 var i = -1; 5581 var c2 = c; 5582 while (++i < 6) { 5583 c2 += n * data[i]; 5584 data[i] = c2 % 1e7; 5585 c2 = floor(c2 / 1e7); 5586 } 5587}; 5588var divide = function (n) { 5589 var i = 6; 5590 var c = 0; 5591 while (--i >= 0) { 5592 c += data[i]; 5593 data[i] = floor(c / n); 5594 c = (c % n) * 1e7; 5595 } 5596}; 5597var numToString = function () { 5598 var i = 6; 5599 var s = ''; 5600 while (--i >= 0) { 5601 if (s !== '' || i === 0 || data[i] !== 0) { 5602 var t = String(data[i]); 5603 s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t; 5604 } 5605 } return s; 5606}; 5607var pow = function (x, n, acc) { 5608 return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); 5609}; 5610var log = function (x) { 5611 var n = 0; 5612 var x2 = x; 5613 while (x2 >= 4096) { 5614 n += 12; 5615 x2 /= 4096; 5616 } 5617 while (x2 >= 2) { 5618 n += 1; 5619 x2 /= 2; 5620 } return n; 5621}; 5622 5623$export($export.P + $export.F * (!!$toFixed && ( 5624 0.00008.toFixed(3) !== '0.000' || 5625 0.9.toFixed(0) !== '1' || 5626 1.255.toFixed(2) !== '1.25' || 5627 1000000000000000128.0.toFixed(0) !== '1000000000000000128' 5628) || !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 5629 // V8 ~ Android 4.3- 5630 $toFixed.call({}); 5631})), 'Number', { 5632 toFixed: function toFixed(fractionDigits) { 5633 var x = aNumberValue(this, ERROR); 5634 var f = toInteger(fractionDigits); 5635 var s = ''; 5636 var m = ZERO; 5637 var e, z, j, k; 5638 if (f < 0 || f > 20) throw RangeError(ERROR); 5639 // eslint-disable-next-line no-self-compare 5640 if (x != x) return 'NaN'; 5641 if (x <= -1e21 || x >= 1e21) return String(x); 5642 if (x < 0) { 5643 s = '-'; 5644 x = -x; 5645 } 5646 if (x > 1e-21) { 5647 e = log(x * pow(2, 69, 1)) - 69; 5648 z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1); 5649 z *= 0x10000000000000; 5650 e = 52 - e; 5651 if (e > 0) { 5652 multiply(0, z); 5653 j = f; 5654 while (j >= 7) { 5655 multiply(1e7, 0); 5656 j -= 7; 5657 } 5658 multiply(pow(10, j, 1), 0); 5659 j = e - 1; 5660 while (j >= 23) { 5661 divide(1 << 23); 5662 j -= 23; 5663 } 5664 divide(1 << j); 5665 multiply(1, 1); 5666 divide(2); 5667 m = numToString(); 5668 } else { 5669 multiply(0, z); 5670 multiply(1 << -e, 0); 5671 m = numToString() + repeat.call(ZERO, f); 5672 } 5673 } 5674 if (f > 0) { 5675 k = m.length; 5676 m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f)); 5677 } else { 5678 m = s + m; 5679 } return m; 5680 } 5681}); 5682 5683 5684/***/ }), 5685
vendor: 1,184 bytes, lines 5686-5715
5686/***/ "./node_modules/core-js/modules/es6.number.to-precision.js": 5687/*!*****************************************************************!*\ 5688 !*** ./node_modules/core-js/modules/es6.number.to-precision.js ***! 5689 \*****************************************************************/ 5690/*! no static exports found */ 5691/***/ (function(module, exports, __webpack_require__) { 5692 5693"use strict"; 5694 5695var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5696var $fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 5697var aNumberValue = __webpack_require__(/*! ./_a-number-value */ "./node_modules/core-js/modules/_a-number-value.js"); 5698var $toPrecision = 1.0.toPrecision; 5699 5700$export($export.P + $export.F * ($fails(function () { 5701 // IE7- 5702 return $toPrecision.call(1, undefined) !== '1'; 5703}) || !$fails(function () { 5704 // V8 ~ Android 4.3- 5705 $toPrecision.call({}); 5706})), 'Number', { 5707 toPrecision: function toPrecision(precision) { 5708 var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!'); 5709 return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision); 5710 } 5711}); 5712 5713 5714/***/ }), 5715
vendor: 647 bytes, lines 5716-5730
5716/***/ "./node_modules/core-js/modules/es6.object.assign.js": 5717/*!***********************************************************!*\ 5718 !*** ./node_modules/core-js/modules/es6.object.assign.js ***! 5719 \***********************************************************/ 5720/*! no static exports found */ 5721/***/ (function(module, exports, __webpack_require__) { 5722 5723// 19.1.3.1 Object.assign(target, source) 5724var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5725 5726$export($export.S + $export.F, 'Object', { assign: __webpack_require__(/*! ./_object-assign */ "./node_modules/core-js/modules/_object-assign.js") }); 5727 5728 5729/***/ }), 5730
vendor: 647 bytes, lines 5731-5744
5731/***/ "./node_modules/core-js/modules/es6.object.create.js": 5732/*!***********************************************************!*\ 5733 !*** ./node_modules/core-js/modules/es6.object.create.js ***! 5734 \***********************************************************/ 5735/*! no static exports found */ 5736/***/ (function(module, exports, __webpack_require__) { 5737 5738var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5739// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) 5740$export($export.S, 'Object', { create: __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js") }); 5741 5742 5743/***/ }), 5744
vendor: 809 bytes, lines 5745-5758
5745/***/ "./node_modules/core-js/modules/es6.object.define-properties.js": 5746/*!**********************************************************************!*\ 5747 !*** ./node_modules/core-js/modules/es6.object.define-properties.js ***! 5748 \**********************************************************************/ 5749/*! no static exports found */ 5750/***/ (function(module, exports, __webpack_require__) { 5751 5752var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5753// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) 5754$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"), 'Object', { defineProperties: __webpack_require__(/*! ./_object-dps */ "./node_modules/core-js/modules/_object-dps.js") }); 5755 5756 5757/***/ }), 5758
vendor: 800 bytes, lines 5759-5772
5759/***/ "./node_modules/core-js/modules/es6.object.define-property.js": 5760/*!********************************************************************!*\ 5761 !*** ./node_modules/core-js/modules/es6.object.define-property.js ***! 5762 \********************************************************************/ 5763/*! no static exports found */ 5764/***/ (function(module, exports, __webpack_require__) { 5765 5766var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5767// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) 5768$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"), 'Object', { defineProperty: __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f }); 5769 5770 5771/***/ }), 5772
vendor: 811 bytes, lines 5773-5792
5773/***/ "./node_modules/core-js/modules/es6.object.freeze.js": 5774/*!***********************************************************!*\ 5775 !*** ./node_modules/core-js/modules/es6.object.freeze.js ***! 5776 \***********************************************************/ 5777/*! no static exports found */ 5778/***/ (function(module, exports, __webpack_require__) { 5779 5780// 19.1.2.5 Object.freeze(O) 5781var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 5782var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").onFreeze; 5783 5784__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('freeze', function ($freeze) { 5785 return function freeze(it) { 5786 return $freeze && isObject(it) ? $freeze(meta(it)) : it; 5787 }; 5788}); 5789 5790 5791/***/ }), 5792
vendor: 978 bytes, lines 5793-5812
5793/***/ "./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js": 5794/*!********************************************************************************!*\ 5795 !*** ./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js ***! 5796 \********************************************************************************/ 5797/*! no static exports found */ 5798/***/ (function(module, exports, __webpack_require__) { 5799 5800// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) 5801var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); 5802var $getOwnPropertyDescriptor = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f; 5803 5804__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('getOwnPropertyDescriptor', function () { 5805 return function getOwnPropertyDescriptor(it, key) { 5806 return $getOwnPropertyDescriptor(toIObject(it), key); 5807 }; 5808}); 5809 5810 5811/***/ }), 5812
vendor: 705 bytes, lines 5813-5827
5813/***/ "./node_modules/core-js/modules/es6.object.get-own-property-names.js": 5814/*!***************************************************************************!*\ 5815 !*** ./node_modules/core-js/modules/es6.object.get-own-property-names.js ***! 5816 \***************************************************************************/ 5817/*! no static exports found */ 5818/***/ (function(module, exports, __webpack_require__) { 5819 5820// 19.1.2.7 Object.getOwnPropertyNames(O) 5821__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('getOwnPropertyNames', function () { 5822 return __webpack_require__(/*! ./_object-gopn-ext */ "./node_modules/core-js/modules/_object-gopn-ext.js").f; 5823}); 5824 5825 5826/***/ }), 5827
vendor: 863 bytes, lines 5828-5847
5828/***/ "./node_modules/core-js/modules/es6.object.get-prototype-of.js": 5829/*!*********************************************************************!*\ 5830 !*** ./node_modules/core-js/modules/es6.object.get-prototype-of.js ***! 5831 \*********************************************************************/ 5832/*! no static exports found */ 5833/***/ (function(module, exports, __webpack_require__) { 5834 5835// 19.1.2.9 Object.getPrototypeOf(O) 5836var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); 5837var $getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); 5838 5839__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('getPrototypeOf', function () { 5840 return function getPrototypeOf(it) { 5841 return $getPrototypeOf(toObject(it)); 5842 }; 5843}); 5844 5845 5846/***/ }), 5847
vendor: 780 bytes, lines 5848-5866
5848/***/ "./node_modules/core-js/modules/es6.object.is-extensible.js": 5849/*!******************************************************************!*\ 5850 !*** ./node_modules/core-js/modules/es6.object.is-extensible.js ***! 5851 \******************************************************************/ 5852/*! no static exports found */ 5853/***/ (function(module, exports, __webpack_require__) { 5854 5855// 19.1.2.11 Object.isExtensible(O) 5856var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 5857 5858__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('isExtensible', function ($isExtensible) { 5859 return function isExtensible(it) { 5860 return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false; 5861 }; 5862}); 5863 5864 5865/***/ }), 5866
vendor: 740 bytes, lines 5867-5885
5867/***/ "./node_modules/core-js/modules/es6.object.is-frozen.js": 5868/*!**************************************************************!*\ 5869 !*** ./node_modules/core-js/modules/es6.object.is-frozen.js ***! 5870 \**************************************************************/ 5871/*! no static exports found */ 5872/***/ (function(module, exports, __webpack_require__) { 5873 5874// 19.1.2.12 Object.isFrozen(O) 5875var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 5876 5877__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('isFrozen', function ($isFrozen) { 5878 return function isFrozen(it) { 5879 return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true; 5880 }; 5881}); 5882 5883 5884/***/ }), 5885
vendor: 740 bytes, lines 5886-5904
5886/***/ "./node_modules/core-js/modules/es6.object.is-sealed.js": 5887/*!**************************************************************!*\ 5888 !*** ./node_modules/core-js/modules/es6.object.is-sealed.js ***! 5889 \**************************************************************/ 5890/*! no static exports found */ 5891/***/ (function(module, exports, __webpack_require__) { 5892 5893// 19.1.2.13 Object.isSealed(O) 5894var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 5895 5896__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('isSealed', function ($isSealed) { 5897 return function isSealed(it) { 5898 return isObject(it) ? $isSealed ? $isSealed(it) : false : true; 5899 }; 5900}); 5901 5902 5903/***/ }), 5904
vendor: 605 bytes, lines 5905-5918
5905/***/ "./node_modules/core-js/modules/es6.object.is.js": 5906/*!*******************************************************!*\ 5907 !*** ./node_modules/core-js/modules/es6.object.is.js ***! 5908 \*******************************************************/ 5909/*! no static exports found */ 5910/***/ (function(module, exports, __webpack_require__) { 5911 5912// 19.1.3.10 Object.is(value1, value2) 5913var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5914$export($export.S, 'Object', { is: __webpack_require__(/*! ./_same-value */ "./node_modules/core-js/modules/_same-value.js") }); 5915 5916 5917/***/ }), 5918
vendor: 768 bytes, lines 5919-5938
5919/***/ "./node_modules/core-js/modules/es6.object.keys.js": 5920/*!*********************************************************!*\ 5921 !*** ./node_modules/core-js/modules/es6.object.keys.js ***! 5922 \*********************************************************/ 5923/*! no static exports found */ 5924/***/ (function(module, exports, __webpack_require__) { 5925 5926// 19.1.2.14 Object.keys(O) 5927var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); 5928var $keys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); 5929 5930__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('keys', function () { 5931 return function keys(it) { 5932 return $keys(toObject(it)); 5933 }; 5934}); 5935 5936 5937/***/ }), 5938
vendor: 926 bytes, lines 5939-5958
5939/***/ "./node_modules/core-js/modules/es6.object.prevent-extensions.js": 5940/*!***********************************************************************!*\ 5941 !*** ./node_modules/core-js/modules/es6.object.prevent-extensions.js ***! 5942 \***********************************************************************/ 5943/*! no static exports found */ 5944/***/ (function(module, exports, __webpack_require__) { 5945 5946// 19.1.2.15 Object.preventExtensions(O) 5947var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 5948var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").onFreeze; 5949 5950__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('preventExtensions', function ($preventExtensions) { 5951 return function preventExtensions(it) { 5952 return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it; 5953 }; 5954}); 5955 5956 5957/***/ }), 5958
vendor: 792 bytes, lines 5959-5978
5959/***/ "./node_modules/core-js/modules/es6.object.seal.js": 5960/*!*********************************************************!*\ 5961 !*** ./node_modules/core-js/modules/es6.object.seal.js ***! 5962 \*********************************************************/ 5963/*! no static exports found */ 5964/***/ (function(module, exports, __webpack_require__) { 5965 5966// 19.1.2.17 Object.seal(O) 5967var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 5968var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").onFreeze; 5969 5970__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('seal', function ($seal) { 5971 return function seal(it) { 5972 return $seal && isObject(it) ? $seal(meta(it)) : it; 5973 }; 5974}); 5975 5976 5977/***/ }), 5978
vendor: 681 bytes, lines 5979-5992
5979/***/ "./node_modules/core-js/modules/es6.object.set-prototype-of.js": 5980/*!*********************************************************************!*\ 5981 !*** ./node_modules/core-js/modules/es6.object.set-prototype-of.js ***! 5982 \*********************************************************************/ 5983/*! no static exports found */ 5984/***/ (function(module, exports, __webpack_require__) { 5985 5986// 19.1.3.19 Object.setPrototypeOf(O, proto) 5987var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 5988$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(/*! ./_set-proto */ "./node_modules/core-js/modules/_set-proto.js").set }); 5989 5990 5991/***/ }), 5992
vendor: 873 bytes, lines 5993-6014
5993/***/ "./node_modules/core-js/modules/es6.object.to-string.js": 5994/*!**************************************************************!*\ 5995 !*** ./node_modules/core-js/modules/es6.object.to-string.js ***! 5996 \**************************************************************/ 5997/*! no static exports found */ 5998/***/ (function(module, exports, __webpack_require__) { 5999 6000"use strict"; 6001 6002// 19.1.3.6 Object.prototype.toString() 6003var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js"); 6004var test = {}; 6005test[__webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toStringTag')] = 'z'; 6006if (test + '' != '[object z]') { 6007 __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(Object.prototype, 'toString', function toString() { 6008 return '[object ' + classof(this) + ']'; 6009 }, true); 6010} 6011 6012 6013/***/ }), 6014
vendor: 676 bytes, lines 6015-6029
6015/***/ "./node_modules/core-js/modules/es6.parse-float.js": 6016/*!*********************************************************!*\ 6017 !*** ./node_modules/core-js/modules/es6.parse-float.js ***! 6018 \*********************************************************/ 6019/*! no static exports found */ 6020/***/ (function(module, exports, __webpack_require__) { 6021 6022var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6023var $parseFloat = __webpack_require__(/*! ./_parse-float */ "./node_modules/core-js/modules/_parse-float.js"); 6024// 18.2.4 parseFloat(string) 6025$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat }); 6026 6027 6028/***/ }), 6029
vendor: 659 bytes, lines 6030-6044
6030/***/ "./node_modules/core-js/modules/es6.parse-int.js": 6031/*!*******************************************************!*\ 6032 !*** ./node_modules/core-js/modules/es6.parse-int.js ***! 6033 \*******************************************************/ 6034/*! no static exports found */ 6035/***/ (function(module, exports, __webpack_require__) { 6036 6037var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6038var $parseInt = __webpack_require__(/*! ./_parse-int */ "./node_modules/core-js/modules/_parse-int.js"); 6039// 18.2.5 parseInt(string, radix) 6040$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt }); 6041 6042 6043/***/ }), 6044
vendor: 11,564 bytes, lines 6045-6342
6045/***/ "./node_modules/core-js/modules/es6.promise.js": 6046/*!*****************************************************!*\ 6047 !*** ./node_modules/core-js/modules/es6.promise.js ***! 6048 \*****************************************************/ 6049/*! no static exports found */ 6050/***/ (function(module, exports, __webpack_require__) { 6051 6052"use strict"; 6053 6054var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js"); 6055var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 6056var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); 6057var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js"); 6058var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6059var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 6060var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); 6061var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); 6062var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); 6063var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js"); 6064var task = __webpack_require__(/*! ./_task */ "./node_modules/core-js/modules/_task.js").set; 6065var microtask = __webpack_require__(/*! ./_microtask */ "./node_modules/core-js/modules/_microtask.js")(); 6066var newPromiseCapabilityModule = __webpack_require__(/*! ./_new-promise-capability */ "./node_modules/core-js/modules/_new-promise-capability.js"); 6067var perform = __webpack_require__(/*! ./_perform */ "./node_modules/core-js/modules/_perform.js"); 6068var userAgent = __webpack_require__(/*! ./_user-agent */ "./node_modules/core-js/modules/_user-agent.js"); 6069var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "./node_modules/core-js/modules/_promise-resolve.js"); 6070var PROMISE = 'Promise'; 6071var TypeError = global.TypeError; 6072var process = global.process; 6073var versions = process && process.versions; 6074var v8 = versions && versions.v8 || ''; 6075var $Promise = global[PROMISE]; 6076var isNode = classof(process) == 'process'; 6077var empty = function () { /* empty */ }; 6078var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; 6079var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; 6080 6081var USE_NATIVE = !!function () { 6082 try { 6083 // correct subclassing with @@species support 6084 var promise = $Promise.resolve(1); 6085 var FakePromise = (promise.constructor = {})[__webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species')] = function (exec) { 6086 exec(empty, empty); 6087 }; 6088 // unhandled rejections tracking support, NodeJS Promise without it fails @@species test 6089 return (isNode || typeof PromiseRejectionEvent == 'function') 6090 && promise.then(empty) instanceof FakePromise 6091 // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables 6092 // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 6093 // we can't detect it synchronously, so just check versions 6094 && v8.indexOf('6.6') !== 0 6095 && userAgent.indexOf('Chrome/66') === -1; 6096 } catch (e) { /* empty */ } 6097}(); 6098 6099// helpers 6100var isThenable = function (it) { 6101 var then; 6102 return isObject(it) && typeof (then = it.then) == 'function' ? then : false; 6103}; 6104var notify = function (promise, isReject) { 6105 if (promise._n) return; 6106 promise._n = true; 6107 var chain = promise._c; 6108 microtask(function () { 6109 var value = promise._v; 6110 var ok = promise._s == 1; 6111 var i = 0; 6112 var run = function (reaction) { 6113 var handler = ok ? reaction.ok : reaction.fail; 6114 var resolve = reaction.resolve; 6115 var reject = reaction.reject; 6116 var domain = reaction.domain; 6117 var result, then, exited; 6118 try { 6119 if (handler) { 6120 if (!ok) { 6121 if (promise._h == 2) onHandleUnhandled(promise); 6122 promise._h = 1; 6123 } 6124 if (handler === true) result = value; 6125 else { 6126 if (domain) domain.enter(); 6127 result = handler(value); // may throw 6128 if (domain) { 6129 domain.exit(); 6130 exited = true; 6131 } 6132 } 6133 if (result === reaction.promise) { 6134 reject(TypeError('Promise-chain cycle')); 6135 } else if (then = isThenable(result)) { 6136 then.call(result, resolve, reject); 6137 } else resolve(result); 6138 } else reject(value); 6139 } catch (e) { 6140 if (domain && !exited) domain.exit(); 6141 reject(e); 6142 } 6143 }; 6144 while (chain.length > i) run(chain[i++]); // variable length - can't use forEach 6145 promise._c = []; 6146 promise._n = false; 6147 if (isReject && !promise._h) onUnhandled(promise); 6148 }); 6149}; 6150var onUnhandled = function (promise) { 6151 task.call(global, function () { 6152 var value = promise._v; 6153 var unhandled = isUnhandled(promise); 6154 var result, handler, console; 6155 if (unhandled) { 6156 result = perform(function () { 6157 if (isNode) { 6158 process.emit('unhandledRejection', value, promise); 6159 } else if (handler = global.onunhandledrejection) { 6160 handler({ promise: promise, reason: value }); 6161 } else if ((console = global.console) && console.error) { 6162 console.error('Unhandled promise rejection', value); 6163 } 6164 }); 6165 // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should 6166 promise._h = isNode || isUnhandled(promise) ? 2 : 1; 6167 } promise._a = undefined; 6168 if (unhandled && result.e) throw result.v; 6169 }); 6170}; 6171var isUnhandled = function (promise) { 6172 return promise._h !== 1 && (promise._a || promise._c).length === 0; 6173}; 6174var onHandleUnhandled = function (promise) { 6175 task.call(global, function () { 6176 var handler; 6177 if (isNode) { 6178 process.emit('rejectionHandled', promise); 6179 } else if (handler = global.onrejectionhandled) { 6180 handler({ promise: promise, reason: promise._v }); 6181 } 6182 }); 6183}; 6184var $reject = function (value) { 6185 var promise = this; 6186 if (promise._d) return; 6187 promise._d = true; 6188 promise = promise._w || promise; // unwrap 6189 promise._v = value; 6190 promise._s = 2; 6191 if (!promise._a) promise._a = promise._c.slice(); 6192 notify(promise, true); 6193}; 6194var $resolve = function (value) { 6195 var promise = this; 6196 var then; 6197 if (promise._d) return; 6198 promise._d = true; 6199 promise = promise._w || promise; // unwrap 6200 try { 6201 if (promise === value) throw TypeError("Promise can't be resolved itself"); 6202 if (then = isThenable(value)) { 6203 microtask(function () { 6204 var wrapper = { _w: promise, _d: false }; // wrap 6205 try { 6206 then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); 6207 } catch (e) { 6208 $reject.call(wrapper, e); 6209 } 6210 }); 6211 } else { 6212 promise._v = value; 6213 promise._s = 1; 6214 notify(promise, false); 6215 } 6216 } catch (e) { 6217 $reject.call({ _w: promise, _d: false }, e); // wrap 6218 } 6219}; 6220 6221// constructor polyfill 6222if (!USE_NATIVE) { 6223 // 25.4.3.1 Promise(executor) 6224 $Promise = function Promise(executor) { 6225 anInstance(this, $Promise, PROMISE, '_h'); 6226 aFunction(executor); 6227 Internal.call(this); 6228 try { 6229 executor(ctx($resolve, this, 1), ctx($reject, this, 1)); 6230 } catch (err) { 6231 $reject.call(this, err); 6232 } 6233 }; 6234 // eslint-disable-next-line no-unused-vars 6235 Internal = function Promise(executor) { 6236 this._c = []; // <- awaiting reactions 6237 this._a = undefined; // <- checked in isUnhandled reactions 6238 this._s = 0; // <- state 6239 this._d = false; // <- done 6240 this._v = undefined; // <- value 6241 this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled 6242 this._n = false; // <- notify 6243 }; 6244 Internal.prototype = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js")($Promise.prototype, { 6245 // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) 6246 then: function then(onFulfilled, onRejected) { 6247 var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); 6248 reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; 6249 reaction.fail = typeof onRejected == 'function' && onRejected; 6250 reaction.domain = isNode ? process.domain : undefined; 6251 this._c.push(reaction); 6252 if (this._a) this._a.push(reaction); 6253 if (this._s) notify(this, false); 6254 return reaction.promise; 6255 }, 6256 // 25.4.5.1 Promise.prototype.catch(onRejected) 6257 'catch': function (onRejected) { 6258 return this.then(undefined, onRejected); 6259 } 6260 }); 6261 OwnPromiseCapability = function () { 6262 var promise = new Internal(); 6263 this.promise = promise; 6264 this.resolve = ctx($resolve, promise, 1); 6265 this.reject = ctx($reject, promise, 1); 6266 }; 6267 newPromiseCapabilityModule.f = newPromiseCapability = function (C) { 6268 return C === $Promise || C === Wrapper 6269 ? new OwnPromiseCapability(C) 6270 : newGenericPromiseCapability(C); 6271 }; 6272} 6273 6274$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); 6275__webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js")($Promise, PROMISE); 6276__webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js")(PROMISE); 6277Wrapper = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js")[PROMISE]; 6278 6279// statics 6280$export($export.S + $export.F * !USE_NATIVE, PROMISE, { 6281 // 25.4.4.5 Promise.reject(r) 6282 reject: function reject(r) { 6283 var capability = newPromiseCapability(this); 6284 var $$reject = capability.reject; 6285 $$reject(r); 6286 return capability.promise; 6287 } 6288}); 6289$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { 6290 // 25.4.4.6 Promise.resolve(x) 6291 resolve: function resolve(x) { 6292 return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); 6293 } 6294}); 6295$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(/*! ./_iter-detect */ "./node_modules/core-js/modules/_iter-detect.js")(function (iter) { 6296 $Promise.all(iter)['catch'](empty); 6297})), PROMISE, { 6298 // 25.4.4.1 Promise.all(iterable) 6299 all: function all(iterable) { 6300 var C = this; 6301 var capability = newPromiseCapability(C); 6302 var resolve = capability.resolve; 6303 var reject = capability.reject; 6304 var result = perform(function () { 6305 var values = []; 6306 var index = 0; 6307 var remaining = 1; 6308 forOf(iterable, false, function (promise) { 6309 var $index = index++; 6310 var alreadyCalled = false; 6311 values.push(undefined); 6312 remaining++; 6313 C.resolve(promise).then(function (value) { 6314 if (alreadyCalled) return; 6315 alreadyCalled = true; 6316 values[$index] = value; 6317 --remaining || resolve(values); 6318 }, reject); 6319 }); 6320 --remaining || resolve(values); 6321 }); 6322 if (result.e) reject(result.v); 6323 return capability.promise; 6324 }, 6325 // 25.4.4.4 Promise.race(iterable) 6326 race: function race(iterable) { 6327 var C = this; 6328 var capability = newPromiseCapability(C); 6329 var reject = capability.reject; 6330 var result = perform(function () { 6331 forOf(iterable, false, function (promise) { 6332 C.resolve(promise).then(capability.resolve, reject); 6333 }); 6334 }); 6335 if (result.e) reject(result.v); 6336 return capability.promise; 6337 } 6338}); 6339 6340 6341/***/ }), 6342
vendor: 1,322 bytes, lines 6343-6369
6343/***/ "./node_modules/core-js/modules/es6.reflect.apply.js": 6344/*!***********************************************************!*\ 6345 !*** ./node_modules/core-js/modules/es6.reflect.apply.js ***! 6346 \***********************************************************/ 6347/*! no static exports found */ 6348/***/ (function(module, exports, __webpack_require__) { 6349 6350// 26.1.1 Reflect.apply(target, thisArgument, argumentsList) 6351var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6352var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); 6353var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 6354var rApply = (__webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").Reflect || {}).apply; 6355var fApply = Function.apply; 6356// MS Edge argumentsList argument is optional 6357$export($export.S + $export.F * !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 6358 rApply(function () { /* empty */ }); 6359}), 'Reflect', { 6360 apply: function apply(target, thisArgument, argumentsList) { 6361 var T = aFunction(target); 6362 var L = anObject(argumentsList); 6363 return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L); 6364 } 6365}); 6366 6367 6368/***/ }), 6369
vendor: 2,867 bytes, lines 6370-6427
6370/***/ "./node_modules/core-js/modules/es6.reflect.construct.js": 6371/*!***************************************************************!*\ 6372 !*** ./node_modules/core-js/modules/es6.reflect.construct.js ***! 6373 \***************************************************************/ 6374/*! no static exports found */ 6375/***/ (function(module, exports, __webpack_require__) { 6376 6377// 26.1.2 Reflect.construct(target, argumentsList [, newTarget]) 6378var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6379var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js"); 6380var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); 6381var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 6382var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 6383var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 6384var bind = __webpack_require__(/*! ./_bind */ "./node_modules/core-js/modules/_bind.js"); 6385var rConstruct = (__webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").Reflect || {}).construct; 6386 6387// MS Edge supports only 2 arguments and argumentsList argument is optional 6388// FF Nightly sets third argument as `new.target`, but does not create `this` from it 6389var NEW_TARGET_BUG = fails(function () { 6390 function F() { /* empty */ } 6391 return !(rConstruct(function () { /* empty */ }, [], F) instanceof F); 6392}); 6393var ARGS_BUG = !fails(function () { 6394 rConstruct(function () { /* empty */ }); 6395}); 6396 6397$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', { 6398 construct: function construct(Target, args /* , newTarget */) { 6399 aFunction(Target); 6400 anObject(args); 6401 var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]); 6402 if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget); 6403 if (Target == newTarget) { 6404 // w/o altered newTarget, optimization for 0-4 arguments 6405 switch (args.length) { 6406 case 0: return new Target(); 6407 case 1: return new Target(args[0]); 6408 case 2: return new Target(args[0], args[1]); 6409 case 3: return new Target(args[0], args[1], args[2]); 6410 case 4: return new Target(args[0], args[1], args[2], args[3]); 6411 } 6412 // w/o altered newTarget, lot of arguments case 6413 var $args = [null]; 6414 $args.push.apply($args, args); 6415 return new (bind.apply(Target, $args))(); 6416 } 6417 // with altered newTarget, not support built-in constructors 6418 var proto = newTarget.prototype; 6419 var instance = create(isObject(proto) ? proto : Object.prototype); 6420 var result = Function.apply.call(Target, instance, args); 6421 return isObject(result) ? result : instance; 6422 } 6423}); 6424 6425 6426/***/ }), 6427
vendor: 1,511 bytes, lines 6428-6461
6428/***/ "./node_modules/core-js/modules/es6.reflect.define-property.js": 6429/*!*********************************************************************!*\ 6430 !*** ./node_modules/core-js/modules/es6.reflect.define-property.js ***! 6431 \*********************************************************************/ 6432/*! no static exports found */ 6433/***/ (function(module, exports, __webpack_require__) { 6434 6435// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes) 6436var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); 6437var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6438var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 6439var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); 6440 6441// MS Edge has broken Reflect.defineProperty - throwing instead of returning false 6442$export($export.S + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 6443 // eslint-disable-next-line no-undef 6444 Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 }); 6445}), 'Reflect', { 6446 defineProperty: function defineProperty(target, propertyKey, attributes) { 6447 anObject(target); 6448 propertyKey = toPrimitive(propertyKey, true); 6449 anObject(attributes); 6450 try { 6451 dP.f(target, propertyKey, attributes); 6452 return true; 6453 } catch (e) { 6454 return false; 6455 } 6456 } 6457}); 6458 6459 6460/***/ }), 6461
vendor: 991 bytes, lines 6462-6483
6462/***/ "./node_modules/core-js/modules/es6.reflect.delete-property.js": 6463/*!*********************************************************************!*\ 6464 !*** ./node_modules/core-js/modules/es6.reflect.delete-property.js ***! 6465 \*********************************************************************/ 6466/*! no static exports found */ 6467/***/ (function(module, exports, __webpack_require__) { 6468 6469// 26.1.4 Reflect.deleteProperty(target, propertyKey) 6470var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6471var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f; 6472var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 6473 6474$export($export.S, 'Reflect', { 6475 deleteProperty: function deleteProperty(target, propertyKey) { 6476 var desc = gOPD(anObject(target), propertyKey); 6477 return desc && !desc.configurable ? false : delete target[propertyKey]; 6478 } 6479}); 6480 6481 6482/***/ }), 6483
vendor: 1,313 bytes, lines 6484-6521
6484/***/ "./node_modules/core-js/modules/es6.reflect.enumerate.js": 6485/*!***************************************************************!*\ 6486 !*** ./node_modules/core-js/modules/es6.reflect.enumerate.js ***! 6487 \***************************************************************/ 6488/*! no static exports found */ 6489/***/ (function(module, exports, __webpack_require__) { 6490 6491"use strict"; 6492 6493// 26.1.5 Reflect.enumerate(target) 6494var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6495var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 6496var Enumerate = function (iterated) { 6497 this._t = anObject(iterated); // target 6498 this._i = 0; // next index 6499 var keys = this._k = []; // keys 6500 var key; 6501 for (key in iterated) keys.push(key); 6502}; 6503__webpack_require__(/*! ./_iter-create */ "./node_modules/core-js/modules/_iter-create.js")(Enumerate, 'Object', function () { 6504 var that = this; 6505 var keys = that._k; 6506 var key; 6507 do { 6508 if (that._i >= keys.length) return { value: undefined, done: true }; 6509 } while (!((key = keys[that._i++]) in that._t)); 6510 return { value: key, done: false }; 6511}); 6512 6513$export($export.S, 'Reflect', { 6514 enumerate: function enumerate(target) { 6515 return new Enumerate(target); 6516 } 6517}); 6518 6519 6520/***/ }), 6521
vendor: 989 bytes, lines 6522-6542
6522/***/ "./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js": 6523/*!*********************************************************************************!*\ 6524 !*** ./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js ***! 6525 \*********************************************************************************/ 6526/*! no static exports found */ 6527/***/ (function(module, exports, __webpack_require__) { 6528 6529// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey) 6530var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js"); 6531var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6532var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 6533 6534$export($export.S, 'Reflect', { 6535 getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { 6536 return gOPD.f(anObject(target), propertyKey); 6537 } 6538}); 6539 6540 6541/***/ }), 6542
vendor: 880 bytes, lines 6543-6563
6543/***/ "./node_modules/core-js/modules/es6.reflect.get-prototype-of.js": 6544/*!**********************************************************************!*\ 6545 !*** ./node_modules/core-js/modules/es6.reflect.get-prototype-of.js ***! 6546 \**********************************************************************/ 6547/*! no static exports found */ 6548/***/ (function(module, exports, __webpack_require__) { 6549 6550// 26.1.8 Reflect.getPrototypeOf(target) 6551var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6552var getProto = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); 6553var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 6554 6555$export($export.S, 'Reflect', { 6556 getPrototypeOf: function getPrototypeOf(target) { 6557 return getProto(anObject(target)); 6558 } 6559}); 6560 6561 6562/***/ }), 6563
vendor: 1,516 bytes, lines 6564-6595
6564/***/ "./node_modules/core-js/modules/es6.reflect.get.js": 6565/*!*********************************************************!*\ 6566 !*** ./node_modules/core-js/modules/es6.reflect.get.js ***! 6567 \*********************************************************/ 6568/*! no static exports found */ 6569/***/ (function(module, exports, __webpack_require__) { 6570 6571// 26.1.6 Reflect.get(target, propertyKey [, receiver]) 6572var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js"); 6573var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); 6574var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); 6575var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6576var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 6577var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 6578 6579function get(target, propertyKey /* , receiver */) { 6580 var receiver = arguments.length < 3 ? target : arguments[2]; 6581 var desc, proto; 6582 if (anObject(target) === receiver) return target[propertyKey]; 6583 if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value') 6584 ? desc.value 6585 : desc.get !== undefined 6586 ? desc.get.call(receiver) 6587 : undefined; 6588 if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver); 6589} 6590 6591$export($export.S, 'Reflect', { get: get }); 6592 6593 6594/***/ }), 6595
vendor: 606 bytes, lines 6596-6614
6596/***/ "./node_modules/core-js/modules/es6.reflect.has.js": 6597/*!*********************************************************!*\ 6598 !*** ./node_modules/core-js/modules/es6.reflect.has.js ***! 6599 \*********************************************************/ 6600/*! no static exports found */ 6601/***/ (function(module, exports, __webpack_require__) { 6602 6603// 26.1.9 Reflect.has(target, propertyKey) 6604var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6605 6606$export($export.S, 'Reflect', { 6607 has: function has(target, propertyKey) { 6608 return propertyKey in target; 6609 } 6610}); 6611 6612 6613/***/ }), 6614
vendor: 838 bytes, lines 6615-6636
6615/***/ "./node_modules/core-js/modules/es6.reflect.is-extensible.js": 6616/*!*******************************************************************!*\ 6617 !*** ./node_modules/core-js/modules/es6.reflect.is-extensible.js ***! 6618 \*******************************************************************/ 6619/*! no static exports found */ 6620/***/ (function(module, exports, __webpack_require__) { 6621 6622// 26.1.10 Reflect.isExtensible(target) 6623var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6624var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 6625var $isExtensible = Object.isExtensible; 6626 6627$export($export.S, 'Reflect', { 6628 isExtensible: function isExtensible(target) { 6629 anObject(target); 6630 return $isExtensible ? $isExtensible(target) : true; 6631 } 6632}); 6633 6634 6635/***/ }), 6636
vendor: 632 bytes, lines 6637-6651
6637/***/ "./node_modules/core-js/modules/es6.reflect.own-keys.js": 6638/*!**************************************************************!*\ 6639 !*** ./node_modules/core-js/modules/es6.reflect.own-keys.js ***! 6640 \**************************************************************/ 6641/*! no static exports found */ 6642/***/ (function(module, exports, __webpack_require__) { 6643 6644// 26.1.11 Reflect.ownKeys(target) 6645var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6646 6647$export($export.S, 'Reflect', { ownKeys: __webpack_require__(/*! ./_own-keys */ "./node_modules/core-js/modules/_own-keys.js") }); 6648 6649 6650/***/ }), 6651
vendor: 957 bytes, lines 6652-6678
6652/***/ "./node_modules/core-js/modules/es6.reflect.prevent-extensions.js": 6653/*!************************************************************************!*\ 6654 !*** ./node_modules/core-js/modules/es6.reflect.prevent-extensions.js ***! 6655 \************************************************************************/ 6656/*! no static exports found */ 6657/***/ (function(module, exports, __webpack_require__) { 6658 6659// 26.1.12 Reflect.preventExtensions(target) 6660var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6661var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 6662var $preventExtensions = Object.preventExtensions; 6663 6664$export($export.S, 'Reflect', { 6665 preventExtensions: function preventExtensions(target) { 6666 anObject(target); 6667 try { 6668 if ($preventExtensions) $preventExtensions(target); 6669 return true; 6670 } catch (e) { 6671 return false; 6672 } 6673 } 6674}); 6675 6676 6677/***/ }), 6678
vendor: 907 bytes, lines 6679-6704
6679/***/ "./node_modules/core-js/modules/es6.reflect.set-prototype-of.js": 6680/*!**********************************************************************!*\ 6681 !*** ./node_modules/core-js/modules/es6.reflect.set-prototype-of.js ***! 6682 \**********************************************************************/ 6683/*! no static exports found */ 6684/***/ (function(module, exports, __webpack_require__) { 6685 6686// 26.1.14 Reflect.setPrototypeOf(target, proto) 6687var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6688var setProto = __webpack_require__(/*! ./_set-proto */ "./node_modules/core-js/modules/_set-proto.js"); 6689 6690if (setProto) $export($export.S, 'Reflect', { 6691 setPrototypeOf: function setPrototypeOf(target, proto) { 6692 setProto.check(target, proto); 6693 try { 6694 setProto.set(target, proto); 6695 return true; 6696 } catch (e) { 6697 return false; 6698 } 6699 } 6700}); 6701 6702 6703/***/ }), 6704
vendor: 2,179 bytes, lines 6705-6748
6705/***/ "./node_modules/core-js/modules/es6.reflect.set.js": 6706/*!*********************************************************!*\ 6707 !*** ./node_modules/core-js/modules/es6.reflect.set.js ***! 6708 \*********************************************************/ 6709/*! no static exports found */ 6710/***/ (function(module, exports, __webpack_require__) { 6711 6712// 26.1.13 Reflect.set(target, propertyKey, V [, receiver]) 6713var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); 6714var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js"); 6715var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); 6716var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); 6717var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 6718var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); 6719var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 6720var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 6721 6722function set(target, propertyKey, V /* , receiver */) { 6723 var receiver = arguments.length < 4 ? target : arguments[3]; 6724 var ownDesc = gOPD.f(anObject(target), propertyKey); 6725 var existingDescriptor, proto; 6726 if (!ownDesc) { 6727 if (isObject(proto = getPrototypeOf(target))) { 6728 return set(proto, propertyKey, V, receiver); 6729 } 6730 ownDesc = createDesc(0); 6731 } 6732 if (has(ownDesc, 'value')) { 6733 if (ownDesc.writable === false || !isObject(receiver)) return false; 6734 if (existingDescriptor = gOPD.f(receiver, propertyKey)) { 6735 if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; 6736 existingDescriptor.value = V; 6737 dP.f(receiver, propertyKey, existingDescriptor); 6738 } else dP.f(receiver, propertyKey, createDesc(0, V)); 6739 return true; 6740 } 6741 return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true); 6742} 6743 6744$export($export.S, 'Reflect', { set: set }); 6745 6746 6747/***/ }), 6748
vendor: 2,686 bytes, lines 6749-6802
6749/***/ "./node_modules/core-js/modules/es6.regexp.constructor.js": 6750/*!****************************************************************!*\ 6751 !*** ./node_modules/core-js/modules/es6.regexp.constructor.js ***! 6752 \****************************************************************/ 6753/*! no static exports found */ 6754/***/ (function(module, exports, __webpack_require__) { 6755 6756var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 6757var inheritIfRequired = __webpack_require__(/*! ./_inherit-if-required */ "./node_modules/core-js/modules/_inherit-if-required.js"); 6758var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; 6759var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f; 6760var isRegExp = __webpack_require__(/*! ./_is-regexp */ "./node_modules/core-js/modules/_is-regexp.js"); 6761var $flags = __webpack_require__(/*! ./_flags */ "./node_modules/core-js/modules/_flags.js"); 6762var $RegExp = global.RegExp; 6763var Base = $RegExp; 6764var proto = $RegExp.prototype; 6765var re1 = /a/g; 6766var re2 = /a/g; 6767// "new" creates a new object, old webkit buggy here 6768var CORRECT_NEW = new $RegExp(re1) !== re1; 6769 6770if (__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && (!CORRECT_NEW || __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 6771 re2[__webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('match')] = false; 6772 // RegExp constructor can alter flags and IsRegExp works correct with @@match 6773 return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i'; 6774}))) { 6775 $RegExp = function RegExp(p, f) { 6776 var tiRE = this instanceof $RegExp; 6777 var piRE = isRegExp(p); 6778 var fiU = f === undefined; 6779 return !tiRE && piRE && p.constructor === $RegExp && fiU ? p 6780 : inheritIfRequired(CORRECT_NEW 6781 ? new Base(piRE && !fiU ? p.source : p, f) 6782 : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f) 6783 , tiRE ? this : proto, $RegExp); 6784 }; 6785 var proxy = function (key) { 6786 key in $RegExp || dP($RegExp, key, { 6787 configurable: true, 6788 get: function () { return Base[key]; }, 6789 set: function (it) { Base[key] = it; } 6790 }); 6791 }; 6792 for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]); 6793 proto.constructor = $RegExp; 6794 $RegExp.prototype = proto; 6795 __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(global, 'RegExp', $RegExp); 6796} 6797 6798__webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js")('RegExp'); 6799 6800 6801/***/ }), 6802
vendor: 743 bytes, lines 6803-6818
6803/***/ "./node_modules/core-js/modules/es6.regexp.flags.js": 6804/*!**********************************************************!*\ 6805 !*** ./node_modules/core-js/modules/es6.regexp.flags.js ***! 6806 \**********************************************************/ 6807/*! no static exports found */ 6808/***/ (function(module, exports, __webpack_require__) { 6809 6810// 21.2.5.3 get RegExp.prototype.flags() 6811if (__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && /./g.flags != 'g') __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f(RegExp.prototype, 'flags', { 6812 configurable: true, 6813 get: __webpack_require__(/*! ./_flags */ "./node_modules/core-js/modules/_flags.js") 6814}); 6815 6816 6817/***/ }), 6818
vendor: 802 bytes, lines 6819-6839
6819/***/ "./node_modules/core-js/modules/es6.regexp.match.js": 6820/*!**********************************************************!*\ 6821 !*** ./node_modules/core-js/modules/es6.regexp.match.js ***! 6822 \**********************************************************/ 6823/*! no static exports found */ 6824/***/ (function(module, exports, __webpack_require__) { 6825 6826// @@match logic 6827__webpack_require__(/*! ./_fix-re-wks */ "./node_modules/core-js/modules/_fix-re-wks.js")('match', 1, function (defined, MATCH, $match) { 6828 // 21.1.3.11 String.prototype.match(regexp) 6829 return [function match(regexp) { 6830 'use strict'; 6831 var O = defined(this); 6832 var fn = regexp == undefined ? undefined : regexp[MATCH]; 6833 return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); 6834 }, $match]; 6835}); 6836 6837 6838/***/ }), 6839
vendor: 920 bytes, lines 6840-6862
6840/***/ "./node_modules/core-js/modules/es6.regexp.replace.js": 6841/*!************************************************************!*\ 6842 !*** ./node_modules/core-js/modules/es6.regexp.replace.js ***! 6843 \************************************************************/ 6844/*! no static exports found */ 6845/***/ (function(module, exports, __webpack_require__) { 6846 6847// @@replace logic 6848__webpack_require__(/*! ./_fix-re-wks */ "./node_modules/core-js/modules/_fix-re-wks.js")('replace', 2, function (defined, REPLACE, $replace) { 6849 // 21.1.3.14 String.prototype.replace(searchValue, replaceValue) 6850 return [function replace(searchValue, replaceValue) { 6851 'use strict'; 6852 var O = defined(this); 6853 var fn = searchValue == undefined ? undefined : searchValue[REPLACE]; 6854 return fn !== undefined 6855 ? fn.call(searchValue, O, replaceValue) 6856 : $replace.call(String(O), searchValue, replaceValue); 6857 }, $replace]; 6858}); 6859 6860 6861/***/ }), 6862
vendor: 815 bytes, lines 6863-6883
6863/***/ "./node_modules/core-js/modules/es6.regexp.search.js": 6864/*!***********************************************************!*\ 6865 !*** ./node_modules/core-js/modules/es6.regexp.search.js ***! 6866 \***********************************************************/ 6867/*! no static exports found */ 6868/***/ (function(module, exports, __webpack_require__) { 6869 6870// @@search logic 6871__webpack_require__(/*! ./_fix-re-wks */ "./node_modules/core-js/modules/_fix-re-wks.js")('search', 1, function (defined, SEARCH, $search) { 6872 // 21.1.3.15 String.prototype.search(regexp) 6873 return [function search(regexp) { 6874 'use strict'; 6875 var O = defined(this); 6876 var fn = regexp == undefined ? undefined : regexp[SEARCH]; 6877 return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); 6878 }, $search]; 6879}); 6880 6881 6882/***/ }), 6883
vendor: 3,878 bytes, lines 6884-6965
6884/***/ "./node_modules/core-js/modules/es6.regexp.split.js": 6885/*!**********************************************************!*\ 6886 !*** ./node_modules/core-js/modules/es6.regexp.split.js ***! 6887 \**********************************************************/ 6888/*! no static exports found */ 6889/***/ (function(module, exports, __webpack_require__) { 6890 6891// @@split logic 6892__webpack_require__(/*! ./_fix-re-wks */ "./node_modules/core-js/modules/_fix-re-wks.js")('split', 2, function (defined, SPLIT, $split) { 6893 'use strict'; 6894 var isRegExp = __webpack_require__(/*! ./_is-regexp */ "./node_modules/core-js/modules/_is-regexp.js"); 6895 var _split = $split; 6896 var $push = [].push; 6897 var $SPLIT = 'split'; 6898 var LENGTH = 'length'; 6899 var LAST_INDEX = 'lastIndex'; 6900 if ( 6901 'abbc'[$SPLIT](/(b)*/)[1] == 'c' || 6902 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 || 6903 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 || 6904 '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 || 6905 '.'[$SPLIT](/()()/)[LENGTH] > 1 || 6906 ''[$SPLIT](/.?/)[LENGTH] 6907 ) { 6908 var NPCG = /()??/.exec('')[1] === undefined; // nonparticipating capturing group 6909 // based on es5-shim implementation, need to rework it 6910 $split = function (separator, limit) { 6911 var string = String(this); 6912 if (separator === undefined && limit === 0) return []; 6913 // If `separator` is not a regex, use native split 6914 if (!isRegExp(separator)) return _split.call(string, separator, limit); 6915 var output = []; 6916 var flags = (separator.ignoreCase ? 'i' : '') + 6917 (separator.multiline ? 'm' : '') + 6918 (separator.unicode ? 'u' : '') + 6919 (separator.sticky ? 'y' : ''); 6920 var lastLastIndex = 0; 6921 var splitLimit = limit === undefined ? 4294967295 : limit >>> 0; 6922 // Make `global` and avoid `lastIndex` issues by working with a copy 6923 var separatorCopy = new RegExp(separator.source, flags + 'g'); 6924 var separator2, match, lastIndex, lastLength, i; 6925 // Doesn't need flags gy, but they don't hurt 6926 if (!NPCG) separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags); 6927 while (match = separatorCopy.exec(string)) { 6928 // `separatorCopy.lastIndex` is not reliable cross-browser 6929 lastIndex = match.index + match[0][LENGTH]; 6930 if (lastIndex > lastLastIndex) { 6931 output.push(string.slice(lastLastIndex, match.index)); 6932 // Fix browsers whose `exec` methods don't consistently return `undefined` for NPCG 6933 // eslint-disable-next-line no-loop-func 6934 if (!NPCG && match[LENGTH] > 1) match[0].replace(separator2, function () { 6935 for (i = 1; i < arguments[LENGTH] - 2; i++) if (arguments[i] === undefined) match[i] = undefined; 6936 }); 6937 if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1)); 6938 lastLength = match[0][LENGTH]; 6939 lastLastIndex = lastIndex; 6940 if (output[LENGTH] >= splitLimit) break; 6941 } 6942 if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop 6943 } 6944 if (lastLastIndex === string[LENGTH]) { 6945 if (lastLength || !separatorCopy.test('')) output.push(''); 6946 } else output.push(string.slice(lastLastIndex)); 6947 return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output; 6948 }; 6949 // Chakra, V8 6950 } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) { 6951 $split = function (separator, limit) { 6952 return separator === undefined && limit === 0 ? [] : _split.call(this, separator, limit); 6953 }; 6954 } 6955 // 21.1.3.17 String.prototype.split(separator, limit) 6956 return [function split(separator, limit) { 6957 var O = defined(this); 6958 var fn = separator == undefined ? undefined : separator[SPLIT]; 6959 return fn !== undefined ? fn.call(separator, O, limit) : $split.call(String(O), separator, limit); 6960 }, $split]; 6961}); 6962 6963 6964/***/ }), 6965
vendor: 1,578 bytes, lines 6966-7002
6966/***/ "./node_modules/core-js/modules/es6.regexp.to-string.js": 6967/*!**************************************************************!*\ 6968 !*** ./node_modules/core-js/modules/es6.regexp.to-string.js ***! 6969 \**************************************************************/ 6970/*! no static exports found */ 6971/***/ (function(module, exports, __webpack_require__) { 6972 6973"use strict"; 6974 6975__webpack_require__(/*! ./es6.regexp.flags */ "./node_modules/core-js/modules/es6.regexp.flags.js"); 6976var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 6977var $flags = __webpack_require__(/*! ./_flags */ "./node_modules/core-js/modules/_flags.js"); 6978var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); 6979var TO_STRING = 'toString'; 6980var $toString = /./[TO_STRING]; 6981 6982var define = function (fn) { 6983 __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(RegExp.prototype, TO_STRING, fn, true); 6984}; 6985 6986// 21.2.5.14 RegExp.prototype.toString() 6987if (__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) { 6988 define(function toString() { 6989 var R = anObject(this); 6990 return '/'.concat(R.source, '/', 6991 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined); 6992 }); 6993// FF44- RegExp#toString has a wrong name 6994} else if ($toString.name != TO_STRING) { 6995 define(function toString() { 6996 return $toString.call(this); 6997 }); 6998} 6999 7000 7001/***/ }), 7002
vendor: 1,009 bytes, lines 7003-7028
7003/***/ "./node_modules/core-js/modules/es6.set.js": 7004/*!*************************************************!*\ 7005 !*** ./node_modules/core-js/modules/es6.set.js ***! 7006 \*************************************************/ 7007/*! no static exports found */ 7008/***/ (function(module, exports, __webpack_require__) { 7009 7010"use strict"; 7011 7012var strong = __webpack_require__(/*! ./_collection-strong */ "./node_modules/core-js/modules/_collection-strong.js"); 7013var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); 7014var SET = 'Set'; 7015 7016// 23.2 Set Objects 7017module.exports = __webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(SET, function (get) { 7018 return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; 7019}, { 7020 // 23.2.3.1 Set.prototype.add(value) 7021 add: function add(value) { 7022 return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value); 7023 } 7024}, strong); 7025 7026 7027/***/ }), 7028
vendor: 628 bytes, lines 7029-7047
7029/***/ "./node_modules/core-js/modules/es6.string.anchor.js": 7030/*!***********************************************************!*\ 7031 !*** ./node_modules/core-js/modules/es6.string.anchor.js ***! 7032 \***********************************************************/ 7033/*! no static exports found */ 7034/***/ (function(module, exports, __webpack_require__) { 7035 7036"use strict"; 7037 7038// B.2.3.2 String.prototype.anchor(name) 7039__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('anchor', function (createHTML) { 7040 return function anchor(name) { 7041 return createHTML(this, 'a', 'name', name); 7042 }; 7043}); 7044 7045 7046/***/ }), 7047
vendor: 595 bytes, lines 7048-7066
7048/***/ "./node_modules/core-js/modules/es6.string.big.js": 7049/*!********************************************************!*\ 7050 !*** ./node_modules/core-js/modules/es6.string.big.js ***! 7051 \********************************************************/ 7052/*! no static exports found */ 7053/***/ (function(module, exports, __webpack_require__) { 7054 7055"use strict"; 7056 7057// B.2.3.3 String.prototype.big() 7058__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('big', function (createHTML) { 7059 return function big() { 7060 return createHTML(this, 'big', '', ''); 7061 }; 7062}); 7063 7064 7065/***/ }), 7066
vendor: 611 bytes, lines 7067-7085
7067/***/ "./node_modules/core-js/modules/es6.string.blink.js": 7068/*!**********************************************************!*\ 7069 !*** ./node_modules/core-js/modules/es6.string.blink.js ***! 7070 \**********************************************************/ 7071/*! no static exports found */ 7072/***/ (function(module, exports, __webpack_require__) { 7073 7074"use strict"; 7075 7076// B.2.3.4 String.prototype.blink() 7077__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('blink', function (createHTML) { 7078 return function blink() { 7079 return createHTML(this, 'blink', '', ''); 7080 }; 7081}); 7082 7083 7084/***/ }), 7085
vendor: 600 bytes, lines 7086-7104
7086/***/ "./node_modules/core-js/modules/es6.string.bold.js": 7087/*!*********************************************************!*\ 7088 !*** ./node_modules/core-js/modules/es6.string.bold.js ***! 7089 \*********************************************************/ 7090/*! no static exports found */ 7091/***/ (function(module, exports, __webpack_require__) { 7092 7093"use strict"; 7094 7095// B.2.3.5 String.prototype.bold() 7096__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('bold', function (createHTML) { 7097 return function bold() { 7098 return createHTML(this, 'b', '', ''); 7099 }; 7100}); 7101 7102 7103/***/ }), 7104
vendor: 759 bytes, lines 7105-7125
7105/***/ "./node_modules/core-js/modules/es6.string.code-point-at.js": 7106/*!******************************************************************!*\ 7107 !*** ./node_modules/core-js/modules/es6.string.code-point-at.js ***! 7108 \******************************************************************/ 7109/*! no static exports found */ 7110/***/ (function(module, exports, __webpack_require__) { 7111 7112"use strict"; 7113 7114var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 7115var $at = __webpack_require__(/*! ./_string-at */ "./node_modules/core-js/modules/_string-at.js")(false); 7116$export($export.P, 'String', { 7117 // 21.1.3.3 String.prototype.codePointAt(pos) 7118 codePointAt: function codePointAt(pos) { 7119 return $at(this, pos); 7120 } 7121}); 7122 7123 7124/***/ }), 7125
vendor: 1,473 bytes, lines 7126-7157
7126/***/ "./node_modules/core-js/modules/es6.string.ends-with.js": 7127/*!**************************************************************!*\ 7128 !*** ./node_modules/core-js/modules/es6.string.ends-with.js ***! 7129 \**************************************************************/ 7130/*! no static exports found */ 7131/***/ (function(module, exports, __webpack_require__) { 7132 7133"use strict"; 7134// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition]) 7135 7136var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 7137var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 7138var context = __webpack_require__(/*! ./_string-context */ "./node_modules/core-js/modules/_string-context.js"); 7139var ENDS_WITH = 'endsWith'; 7140var $endsWith = ''[ENDS_WITH]; 7141 7142$export($export.P + $export.F * __webpack_require__(/*! ./_fails-is-regexp */ "./node_modules/core-js/modules/_fails-is-regexp.js")(ENDS_WITH), 'String', { 7143 endsWith: function endsWith(searchString /* , endPosition = @length */) { 7144 var that = context(this, searchString, ENDS_WITH); 7145 var endPosition = arguments.length > 1 ? arguments[1] : undefined; 7146 var len = toLength(that.length); 7147 var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); 7148 var search = String(searchString); 7149 return $endsWith 7150 ? $endsWith.call(that, search, end) 7151 : that.slice(end - search.length, end) === search; 7152 } 7153}); 7154 7155 7156/***/ }), 7157
vendor: 608 bytes, lines 7158-7176
7158/***/ "./node_modules/core-js/modules/es6.string.fixed.js": 7159/*!**********************************************************!*\ 7160 !*** ./node_modules/core-js/modules/es6.string.fixed.js ***! 7161 \**********************************************************/ 7162/*! no static exports found */ 7163/***/ (function(module, exports, __webpack_require__) { 7164 7165"use strict"; 7166 7167// B.2.3.6 String.prototype.fixed() 7168__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('fixed', function (createHTML) { 7169 return function fixed() { 7170 return createHTML(this, 'tt', '', ''); 7171 }; 7172}); 7173 7174 7175/***/ }), 7176
vendor: 656 bytes, lines 7177-7195
7177/***/ "./node_modules/core-js/modules/es6.string.fontcolor.js": 7178/*!**************************************************************!*\ 7179 !*** ./node_modules/core-js/modules/es6.string.fontcolor.js ***! 7180 \**************************************************************/ 7181/*! no static exports found */ 7182/***/ (function(module, exports, __webpack_require__) { 7183 7184"use strict"; 7185 7186// B.2.3.7 String.prototype.fontcolor(color) 7187__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('fontcolor', function (createHTML) { 7188 return function fontcolor(color) { 7189 return createHTML(this, 'font', 'color', color); 7190 }; 7191}); 7192 7193 7194/***/ }), 7195
vendor: 645 bytes, lines 7196-7214
7196/***/ "./node_modules/core-js/modules/es6.string.fontsize.js": 7197/*!*************************************************************!*\ 7198 !*** ./node_modules/core-js/modules/es6.string.fontsize.js ***! 7199 \*************************************************************/ 7200/*! no static exports found */ 7201/***/ (function(module, exports, __webpack_require__) { 7202 7203"use strict"; 7204 7205// B.2.3.8 String.prototype.fontsize(size) 7206__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('fontsize', function (createHTML) { 7207 return function fontsize(size) { 7208 return createHTML(this, 'font', 'size', size); 7209 }; 7210}); 7211 7212 7213/***/ }), 7214
vendor: 1,390 bytes, lines 7215-7248
7215/***/ "./node_modules/core-js/modules/es6.string.from-code-point.js": 7216/*!********************************************************************!*\ 7217 !*** ./node_modules/core-js/modules/es6.string.from-code-point.js ***! 7218 \********************************************************************/ 7219/*! no static exports found */ 7220/***/ (function(module, exports, __webpack_require__) { 7221 7222var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 7223var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); 7224var fromCharCode = String.fromCharCode; 7225var $fromCodePoint = String.fromCodePoint; 7226 7227// length should be 1, old FF problem 7228$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { 7229 // 21.1.2.2 String.fromCodePoint(...codePoints) 7230 fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars 7231 var res = []; 7232 var aLen = arguments.length; 7233 var i = 0; 7234 var code; 7235 while (aLen > i) { 7236 code = +arguments[i++]; 7237 if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); 7238 res.push(code < 0x10000 7239 ? fromCharCode(code) 7240 : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00) 7241 ); 7242 } return res.join(''); 7243 } 7244}); 7245 7246 7247/***/ }), 7248
vendor: 1,044 bytes, lines 7249-7272
7249/***/ "./node_modules/core-js/modules/es6.string.includes.js": 7250/*!*************************************************************!*\ 7251 !*** ./node_modules/core-js/modules/es6.string.includes.js ***! 7252 \*************************************************************/ 7253/*! no static exports found */ 7254/***/ (function(module, exports, __webpack_require__) { 7255 7256"use strict"; 7257// 21.1.3.7 String.prototype.includes(searchString, position = 0) 7258 7259var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 7260var context = __webpack_require__(/*! ./_string-context */ "./node_modules/core-js/modules/_string-context.js"); 7261var INCLUDES = 'includes'; 7262 7263$export($export.P + $export.F * __webpack_require__(/*! ./_fails-is-regexp */ "./node_modules/core-js/modules/_fails-is-regexp.js")(INCLUDES), 'String', { 7264 includes: function includes(searchString /* , position = 0 */) { 7265 return !!~context(this, searchString, INCLUDES) 7266 .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); 7267 } 7268}); 7269 7270 7271/***/ }), 7272
vendor: 621 bytes, lines 7273-7291
7273/***/ "./node_modules/core-js/modules/es6.string.italics.js": 7274/*!************************************************************!*\ 7275 !*** ./node_modules/core-js/modules/es6.string.italics.js ***! 7276 \************************************************************/ 7277/*! no static exports found */ 7278/***/ (function(module, exports, __webpack_require__) { 7279 7280"use strict"; 7281 7282// B.2.3.9 String.prototype.italics() 7283__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('italics', function (createHTML) { 7284 return function italics() { 7285 return createHTML(this, 'i', '', ''); 7286 }; 7287}); 7288 7289 7290/***/ }), 7291
vendor: 1,026 bytes, lines 7292-7320
7292/***/ "./node_modules/core-js/modules/es6.string.iterator.js": 7293/*!*************************************************************!*\ 7294 !*** ./node_modules/core-js/modules/es6.string.iterator.js ***! 7295 \*************************************************************/ 7296/*! no static exports found */ 7297/***/ (function(module, exports, __webpack_require__) { 7298 7299"use strict"; 7300 7301var $at = __webpack_require__(/*! ./_string-at */ "./node_modules/core-js/modules/_string-at.js")(true); 7302 7303// 21.1.3.27 String.prototype[@@iterator]() 7304__webpack_require__(/*! ./_iter-define */ "./node_modules/core-js/modules/_iter-define.js")(String, 'String', function (iterated) { 7305 this._t = String(iterated); // target 7306 this._i = 0; // next index 7307// 21.1.5.2.1 %StringIteratorPrototype%.next() 7308}, function () { 7309 var O = this._t; 7310 var index = this._i; 7311 var point; 7312 if (index >= O.length) return { value: undefined, done: true }; 7313 point = $at(O, index); 7314 this._i += point.length; 7315 return { value: point, done: false }; 7316}); 7317 7318 7319/***/ }), 7320
vendor: 612 bytes, lines 7321-7339
7321/***/ "./node_modules/core-js/modules/es6.string.link.js": 7322/*!*********************************************************!*\ 7323 !*** ./node_modules/core-js/modules/es6.string.link.js ***! 7324 \*********************************************************/ 7325/*! no static exports found */ 7326/***/ (function(module, exports, __webpack_require__) { 7327 7328"use strict"; 7329 7330// B.2.3.10 String.prototype.link(url) 7331__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('link', function (createHTML) { 7332 return function link(url) { 7333 return createHTML(this, 'a', 'href', url); 7334 }; 7335}); 7336 7337 7338/***/ }), 7339
vendor: 1,053 bytes, lines 7340-7368
7340/***/ "./node_modules/core-js/modules/es6.string.raw.js": 7341/*!********************************************************!*\ 7342 !*** ./node_modules/core-js/modules/es6.string.raw.js ***! 7343 \********************************************************/ 7344/*! no static exports found */ 7345/***/ (function(module, exports, __webpack_require__) { 7346 7347var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 7348var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); 7349var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 7350 7351$export($export.S, 'String', { 7352 // 21.1.2.4 String.raw(callSite, ...substitutions) 7353 raw: function raw(callSite) { 7354 var tpl = toIObject(callSite.raw); 7355 var len = toLength(tpl.length); 7356 var aLen = arguments.length; 7357 var res = []; 7358 var i = 0; 7359 while (len > i) { 7360 res.push(String(tpl[i++])); 7361 if (i < aLen) res.push(String(arguments[i])); 7362 } return res.join(''); 7363 } 7364}); 7365 7366 7367/***/ }), 7368
vendor: 641 bytes, lines 7369-7385
7369/***/ "./node_modules/core-js/modules/es6.string.repeat.js": 7370/*!***********************************************************!*\ 7371 !*** ./node_modules/core-js/modules/es6.string.repeat.js ***! 7372 \***********************************************************/ 7373/*! no static exports found */ 7374/***/ (function(module, exports, __webpack_require__) { 7375 7376var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 7377 7378$export($export.P, 'String', { 7379 // 21.1.3.13 String.prototype.repeat(count) 7380 repeat: __webpack_require__(/*! ./_string-repeat */ "./node_modules/core-js/modules/_string-repeat.js") 7381}); 7382 7383 7384/***/ }), 7385
vendor: 612 bytes, lines 7386-7404
7386/***/ "./node_modules/core-js/modules/es6.string.small.js": 7387/*!**********************************************************!*\ 7388 !*** ./node_modules/core-js/modules/es6.string.small.js ***! 7389 \**********************************************************/ 7390/*! no static exports found */ 7391/***/ (function(module, exports, __webpack_require__) { 7392 7393"use strict"; 7394 7395// B.2.3.11 String.prototype.small() 7396__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('small', function (createHTML) { 7397 return function small() { 7398 return createHTML(this, 'small', '', ''); 7399 }; 7400}); 7401 7402 7403/***/ }), 7404
vendor: 1,403 bytes, lines 7405-7434
7405/***/ "./node_modules/core-js/modules/es6.string.starts-with.js": 7406/*!****************************************************************!*\ 7407 !*** ./node_modules/core-js/modules/es6.string.starts-with.js ***! 7408 \****************************************************************/ 7409/*! no static exports found */ 7410/***/ (function(module, exports, __webpack_require__) { 7411 7412"use strict"; 7413// 21.1.3.18 String.prototype.startsWith(searchString [, position ]) 7414 7415var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 7416var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 7417var context = __webpack_require__(/*! ./_string-context */ "./node_modules/core-js/modules/_string-context.js"); 7418var STARTS_WITH = 'startsWith'; 7419var $startsWith = ''[STARTS_WITH]; 7420 7421$export($export.P + $export.F * __webpack_require__(/*! ./_fails-is-regexp */ "./node_modules/core-js/modules/_fails-is-regexp.js")(STARTS_WITH), 'String', { 7422 startsWith: function startsWith(searchString /* , position = 0 */) { 7423 var that = context(this, searchString, STARTS_WITH); 7424 var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); 7425 var search = String(searchString); 7426 return $startsWith 7427 ? $startsWith.call(that, search, index) 7428 : that.slice(index, index + search.length) === search; 7429 } 7430}); 7431 7432 7433/***/ }), 7434
vendor: 620 bytes, lines 7435-7453
7435/***/ "./node_modules/core-js/modules/es6.string.strike.js": 7436/*!***********************************************************!*\ 7437 !*** ./node_modules/core-js/modules/es6.string.strike.js ***! 7438 \***********************************************************/ 7439/*! no static exports found */ 7440/***/ (function(module, exports, __webpack_require__) { 7441 7442"use strict"; 7443 7444// B.2.3.12 String.prototype.strike() 7445__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('strike', function (createHTML) { 7446 return function strike() { 7447 return createHTML(this, 'strike', '', ''); 7448 }; 7449}); 7450 7451 7452/***/ }), 7453
vendor: 596 bytes, lines 7454-7472
7454/***/ "./node_modules/core-js/modules/es6.string.sub.js": 7455/*!********************************************************!*\ 7456 !*** ./node_modules/core-js/modules/es6.string.sub.js ***! 7457 \********************************************************/ 7458/*! no static exports found */ 7459/***/ (function(module, exports, __webpack_require__) { 7460 7461"use strict"; 7462 7463// B.2.3.13 String.prototype.sub() 7464__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('sub', function (createHTML) { 7465 return function sub() { 7466 return createHTML(this, 'sub', '', ''); 7467 }; 7468}); 7469 7470 7471/***/ }), 7472
vendor: 596 bytes, lines 7473-7491
7473/***/ "./node_modules/core-js/modules/es6.string.sup.js": 7474/*!********************************************************!*\ 7475 !*** ./node_modules/core-js/modules/es6.string.sup.js ***! 7476 \********************************************************/ 7477/*! no static exports found */ 7478/***/ (function(module, exports, __webpack_require__) { 7479 7480"use strict"; 7481 7482// B.2.3.14 String.prototype.sup() 7483__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('sup', function (createHTML) { 7484 return function sup() { 7485 return createHTML(this, 'sup', '', ''); 7486 }; 7487}); 7488 7489 7490/***/ }), 7491
vendor: 582 bytes, lines 7492-7510
7492/***/ "./node_modules/core-js/modules/es6.string.trim.js": 7493/*!*********************************************************!*\ 7494 !*** ./node_modules/core-js/modules/es6.string.trim.js ***! 7495 \*********************************************************/ 7496/*! no static exports found */ 7497/***/ (function(module, exports, __webpack_require__) { 7498 7499"use strict"; 7500 7501// 21.1.3.25 String.prototype.trim() 7502__webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js")('trim', function ($trim) { 7503 return function trim() { 7504 return $trim(this, 3); 7505 }; 7506}); 7507 7508 7509/***/ }), 7510
vendor: 11,091 bytes, lines 7511-7756
7511/***/ "./node_modules/core-js/modules/es6.symbol.js": 7512/*!****************************************************!*\ 7513 !*** ./node_modules/core-js/modules/es6.symbol.js ***! 7514 \****************************************************/ 7515/*! no static exports found */ 7516/***/ (function(module, exports, __webpack_require__) { 7517 7518"use strict"; 7519 7520// ECMAScript 6 symbols shim 7521var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 7522var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); 7523var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); 7524var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 7525var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); 7526var META = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").KEY; 7527var $fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 7528var shared = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js"); 7529var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js"); 7530var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js"); 7531var wks = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js"); 7532var wksExt = __webpack_require__(/*! ./_wks-ext */ "./node_modules/core-js/modules/_wks-ext.js"); 7533var wksDefine = __webpack_require__(/*! ./_wks-define */ "./node_modules/core-js/modules/_wks-define.js"); 7534var enumKeys = __webpack_require__(/*! ./_enum-keys */ "./node_modules/core-js/modules/_enum-keys.js"); 7535var isArray = __webpack_require__(/*! ./_is-array */ "./node_modules/core-js/modules/_is-array.js"); 7536var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 7537var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 7538var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); 7539var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); 7540var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); 7541var _create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js"); 7542var gOPNExt = __webpack_require__(/*! ./_object-gopn-ext */ "./node_modules/core-js/modules/_object-gopn-ext.js"); 7543var $GOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js"); 7544var $DP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); 7545var $keys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); 7546var gOPD = $GOPD.f; 7547var dP = $DP.f; 7548var gOPN = gOPNExt.f; 7549var $Symbol = global.Symbol; 7550var $JSON = global.JSON; 7551var _stringify = $JSON && $JSON.stringify; 7552var PROTOTYPE = 'prototype'; 7553var HIDDEN = wks('_hidden'); 7554var TO_PRIMITIVE = wks('toPrimitive'); 7555var isEnum = {}.propertyIsEnumerable; 7556var SymbolRegistry = shared('symbol-registry'); 7557var AllSymbols = shared('symbols'); 7558var OPSymbols = shared('op-symbols'); 7559var ObjectProto = Object[PROTOTYPE]; 7560var USE_NATIVE = typeof $Symbol == 'function'; 7561var QObject = global.QObject; 7562// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 7563var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; 7564 7565// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 7566var setSymbolDesc = DESCRIPTORS && $fails(function () { 7567 return _create(dP({}, 'a', { 7568 get: function () { return dP(this, 'a', { value: 7 }).a; } 7569 })).a != 7; 7570}) ? function (it, key, D) { 7571 var protoDesc = gOPD(ObjectProto, key); 7572 if (protoDesc) delete ObjectProto[key]; 7573 dP(it, key, D); 7574 if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); 7575} : dP; 7576 7577var wrap = function (tag) { 7578 var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); 7579 sym._k = tag; 7580 return sym; 7581}; 7582 7583var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { 7584 return typeof it == 'symbol'; 7585} : function (it) { 7586 return it instanceof $Symbol; 7587}; 7588 7589var $defineProperty = function defineProperty(it, key, D) { 7590 if (it === ObjectProto) $defineProperty(OPSymbols, key, D); 7591 anObject(it); 7592 key = toPrimitive(key, true); 7593 anObject(D); 7594 if (has(AllSymbols, key)) { 7595 if (!D.enumerable) { 7596 if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); 7597 it[HIDDEN][key] = true; 7598 } else { 7599 if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; 7600 D = _create(D, { enumerable: createDesc(0, false) }); 7601 } return setSymbolDesc(it, key, D); 7602 } return dP(it, key, D); 7603}; 7604var $defineProperties = function defineProperties(it, P) { 7605 anObject(it); 7606 var keys = enumKeys(P = toIObject(P)); 7607 var i = 0; 7608 var l = keys.length; 7609 var key; 7610 while (l > i) $defineProperty(it, key = keys[i++], P[key]); 7611 return it; 7612}; 7613var $create = function create(it, P) { 7614 return P === undefined ? _create(it) : $defineProperties(_create(it), P); 7615}; 7616var $propertyIsEnumerable = function propertyIsEnumerable(key) { 7617 var E = isEnum.call(this, key = toPrimitive(key, true)); 7618 if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; 7619 return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; 7620}; 7621var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { 7622 it = toIObject(it); 7623 key = toPrimitive(key, true); 7624 if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; 7625 var D = gOPD(it, key); 7626 if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; 7627 return D; 7628}; 7629var $getOwnPropertyNames = function getOwnPropertyNames(it) { 7630 var names = gOPN(toIObject(it)); 7631 var result = []; 7632 var i = 0; 7633 var key; 7634 while (names.length > i) { 7635 if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); 7636 } return result; 7637}; 7638var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { 7639 var IS_OP = it === ObjectProto; 7640 var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); 7641 var result = []; 7642 var i = 0; 7643 var key; 7644 while (names.length > i) { 7645 if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); 7646 } return result; 7647}; 7648 7649// 19.4.1.1 Symbol([description]) 7650if (!USE_NATIVE) { 7651 $Symbol = function Symbol() { 7652 if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); 7653 var tag = uid(arguments.length > 0 ? arguments[0] : undefined); 7654 var $set = function (value) { 7655 if (this === ObjectProto) $set.call(OPSymbols, value); 7656 if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; 7657 setSymbolDesc(this, tag, createDesc(1, value)); 7658 }; 7659 if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); 7660 return wrap(tag); 7661 }; 7662 redefine($Symbol[PROTOTYPE], 'toString', function toString() { 7663 return this._k; 7664 }); 7665 7666 $GOPD.f = $getOwnPropertyDescriptor; 7667 $DP.f = $defineProperty; 7668 __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f = gOPNExt.f = $getOwnPropertyNames; 7669 __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js").f = $propertyIsEnumerable; 7670 __webpack_require__(/*! ./_object-gops */ "./node_modules/core-js/modules/_object-gops.js").f = $getOwnPropertySymbols; 7671 7672 if (DESCRIPTORS && !__webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js")) { 7673 redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); 7674 } 7675 7676 wksExt.f = function (name) { 7677 return wrap(wks(name)); 7678 }; 7679} 7680 7681$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); 7682 7683for (var es6Symbols = ( 7684 // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 7685 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' 7686).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); 7687 7688for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); 7689 7690$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { 7691 // 19.4.2.1 Symbol.for(key) 7692 'for': function (key) { 7693 return has(SymbolRegistry, key += '') 7694 ? SymbolRegistry[key] 7695 : SymbolRegistry[key] = $Symbol(key); 7696 }, 7697 // 19.4.2.5 Symbol.keyFor(sym) 7698 keyFor: function keyFor(sym) { 7699 if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); 7700 for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; 7701 }, 7702 useSetter: function () { setter = true; }, 7703 useSimple: function () { setter = false; } 7704}); 7705 7706$export($export.S + $export.F * !USE_NATIVE, 'Object', { 7707 // 19.1.2.2 Object.create(O [, Properties]) 7708 create: $create, 7709 // 19.1.2.4 Object.defineProperty(O, P, Attributes) 7710 defineProperty: $defineProperty, 7711 // 19.1.2.3 Object.defineProperties(O, Properties) 7712 defineProperties: $defineProperties, 7713 // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) 7714 getOwnPropertyDescriptor: $getOwnPropertyDescriptor, 7715 // 19.1.2.7 Object.getOwnPropertyNames(O) 7716 getOwnPropertyNames: $getOwnPropertyNames, 7717 // 19.1.2.8 Object.getOwnPropertySymbols(O) 7718 getOwnPropertySymbols: $getOwnPropertySymbols 7719}); 7720 7721// 24.3.2 JSON.stringify(value [, replacer [, space]]) 7722$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { 7723 var S = $Symbol(); 7724 // MS Edge converts symbol values to JSON as {} 7725 // WebKit converts symbol values to JSON as null 7726 // V8 throws on boxed symbols 7727 return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; 7728})), 'JSON', { 7729 stringify: function stringify(it) { 7730 var args = [it]; 7731 var i = 1; 7732 var replacer, $replacer; 7733 while (arguments.length > i) args.push(arguments[i++]); 7734 $replacer = replacer = args[1]; 7735 if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined 7736 if (!isArray(replacer)) replacer = function (key, value) { 7737 if (typeof $replacer == 'function') value = $replacer.call(this, key, value); 7738 if (!isSymbol(value)) return value; 7739 }; 7740 args[1] = replacer; 7741 return _stringify.apply($JSON, args); 7742 } 7743}); 7744 7745// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) 7746$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); 7747// 19.4.3.5 Symbol.prototype[@@toStringTag] 7748setToStringTag($Symbol, 'Symbol'); 7749// 20.2.1.9 Math[@@toStringTag] 7750setToStringTag(Math, 'Math', true); 7751// 24.3.3 JSON[@@toStringTag] 7752setToStringTag(global.JSON, 'JSON', true); 7753 7754 7755/***/ }), 7756
vendor: 2,884 bytes, lines 7757-7814
7757/***/ "./node_modules/core-js/modules/es6.typed.array-buffer.js": 7758/*!****************************************************************!*\ 7759 !*** ./node_modules/core-js/modules/es6.typed.array-buffer.js ***! 7760 \****************************************************************/ 7761/*! no static exports found */ 7762/***/ (function(module, exports, __webpack_require__) { 7763 7764"use strict"; 7765 7766var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 7767var $typed = __webpack_require__(/*! ./_typed */ "./node_modules/core-js/modules/_typed.js"); 7768var buffer = __webpack_require__(/*! ./_typed-buffer */ "./node_modules/core-js/modules/_typed-buffer.js"); 7769var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); 7770var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); 7771var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); 7772var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 7773var ArrayBuffer = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").ArrayBuffer; 7774var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js"); 7775var $ArrayBuffer = buffer.ArrayBuffer; 7776var $DataView = buffer.DataView; 7777var $isView = $typed.ABV && ArrayBuffer.isView; 7778var $slice = $ArrayBuffer.prototype.slice; 7779var VIEW = $typed.VIEW; 7780var ARRAY_BUFFER = 'ArrayBuffer'; 7781 7782$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer }); 7783 7784$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, { 7785 // 24.1.3.1 ArrayBuffer.isView(arg) 7786 isView: function isView(it) { 7787 return $isView && $isView(it) || isObject(it) && VIEW in it; 7788 } 7789}); 7790 7791$export($export.P + $export.U + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { 7792 return !new $ArrayBuffer(2).slice(1, undefined).byteLength; 7793}), ARRAY_BUFFER, { 7794 // 24.1.4.3 ArrayBuffer.prototype.slice(start, end) 7795 slice: function slice(start, end) { 7796 if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix 7797 var len = anObject(this).byteLength; 7798 var first = toAbsoluteIndex(start, len); 7799 var fin = toAbsoluteIndex(end === undefined ? len : end, len); 7800 var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first)); 7801 var viewS = new $DataView(this); 7802 var viewT = new $DataView(result); 7803 var index = 0; 7804 while (first < fin) { 7805 viewT.setUint8(index++, viewS.getUint8(first++)); 7806 } return result; 7807 } 7808}); 7809 7810__webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js")(ARRAY_BUFFER); 7811 7812 7813/***/ }), 7814
vendor: 712 bytes, lines 7815-7829
7815/***/ "./node_modules/core-js/modules/es6.typed.data-view.js": 7816/*!*************************************************************!*\ 7817 !*** ./node_modules/core-js/modules/es6.typed.data-view.js ***! 7818 \*************************************************************/ 7819/*! no static exports found */ 7820/***/ (function(module, exports, __webpack_require__) { 7821 7822var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 7823$export($export.G + $export.W + $export.F * !__webpack_require__(/*! ./_typed */ "./node_modules/core-js/modules/_typed.js").ABV, { 7824 DataView: __webpack_require__(/*! ./_typed-buffer */ "./node_modules/core-js/modules/_typed-buffer.js").DataView 7825}); 7826 7827 7828/***/ }), 7829
vendor: 621 bytes, lines 7830-7845
7830/***/ "./node_modules/core-js/modules/es6.typed.float32-array.js": 7831/*!*****************************************************************!*\ 7832 !*** ./node_modules/core-js/modules/es6.typed.float32-array.js ***! 7833 \*****************************************************************/ 7834/*! no static exports found */ 7835/***/ (function(module, exports, __webpack_require__) { 7836 7837__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Float32', 4, function (init) { 7838 return function Float32Array(data, byteOffset, length) { 7839 return init(this, data, byteOffset, length); 7840 }; 7841}); 7842 7843 7844/***/ }), 7845
vendor: 621 bytes, lines 7846-7861
7846/***/ "./node_modules/core-js/modules/es6.typed.float64-array.js": 7847/*!*****************************************************************!*\ 7848 !*** ./node_modules/core-js/modules/es6.typed.float64-array.js ***! 7849 \*****************************************************************/ 7850/*! no static exports found */ 7851/***/ (function(module, exports, __webpack_require__) { 7852 7853__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Float64', 8, function (init) { 7854 return function Float64Array(data, byteOffset, length) { 7855 return init(this, data, byteOffset, length); 7856 }; 7857}); 7858 7859 7860/***/ }), 7861
vendor: 609 bytes, lines 7862-7877
7862/***/ "./node_modules/core-js/modules/es6.typed.int16-array.js": 7863/*!***************************************************************!*\ 7864 !*** ./node_modules/core-js/modules/es6.typed.int16-array.js ***! 7865 \***************************************************************/ 7866/*! no static exports found */ 7867/***/ (function(module, exports, __webpack_require__) { 7868 7869__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Int16', 2, function (init) { 7870 return function Int16Array(data, byteOffset, length) { 7871 return init(this, data, byteOffset, length); 7872 }; 7873}); 7874 7875 7876/***/ }), 7877
vendor: 609 bytes, lines 7878-7893
7878/***/ "./node_modules/core-js/modules/es6.typed.int32-array.js": 7879/*!***************************************************************!*\ 7880 !*** ./node_modules/core-js/modules/es6.typed.int32-array.js ***! 7881 \***************************************************************/ 7882/*! no static exports found */ 7883/***/ (function(module, exports, __webpack_require__) { 7884 7885__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Int32', 4, function (init) { 7886 return function Int32Array(data, byteOffset, length) { 7887 return init(this, data, byteOffset, length); 7888 }; 7889}); 7890 7891 7892/***/ }), 7893
vendor: 603 bytes, lines 7894-7909
7894/***/ "./node_modules/core-js/modules/es6.typed.int8-array.js": 7895/*!**************************************************************!*\ 7896 !*** ./node_modules/core-js/modules/es6.typed.int8-array.js ***! 7897 \**************************************************************/ 7898/*! no static exports found */ 7899/***/ (function(module, exports, __webpack_require__) { 7900 7901__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Int8', 1, function (init) { 7902 return function Int8Array(data, byteOffset, length) { 7903 return init(this, data, byteOffset, length); 7904 }; 7905}); 7906 7907 7908/***/ }), 7909
vendor: 615 bytes, lines 7910-7925
7910/***/ "./node_modules/core-js/modules/es6.typed.uint16-array.js": 7911/*!****************************************************************!*\ 7912 !*** ./node_modules/core-js/modules/es6.typed.uint16-array.js ***! 7913 \****************************************************************/ 7914/*! no static exports found */ 7915/***/ (function(module, exports, __webpack_require__) { 7916 7917__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Uint16', 2, function (init) { 7918 return function Uint16Array(data, byteOffset, length) { 7919 return init(this, data, byteOffset, length); 7920 }; 7921}); 7922 7923 7924/***/ }), 7925
vendor: 615 bytes, lines 7926-7941
7926/***/ "./node_modules/core-js/modules/es6.typed.uint32-array.js": 7927/*!****************************************************************!*\ 7928 !*** ./node_modules/core-js/modules/es6.typed.uint32-array.js ***! 7929 \****************************************************************/ 7930/*! no static exports found */ 7931/***/ (function(module, exports, __webpack_require__) { 7932 7933__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Uint32', 4, function (init) { 7934 return function Uint32Array(data, byteOffset, length) { 7935 return init(this, data, byteOffset, length); 7936 }; 7937}); 7938 7939 7940/***/ }), 7941
vendor: 609 bytes, lines 7942-7957
7942/***/ "./node_modules/core-js/modules/es6.typed.uint8-array.js": 7943/*!***************************************************************!*\ 7944 !*** ./node_modules/core-js/modules/es6.typed.uint8-array.js ***! 7945 \***************************************************************/ 7946/*! no static exports found */ 7947/***/ (function(module, exports, __webpack_require__) { 7948 7949__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Uint8', 1, function (init) { 7950 return function Uint8Array(data, byteOffset, length) { 7951 return init(this, data, byteOffset, length); 7952 }; 7953}); 7954 7955 7956/***/ }), 7957
vendor: 654 bytes, lines 7958-7973
7958/***/ "./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js": 7959/*!***********************************************************************!*\ 7960 !*** ./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js ***! 7961 \***********************************************************************/ 7962/*! no static exports found */ 7963/***/ (function(module, exports, __webpack_require__) { 7964 7965__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Uint8', 1, function (init) { 7966 return function Uint8ClampedArray(data, byteOffset, length) { 7967 return init(this, data, byteOffset, length); 7968 }; 7969}, true); 7970 7971 7972/***/ }), 7973
vendor: 2,893 bytes, lines 7974-8044
7974/***/ "./node_modules/core-js/modules/es6.weak-map.js": 7975/*!******************************************************!*\ 7976 !*** ./node_modules/core-js/modules/es6.weak-map.js ***! 7977 \******************************************************/ 7978/*! no static exports found */ 7979/***/ (function(module, exports, __webpack_require__) { 7980 7981"use strict"; 7982 7983var each = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(0); 7984var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); 7985var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js"); 7986var assign = __webpack_require__(/*! ./_object-assign */ "./node_modules/core-js/modules/_object-assign.js"); 7987var weak = __webpack_require__(/*! ./_collection-weak */ "./node_modules/core-js/modules/_collection-weak.js"); 7988var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); 7989var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); 7990var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); 7991var WEAK_MAP = 'WeakMap'; 7992var getWeak = meta.getWeak; 7993var isExtensible = Object.isExtensible; 7994var uncaughtFrozenStore = weak.ufstore; 7995var tmp = {}; 7996var InternalMap; 7997 7998var wrapper = function (get) { 7999 return function WeakMap() { 8000 return get(this, arguments.length > 0 ? arguments[0] : undefined); 8001 }; 8002}; 8003 8004var methods = { 8005 // 23.3.3.3 WeakMap.prototype.get(key) 8006 get: function get(key) { 8007 if (isObject(key)) { 8008 var data = getWeak(key); 8009 if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); 8010 return data ? data[this._i] : undefined; 8011 } 8012 }, 8013 // 23.3.3.5 WeakMap.prototype.set(key, value) 8014 set: function set(key, value) { 8015 return weak.def(validate(this, WEAK_MAP), key, value); 8016 } 8017}; 8018 8019// 23.3 WeakMap Objects 8020var $WeakMap = module.exports = __webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(WEAK_MAP, wrapper, methods, weak, true, true); 8021 8022// IE11 WeakMap frozen keys fix 8023if (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) { 8024 InternalMap = weak.getConstructor(wrapper, WEAK_MAP); 8025 assign(InternalMap.prototype, methods); 8026 meta.NEED = true; 8027 each(['delete', 'has', 'get', 'set'], function (key) { 8028 var proto = $WeakMap.prototype; 8029 var method = proto[key]; 8030 redefine(proto, key, function (a, b) { 8031 // store frozen objects on internal weakmap shim 8032 if (isObject(a) && !isExtensible(a)) { 8033 if (!this._f) this._f = new InternalMap(); 8034 var result = this._f[key](a, b); 8035 return key == 'set' ? this : result; 8036 // store all the rest on native weakmap 8037 } return method.call(this, a, b); 8038 }); 8039 }); 8040} 8041 8042 8043/***/ }), 8044
vendor: 1,019 bytes, lines 8045-8070
8045/***/ "./node_modules/core-js/modules/es6.weak-set.js": 8046/*!******************************************************!*\ 8047 !*** ./node_modules/core-js/modules/es6.weak-set.js ***! 8048 \******************************************************/ 8049/*! no static exports found */ 8050/***/ (function(module, exports, __webpack_require__) { 8051 8052"use strict"; 8053 8054var weak = __webpack_require__(/*! ./_collection-weak */ "./node_modules/core-js/modules/_collection-weak.js"); 8055var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); 8056var WEAK_SET = 'WeakSet'; 8057 8058// 23.4 WeakSet Objects 8059__webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(WEAK_SET, function (get) { 8060 return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); }; 8061}, { 8062 // 23.4.3.1 WeakSet.prototype.add(value) 8063 add: function add(value) { 8064 return weak.def(validate(this, WEAK_SET), value, true); 8065 } 8066}, weak, false, true); 8067 8068 8069/***/ }), 8070
vendor: 943 bytes, lines 8071-8094
8071/***/ "./node_modules/core-js/modules/es7.array.includes.js": 8072/*!************************************************************!*\ 8073 !*** ./node_modules/core-js/modules/es7.array.includes.js ***! 8074 \************************************************************/ 8075/*! no static exports found */ 8076/***/ (function(module, exports, __webpack_require__) { 8077 8078"use strict"; 8079 8080// https://github.com/tc39/Array.prototype.includes 8081var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 8082var $includes = __webpack_require__(/*! ./_array-includes */ "./node_modules/core-js/modules/_array-includes.js")(true); 8083 8084$export($export.P, 'Array', { 8085 includes: function includes(el /* , fromIndex = 0 */) { 8086 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); 8087 } 8088}); 8089 8090__webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")('includes'); 8091 8092 8093/***/ }), 8094
vendor: 736 bytes, lines 8095-8114
8095/***/ "./node_modules/core-js/modules/es7.object.entries.js": 8096/*!************************************************************!*\ 8097 !*** ./node_modules/core-js/modules/es7.object.entries.js ***! 8098 \************************************************************/ 8099/*! no static exports found */ 8100/***/ (function(module, exports, __webpack_require__) { 8101 8102// https://github.com/tc39/proposal-object-values-entries 8103var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 8104var $entries = __webpack_require__(/*! ./_object-to-array */ "./node_modules/core-js/modules/_object-to-array.js")(true); 8105 8106$export($export.S, 'Object', { 8107 entries: function entries(it) { 8108 return $entries(it); 8109 } 8110}); 8111 8112 8113/***/ }), 8114
vendor: 1,459 bytes, lines 8115-8147
8115/***/ "./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js": 8116/*!*********************************************************************************!*\ 8117 !*** ./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js ***! 8118 \*********************************************************************************/ 8119/*! no static exports found */ 8120/***/ (function(module, exports, __webpack_require__) { 8121 8122// https://github.com/tc39/proposal-object-getownpropertydescriptors 8123var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 8124var ownKeys = __webpack_require__(/*! ./_own-keys */ "./node_modules/core-js/modules/_own-keys.js"); 8125var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); 8126var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js"); 8127var createProperty = __webpack_require__(/*! ./_create-property */ "./node_modules/core-js/modules/_create-property.js"); 8128 8129$export($export.S, 'Object', { 8130 getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { 8131 var O = toIObject(object); 8132 var getDesc = gOPD.f; 8133 var keys = ownKeys(O); 8134 var result = {}; 8135 var i = 0; 8136 var key, desc; 8137 while (keys.length > i) { 8138 desc = getDesc(O, key = keys[i++]); 8139 if (desc !== undefined) createProperty(result, key, desc); 8140 } 8141 return result; 8142 } 8143}); 8144 8145 8146/***/ }), 8147
vendor: 729 bytes, lines 8148-8167
8148/***/ "./node_modules/core-js/modules/es7.object.values.js": 8149/*!***********************************************************!*\ 8150 !*** ./node_modules/core-js/modules/es7.object.values.js ***! 8151 \***********************************************************/ 8152/*! no static exports found */ 8153/***/ (function(module, exports, __webpack_require__) { 8154 8155// https://github.com/tc39/proposal-object-values-entries 8156var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 8157var $values = __webpack_require__(/*! ./_object-to-array */ "./node_modules/core-js/modules/_object-to-array.js")(false); 8158 8159$export($export.S, 'Object', { 8160 values: function values(it) { 8161 return $values(it); 8162 } 8163}); 8164 8165 8166/***/ }), 8167
vendor: 1,453 bytes, lines 8168-8199
8168/***/ "./node_modules/core-js/modules/es7.promise.finally.js": 8169/*!*************************************************************!*\ 8170 !*** ./node_modules/core-js/modules/es7.promise.finally.js ***! 8171 \*************************************************************/ 8172/*! no static exports found */ 8173/***/ (function(module, exports, __webpack_require__) { 8174 8175"use strict"; 8176// https://github.com/tc39/proposal-promise-finally 8177 8178var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 8179var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js"); 8180var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 8181var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js"); 8182var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "./node_modules/core-js/modules/_promise-resolve.js"); 8183 8184$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) { 8185 var C = speciesConstructor(this, core.Promise || global.Promise); 8186 var isFunction = typeof onFinally == 'function'; 8187 return this.then( 8188 isFunction ? function (x) { 8189 return promiseResolve(C, onFinally()).then(function () { return x; }); 8190 } : onFinally, 8191 isFunction ? function (e) { 8192 return promiseResolve(C, onFinally()).then(function () { throw e; }); 8193 } : onFinally 8194 ); 8195} }); 8196 8197 8198/***/ }), 8199
vendor: 1,048 bytes, lines 8200-8223
8200/***/ "./node_modules/core-js/modules/es7.string.pad-end.js": 8201/*!************************************************************!*\ 8202 !*** ./node_modules/core-js/modules/es7.string.pad-end.js ***! 8203 \************************************************************/ 8204/*! no static exports found */ 8205/***/ (function(module, exports, __webpack_require__) { 8206 8207"use strict"; 8208 8209// https://github.com/tc39/proposal-string-pad-start-end 8210var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 8211var $pad = __webpack_require__(/*! ./_string-pad */ "./node_modules/core-js/modules/_string-pad.js"); 8212var userAgent = __webpack_require__(/*! ./_user-agent */ "./node_modules/core-js/modules/_user-agent.js"); 8213 8214// https://github.com/zloirock/core-js/issues/280 8215$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', { 8216 padEnd: function padEnd(maxLength /* , fillString = ' ' */) { 8217 return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); 8218 } 8219}); 8220 8221 8222/***/ }), 8223
vendor: 1,059 bytes, lines 8224-8247
8224/***/ "./node_modules/core-js/modules/es7.string.pad-start.js": 8225/*!**************************************************************!*\ 8226 !*** ./node_modules/core-js/modules/es7.string.pad-start.js ***! 8227 \**************************************************************/ 8228/*! no static exports found */ 8229/***/ (function(module, exports, __webpack_require__) { 8230 8231"use strict"; 8232 8233// https://github.com/tc39/proposal-string-pad-start-end 8234var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 8235var $pad = __webpack_require__(/*! ./_string-pad */ "./node_modules/core-js/modules/_string-pad.js"); 8236var userAgent = __webpack_require__(/*! ./_user-agent */ "./node_modules/core-js/modules/_user-agent.js"); 8237 8238// https://github.com/zloirock/core-js/issues/280 8239$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', { 8240 padStart: function padStart(maxLength /* , fillString = ' ' */) { 8241 return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); 8242 } 8243}); 8244 8245 8246/***/ }), 8247
vendor: 496 bytes, lines 8248-8259
8248/***/ "./node_modules/core-js/modules/es7.symbol.async-iterator.js": 8249/*!*******************************************************************!*\ 8250 !*** ./node_modules/core-js/modules/es7.symbol.async-iterator.js ***! 8251 \*******************************************************************/ 8252/*! no static exports found */ 8253/***/ (function(module, exports, __webpack_require__) { 8254 8255__webpack_require__(/*! ./_wks-define */ "./node_modules/core-js/modules/_wks-define.js")('asyncIterator'); 8256 8257 8258/***/ }), 8259
vendor: 2,605 bytes, lines 8260-8328
8260/***/ "./node_modules/core-js/modules/web.dom.iterable.js": 8261/*!**********************************************************!*\ 8262 !*** ./node_modules/core-js/modules/web.dom.iterable.js ***! 8263 \**********************************************************/ 8264/*! no static exports found */ 8265/***/ (function(module, exports, __webpack_require__) { 8266 8267var $iterators = __webpack_require__(/*! ./es6.array.iterator */ "./node_modules/core-js/modules/es6.array.iterator.js"); 8268var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); 8269var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); 8270var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 8271var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); 8272var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); 8273var wks = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js"); 8274var ITERATOR = wks('iterator'); 8275var TO_STRING_TAG = wks('toStringTag'); 8276var ArrayValues = Iterators.Array; 8277 8278var DOMIterables = { 8279 CSSRuleList: true, // TODO: Not spec compliant, should be false. 8280 CSSStyleDeclaration: false, 8281 CSSValueList: false, 8282 ClientRectList: false, 8283 DOMRectList: false, 8284 DOMStringList: false, 8285 DOMTokenList: true, 8286 DataTransferItemList: false, 8287 FileList: false, 8288 HTMLAllCollection: false, 8289 HTMLCollection: false, 8290 HTMLFormElement: false, 8291 HTMLSelectElement: false, 8292 MediaList: true, // TODO: Not spec compliant, should be false. 8293 MimeTypeArray: false, 8294 NamedNodeMap: false, 8295 NodeList: true, 8296 PaintRequestList: false, 8297 Plugin: false, 8298 PluginArray: false, 8299 SVGLengthList: false, 8300 SVGNumberList: false, 8301 SVGPathSegList: false, 8302 SVGPointList: false, 8303 SVGStringList: false, 8304 SVGTransformList: false, 8305 SourceBufferList: false, 8306 StyleSheetList: true, // TODO: Not spec compliant, should be false. 8307 TextTrackCueList: false, 8308 TextTrackList: false, 8309 TouchList: false 8310}; 8311 8312for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { 8313 var NAME = collections[i]; 8314 var explicit = DOMIterables[NAME]; 8315 var Collection = global[NAME]; 8316 var proto = Collection && Collection.prototype; 8317 var key; 8318 if (proto) { 8319 if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); 8320 if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); 8321 Iterators[NAME] = ArrayValues; 8322 if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true); 8323 } 8324} 8325 8326 8327/***/ }), 8328
vendor: 622 bytes, lines 8329-8345
8329/***/ "./node_modules/core-js/modules/web.immediate.js": 8330/*!*******************************************************!*\ 8331 !*** ./node_modules/core-js/modules/web.immediate.js ***! 8332 \*******************************************************/ 8333/*! no static exports found */ 8334/***/ (function(module, exports, __webpack_require__) { 8335 8336var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 8337var $task = __webpack_require__(/*! ./_task */ "./node_modules/core-js/modules/_task.js"); 8338$export($export.G + $export.B, { 8339 setImmediate: $task.set, 8340 clearImmediate: $task.clear 8341}); 8342 8343 8344/***/ }), 8345
vendor: 1,269 bytes, lines 8346-8376
8346/***/ "./node_modules/core-js/modules/web.timers.js": 8347/*!****************************************************!*\ 8348 !*** ./node_modules/core-js/modules/web.timers.js ***! 8349 \****************************************************/ 8350/*! no static exports found */ 8351/***/ (function(module, exports, __webpack_require__) { 8352 8353// ie9- setTimeout & setInterval additional parameters fix 8354var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); 8355var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); 8356var userAgent = __webpack_require__(/*! ./_user-agent */ "./node_modules/core-js/modules/_user-agent.js"); 8357var slice = [].slice; 8358var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check 8359var wrap = function (set) { 8360 return function (fn, time /* , ...args */) { 8361 var boundArgs = arguments.length > 2; 8362 var args = boundArgs ? slice.call(arguments, 2) : false; 8363 return set(boundArgs ? function () { 8364 // eslint-disable-next-line no-new-func 8365 (typeof fn == 'function' ? fn : Function(fn)).apply(this, args); 8366 } : fn, time); 8367 }; 8368}; 8369$export($export.G + $export.B + $export.F * MSIE, { 8370 setTimeout: wrap(global.setTimeout), 8371 setInterval: wrap(global.setInterval) 8372}); 8373 8374 8375/***/ }), 8376
vendor: 709 bytes, lines 8377-8391
8377/***/ "./node_modules/core-js/web/index.js": 8378/*!*******************************************!*\ 8379 !*** ./node_modules/core-js/web/index.js ***! 8380 \*******************************************/ 8381/*! no static exports found */ 8382/***/ (function(module, exports, __webpack_require__) { 8383 8384__webpack_require__(/*! ../modules/web.timers */ "./node_modules/core-js/modules/web.timers.js"); 8385__webpack_require__(/*! ../modules/web.immediate */ "./node_modules/core-js/modules/web.immediate.js"); 8386__webpack_require__(/*! ../modules/web.dom.iterable */ "./node_modules/core-js/modules/web.dom.iterable.js"); 8387module.exports = __webpack_require__(/*! ../modules/_core */ "./node_modules/core-js/modules/_core.js"); 8388 8389 8390/***/ }), 8391
vendor: 57,378 bytes, lines 8392-10014
8392/***/ "./node_modules/dom7/dist/dom7.modular.js": 8393/*!************************************************!*\ 8394 !*** ./node_modules/dom7/dist/dom7.modular.js ***! 8395 \************************************************/ 8396/*! exports provided: $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, prop, data, removeData, dataset, val, transform, transition, on, off, once, trigger, transitionEnd, animationEnd, width, outerWidth, height, outerHeight, offset, hide, show, styles, css, toArray, each, forEach, filter, map, html, text, is, indexOf, index, eq, append, appendTo, prepend, prependTo, insertBefore, insertAfter, next, nextAll, prev, prevAll, siblings, parent, parents, closest, find, children, remove, detach, add, empty, scrollTo, scrollTop, scrollLeft, animate, stop, click, blur, focus, focusin, focusout, keyup, keydown, keypress, submit, change, mousedown, mousemove, mouseup, mouseenter, mouseleave, mouseout, mouseover, touchstart, touchend, touchmove, resize, scroll */ 8397/***/ (function(module, __webpack_exports__, __webpack_require__) { 8398 8399"use strict"; 8400__webpack_require__.r(__webpack_exports__); 8401/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$", function() { return $; }); 8402/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addClass", function() { return addClass; }); 8403/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeClass", function() { return removeClass; }); 8404/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hasClass", function() { return hasClass; }); 8405/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toggleClass", function() { return toggleClass; }); 8406/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "attr", function() { return attr; }); 8407/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeAttr", function() { return removeAttr; }); 8408/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prop", function() { return prop; }); 8409/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "data", function() { return data; }); 8410/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeData", function() { return removeData; }); 8411/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dataset", function() { return dataset; }); 8412/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "val", function() { return val; }); 8413/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transform", function() { return transform; }); 8414/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transition", function() { return transition; }); 8415/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "on", function() { return on; }); 8416/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "off", function() { return off; }); 8417/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "once", function() { return once; }); 8418/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trigger", function() { return trigger; }); 8419/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "transitionEnd", function() { return transitionEnd; }); 8420/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animationEnd", function() { return animationEnd; }); 8421/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "width", function() { return width; }); 8422/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "outerWidth", function() { return outerWidth; }); 8423/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "height", function() { return height; }); 8424/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "outerHeight", function() { return outerHeight; }); 8425/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "offset", function() { return offset; }); 8426/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hide", function() { return hide; }); 8427/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "show", function() { return show; }); 8428/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "styles", function() { return styles; }); 8429/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "css", function() { return css; }); 8430/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return toArray; }); 8431/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "each", function() { return each; }); 8432/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forEach", function() { return forEach; }); 8433/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return filter; }); 8434/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "map", function() { return map; }); 8435/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "html", function() { return html; }); 8436/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "text", function() { return text; }); 8437/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "is", function() { return is; }); 8438/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "indexOf", function() { return indexOf; }); 8439/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "index", function() { return index; }); 8440/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "eq", function() { return eq; }); 8441/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "append", function() { return append; }); 8442/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "appendTo", function() { return appendTo; }); 8443/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prepend", function() { return prepend; }); 8444/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prependTo", function() { return prependTo; }); 8445/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertBefore", function() { return insertBefore; }); 8446/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "insertAfter", function() { return insertAfter; }); 8447/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "next", function() { return next; }); 8448/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nextAll", function() { return nextAll; }); 8449/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prev", function() { return prev; }); 8450/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "prevAll", function() { return prevAll; }); 8451/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "siblings", function() { return siblings; }); 8452/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parent", function() { return parent; }); 8453/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parents", function() { return parents; }); 8454/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "closest", function() { return closest; }); 8455/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "find", function() { return find; }); 8456/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "children", function() { return children; }); 8457/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "remove", function() { return remove; }); 8458/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detach", function() { return detach; }); 8459/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "add", function() { return add; }); 8460/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return empty; }); 8461/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollTo", function() { return scrollTo; }); 8462/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollTop", function() { return scrollTop; }); 8463/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollLeft", function() { return scrollLeft; }); 8464/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animate", function() { return animate; }); 8465/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stop", function() { return stop; }); 8466/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "click", function() { return click; }); 8467/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "blur", function() { return blur; }); 8468/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "focus", function() { return focus; }); 8469/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "focusin", function() { return focusin; }); 8470/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "focusout", function() { return focusout; }); 8471/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keyup", function() { return keyup; }); 8472/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keydown", function() { return keydown; }); 8473/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keypress", function() { return keypress; }); 8474/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "submit", function() { return submit; }); 8475/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "change", function() { return change; }); 8476/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mousedown", function() { return mousedown; }); 8477/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mousemove", function() { return mousemove; }); 8478/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mouseup", function() { return mouseup; }); 8479/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mouseenter", function() { return mouseenter; }); 8480/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mouseleave", function() { return mouseleave; }); 8481/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mouseout", function() { return mouseout; }); 8482/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mouseover", function() { return mouseover; }); 8483/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "touchstart", function() { return touchstart; }); 8484/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "touchend", function() { return touchend; }); 8485/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "touchmove", function() { return touchmove; }); 8486/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resize", function() { return resize; }); 8487/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scroll", function() { return scroll; }); 8488/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/dom7/node_modules/ssr-window/dist/ssr-window.esm.js"); 8489function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 8490 8491/** 8492 * Dom7 2.1.5 8493 * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API 8494 * http://framework7.io/docs/dom.html 8495 * 8496 * Copyright 2020, Vladimir Kharlampidi 8497 * The iDangero.us 8498 * http://www.idangero.us/ 8499 * 8500 * Licensed under MIT 8501 * 8502 * Released on: May 15, 2020 8503 */ 8504 8505 8506var Dom7 = function Dom7(arr) { 8507 _classCallCheck(this, Dom7); 8508 8509 var self = this; 8510 // Create array-like object 8511 for (var i = 0; i < arr.length; i += 1) { 8512 self[i] = arr[i]; 8513 } 8514 self.length = arr.length; 8515 // Return collection with methods 8516 return this; 8517}; 8518 8519function $(selector, context) { 8520 var arr = []; 8521 var i = 0; 8522 if (selector && !context) { 8523 if (selector instanceof Dom7) { 8524 return selector; 8525 } 8526 } 8527 if (selector) { 8528 // String 8529 if (typeof selector === 'string') { 8530 var els = void 0; 8531 var tempParent = void 0; 8532 var _html = selector.trim(); 8533 if (_html.indexOf('<') >= 0 && _html.indexOf('>') >= 0) { 8534 var toCreate = 'div'; 8535 if (_html.indexOf('<li') === 0) toCreate = 'ul'; 8536 if (_html.indexOf('<tr') === 0) toCreate = 'tbody'; 8537 if (_html.indexOf('<td') === 0 || _html.indexOf('<th') === 0) toCreate = 'tr'; 8538 if (_html.indexOf('<tbody') === 0) toCreate = 'table'; 8539 if (_html.indexOf('<option') === 0) toCreate = 'select'; 8540 tempParent = ssr_window__WEBPACK_IMPORTED_MODULE_0__["document"].createElement(toCreate); 8541 tempParent.innerHTML = _html; 8542 for (i = 0; i < tempParent.childNodes.length; i += 1) { 8543 arr.push(tempParent.childNodes[i]); 8544 } 8545 } else { 8546 if (!context && selector[0] === '#' && !selector.match(/[ .<>:~]/)) { 8547 // Pure ID selector 8548 els = [ssr_window__WEBPACK_IMPORTED_MODULE_0__["document"].getElementById(selector.trim().split('#')[1])]; 8549 } else { 8550 // Other selectors 8551 els = (context || ssr_window__WEBPACK_IMPORTED_MODULE_0__["document"]).querySelectorAll(selector.trim()); 8552 } 8553 for (i = 0; i < els.length; i += 1) { 8554 if (els[i]) arr.push(els[i]); 8555 } 8556 } 8557 } else if (selector.nodeType || selector === ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"] || selector === ssr_window__WEBPACK_IMPORTED_MODULE_0__["document"]) { 8558 // Node/element 8559 arr.push(selector); 8560 } else if (selector.length > 0 && selector[0].nodeType) { 8561 // Array of elements or instance of Dom 8562 for (i = 0; i < selector.length; i += 1) { 8563 arr.push(selector[i]); 8564 } 8565 } 8566 } 8567 return new Dom7(arr); 8568} 8569 8570$.fn = Dom7.prototype; 8571$.Class = Dom7; 8572$.Dom7 = Dom7; 8573 8574function unique(arr) { 8575 var uniqueArray = []; 8576 for (var i = 0; i < arr.length; i += 1) { 8577 if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]); 8578 } 8579 return uniqueArray; 8580} 8581function toCamelCase(string) { 8582 return string.toLowerCase().replace(/-(.)/g, function (match, group1) { 8583 return group1.toUpperCase(); 8584 }); 8585} 8586 8587function requestAnimationFrame(callback) { 8588 if (ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].requestAnimationFrame) return ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].requestAnimationFrame(callback);else if (ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].webkitRequestAnimationFrame) return ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].webkitRequestAnimationFrame(callback); 8589 return ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].setTimeout(callback, 1000 / 60); 8590} 8591function cancelAnimationFrame(id) { 8592 if (ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].cancelAnimationFrame) return ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].cancelAnimationFrame(id);else if (ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].webkitCancelAnimationFrame) return ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].webkitCancelAnimationFrame(id); 8593 return ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].clearTimeout(id); 8594} 8595 8596// Classes and attributes 8597function addClass(className) { 8598 if (typeof className === 'undefined') { 8599 return this; 8600 } 8601 var classes = className.split(' '); 8602 for (var i = 0; i < classes.length; i += 1) { 8603 for (var j = 0; j < this.length; j += 1) { 8604 if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]); 8605 } 8606 } 8607 return this; 8608} 8609function removeClass(className) { 8610 var classes = className.split(' '); 8611 for (var i = 0; i < classes.length; i += 1) { 8612 for (var j = 0; j < this.length; j += 1) { 8613 if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]); 8614 } 8615 } 8616 return this; 8617} 8618function hasClass(className) { 8619 if (!this[0]) return false; 8620 return this[0].classList.contains(className); 8621} 8622function toggleClass(className) { 8623 var classes = className.split(' '); 8624 for (var i = 0; i < classes.length; i += 1) { 8625 for (var j = 0; j < this.length; j += 1) { 8626 if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]); 8627 } 8628 } 8629 return this; 8630} 8631function attr(attrs, value) { 8632 if (arguments.length === 1 && typeof attrs === 'string') { 8633 // Get attr 8634 if (this[0]) return this[0].getAttribute(attrs); 8635 return undefined; 8636 } 8637 8638 // Set attrs 8639 for (var i = 0; i < this.length; i += 1) { 8640 if (arguments.length === 2) { 8641 // String 8642 this[i].setAttribute(attrs, value); 8643 } else { 8644 // Object 8645 // eslint-disable-next-line 8646 for (var attrName in attrs) { 8647 this[i][attrName] = attrs[attrName]; 8648 this[i].setAttribute(attrName, attrs[attrName]); 8649 } 8650 } 8651 } 8652 return this; 8653} 8654// eslint-disable-next-line 8655function removeAttr(attr) { 8656 for (var i = 0; i < this.length; i += 1) { 8657 this[i].removeAttribute(attr); 8658 } 8659 return this; 8660} 8661// eslint-disable-next-line 8662function prop(props, value) { 8663 if (arguments.length === 1 && typeof props === 'string') { 8664 // Get prop 8665 if (this[0]) return this[0][props]; 8666 } else { 8667 // Set props 8668 for (var i = 0; i < this.length; i += 1) { 8669 if (arguments.length === 2) { 8670 // String 8671 this[i][props] = value; 8672 } else { 8673 // Object 8674 // eslint-disable-next-line 8675 for (var propName in props) { 8676 this[i][propName] = props[propName]; 8677 } 8678 } 8679 } 8680 return this; 8681 } 8682} 8683function data(key, value) { 8684 var el = void 0; 8685 if (typeof value === 'undefined') { 8686 el = this[0]; 8687 // Get value 8688 if (el) { 8689 if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) { 8690 return el.dom7ElementDataStorage[key]; 8691 } 8692 8693 var dataKey = el.getAttribute('data-' + key); 8694 if (dataKey) { 8695 return dataKey; 8696 } 8697 return undefined; 8698 } 8699 return undefined; 8700 } 8701 8702 // Set value 8703 for (var i = 0; i < this.length; i += 1) { 8704 el = this[i]; 8705 if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {}; 8706 el.dom7ElementDataStorage[key] = value; 8707 } 8708 return this; 8709} 8710function removeData(key) { 8711 for (var i = 0; i < this.length; i += 1) { 8712 var el = this[i]; 8713 if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) { 8714 el.dom7ElementDataStorage[key] = null; 8715 delete el.dom7ElementDataStorage[key]; 8716 } 8717 } 8718} 8719function dataset() { 8720 var el = this[0]; 8721 if (!el) return undefined; 8722 var dataset = {}; // eslint-disable-line 8723 if (el.dataset) { 8724 // eslint-disable-next-line 8725 for (var dataKey in el.dataset) { 8726 dataset[dataKey] = el.dataset[dataKey]; 8727 } 8728 } else { 8729 for (var i = 0; i < el.attributes.length; i += 1) { 8730 // eslint-disable-next-line 8731 var _attr = el.attributes[i]; 8732 if (_attr.name.indexOf('data-') >= 0) { 8733 dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value; 8734 } 8735 } 8736 } 8737 // eslint-disable-next-line 8738 for (var key in dataset) { 8739 if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1; 8740 } 8741 return dataset; 8742} 8743function val(value) { 8744 var dom = this; 8745 if (typeof value === 'undefined') { 8746 if (dom[0]) { 8747 if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') { 8748 var values = []; 8749 for (var i = 0; i < dom[0].selectedOptions.length; i += 1) { 8750 values.push(dom[0].selectedOptions[i].value); 8751 } 8752 return values; 8753 } 8754 return dom[0].value; 8755 } 8756 return undefined; 8757 } 8758 8759 for (var _i = 0; _i < dom.length; _i += 1) { 8760 var el = dom[_i]; 8761 if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') { 8762 for (var j = 0; j < el.options.length; j += 1) { 8763 el.options[j].selected = value.indexOf(el.options[j].value) >= 0; 8764 } 8765 } else { 8766 el.value = value; 8767 } 8768 } 8769 return dom; 8770} 8771// Transforms 8772// eslint-disable-next-line 8773function transform(transform) { 8774 for (var i = 0; i < this.length; i += 1) { 8775 var elStyle = this[i].style; 8776 elStyle.webkitTransform = transform; 8777 elStyle.transform = transform; 8778 } 8779 return this; 8780} 8781function transition(duration) { 8782 if (typeof duration !== 'string') { 8783 duration = duration + 'ms'; // eslint-disable-line 8784 } 8785 for (var i = 0; i < this.length; i += 1) { 8786 var elStyle = this[i].style; 8787 elStyle.webkitTransitionDuration = duration; 8788 elStyle.transitionDuration = duration; 8789 } 8790 return this; 8791} 8792// Events 8793function on() { 8794 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { 8795 args[_key] = arguments[_key]; 8796 } 8797 8798 var eventType = args[0], 8799 targetSelector = args[1], 8800 listener = args[2], 8801 capture = args[3]; 8802 8803 if (typeof args[1] === 'function') { 8804 eventType = args[0]; 8805 listener = args[1]; 8806 capture = args[2]; 8807 8808 targetSelector = undefined; 8809 } 8810 if (!capture) capture = false; 8811 8812 function handleLiveEvent(e) { 8813 var target = e.target; 8814 if (!target) return; 8815 var eventData = e.target.dom7EventData || []; 8816 if (eventData.indexOf(e) < 0) { 8817 eventData.unshift(e); 8818 } 8819 if ($(target).is(targetSelector)) listener.apply(target, eventData);else { 8820 var _parents = $(target).parents(); // eslint-disable-line 8821 for (var k = 0; k < _parents.length; k += 1) { 8822 if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData); 8823 } 8824 } 8825 } 8826 function handleEvent(e) { 8827 var eventData = e && e.target ? e.target.dom7EventData || [] : []; 8828 if (eventData.indexOf(e) < 0) { 8829 eventData.unshift(e); 8830 } 8831 listener.apply(this, eventData); 8832 } 8833 var events = eventType.split(' '); 8834 var j = void 0; 8835 for (var i = 0; i < this.length; i += 1) { 8836 var el = this[i]; 8837 if (!targetSelector) { 8838 for (j = 0; j < events.length; j += 1) { 8839 var event = events[j]; 8840 if (!el.dom7Listeners) el.dom7Listeners = {}; 8841 if (!el.dom7Listeners[event]) el.dom7Listeners[event] = []; 8842 el.dom7Listeners[event].push({ 8843 listener: listener, 8844 proxyListener: handleEvent 8845 }); 8846 el.addEventListener(event, handleEvent, capture); 8847 } 8848 } else { 8849 // Live events 8850 for (j = 0; j < events.length; j += 1) { 8851 var _event = events[j]; 8852 if (!el.dom7LiveListeners) el.dom7LiveListeners = {}; 8853 if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = []; 8854 el.dom7LiveListeners[_event].push({ 8855 listener: listener, 8856 proxyListener: handleLiveEvent 8857 }); 8858 el.addEventListener(_event, handleLiveEvent, capture); 8859 } 8860 } 8861 } 8862 return this; 8863} 8864function off() { 8865 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 8866 args[_key2] = arguments[_key2]; 8867 } 8868 8869 var eventType = args[0], 8870 targetSelector = args[1], 8871 listener = args[2], 8872 capture = args[3]; 8873 8874 if (typeof args[1] === 'function') { 8875 eventType = args[0]; 8876 listener = args[1]; 8877 capture = args[2]; 8878 8879 targetSelector = undefined; 8880 } 8881 if (!capture) capture = false; 8882 8883 var events = eventType.split(' '); 8884 for (var i = 0; i < events.length; i += 1) { 8885 var event = events[i]; 8886 for (var j = 0; j < this.length; j += 1) { 8887 var el = this[j]; 8888 var handlers = void 0; 8889 if (!targetSelector && el.dom7Listeners) { 8890 handlers = el.dom7Listeners[event]; 8891 } else if (targetSelector && el.dom7LiveListeners) { 8892 handlers = el.dom7LiveListeners[event]; 8893 } 8894 if (handlers && handlers.length) { 8895 for (var k = handlers.length - 1; k >= 0; k -= 1) { 8896 var handler = handlers[k]; 8897 if (listener && handler.listener === listener) { 8898 el.removeEventListener(event, handler.proxyListener, capture); 8899 handlers.splice(k, 1); 8900 } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) { 8901 el.removeEventListener(event, handler.proxyListener, capture); 8902 handlers.splice(k, 1); 8903 } else if (!listener) { 8904 el.removeEventListener(event, handler.proxyListener, capture); 8905 handlers.splice(k, 1); 8906 } 8907 } 8908 } 8909 } 8910 } 8911 return this; 8912} 8913function once() { 8914 var dom = this; 8915 8916 for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { 8917 args[_key3] = arguments[_key3]; 8918 } 8919 8920 var eventName = args[0], 8921 targetSelector = args[1], 8922 listener = args[2], 8923 capture = args[3]; 8924 8925 if (typeof args[1] === 'function') { 8926 eventName = args[0]; 8927 listener = args[1]; 8928 capture = args[2]; 8929 8930 targetSelector = undefined; 8931 } 8932 function onceHandler() { 8933 for (var _len4 = arguments.length, eventArgs = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { 8934 eventArgs[_key4] = arguments[_key4]; 8935 } 8936 8937 listener.apply(this, eventArgs); 8938 dom.off(eventName, targetSelector, onceHandler, capture); 8939 if (onceHandler.dom7proxy) { 8940 delete onceHandler.dom7proxy; 8941 } 8942 } 8943 onceHandler.dom7proxy = listener; 8944 return dom.on(eventName, targetSelector, onceHandler, capture); 8945} 8946function trigger() { 8947 for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { 8948 args[_key5] = arguments[_key5]; 8949 } 8950 8951 var events = args[0].split(' '); 8952 var eventData = args[1]; 8953 for (var i = 0; i < events.length; i += 1) { 8954 var event = events[i]; 8955 for (var j = 0; j < this.length; j += 1) { 8956 var el = this[j]; 8957 var evt = void 0; 8958 try { 8959 evt = new ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].CustomEvent(event, { 8960 detail: eventData, 8961 bubbles: true, 8962 cancelable: true 8963 }); 8964 } catch (e) { 8965 evt = ssr_window__WEBPACK_IMPORTED_MODULE_0__["document"].createEvent('Event'); 8966 evt.initEvent(event, true, true); 8967 evt.detail = eventData; 8968 } 8969 // eslint-disable-next-line 8970 el.dom7EventData = args.filter(function (data, dataIndex) { 8971 return dataIndex > 0; 8972 }); 8973 el.dispatchEvent(evt); 8974 el.dom7EventData = []; 8975 delete el.dom7EventData; 8976 } 8977 } 8978 return this; 8979} 8980function transitionEnd(callback) { 8981 var events = ['webkitTransitionEnd', 'transitionend']; 8982 var dom = this; 8983 var i = void 0; 8984 function fireCallBack(e) { 8985 /* jshint validthis:true */ 8986 if (e.target !== this) return; 8987 callback.call(this, e); 8988 for (i = 0; i < events.length; i += 1) { 8989 dom.off(events[i], fireCallBack); 8990 } 8991 } 8992 if (callback) { 8993 for (i = 0; i < events.length; i += 1) { 8994 dom.on(events[i], fireCallBack); 8995 } 8996 } 8997 return this; 8998} 8999function animationEnd(callback) { 9000 var events = ['webkitAnimationEnd', 'animationend']; 9001 var dom = this; 9002 var i = void 0; 9003 function fireCallBack(e) { 9004 if (e.target !== this) return; 9005 callback.call(this, e); 9006 for (i = 0; i < events.length; i += 1) { 9007 dom.off(events[i], fireCallBack); 9008 } 9009 } 9010 if (callback) { 9011 for (i = 0; i < events.length; i += 1) { 9012 dom.on(events[i], fireCallBack); 9013 } 9014 } 9015 return this; 9016} 9017// Sizing/Styles 9018function width() { 9019 if (this[0] === ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"]) { 9020 return ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].innerWidth; 9021 } 9022 9023 if (this.length > 0) { 9024 return parseFloat(this.css('width')); 9025 } 9026 9027 return null; 9028} 9029function outerWidth(includeMargins) { 9030 if (this.length > 0) { 9031 if (includeMargins) { 9032 // eslint-disable-next-line 9033 var _styles = this.styles(); 9034 return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left')); 9035 } 9036 return this[0].offsetWidth; 9037 } 9038 return null; 9039} 9040function height() { 9041 if (this[0] === ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"]) { 9042 return ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].innerHeight; 9043 } 9044 9045 if (this.length > 0) { 9046 return parseFloat(this.css('height')); 9047 } 9048 9049 return null; 9050} 9051function outerHeight(includeMargins) { 9052 if (this.length > 0) { 9053 if (includeMargins) { 9054 // eslint-disable-next-line 9055 var _styles2 = this.styles(); 9056 return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom')); 9057 } 9058 return this[0].offsetHeight; 9059 } 9060 return null; 9061} 9062function offset() { 9063 if (this.length > 0) { 9064 var el = this[0]; 9065 var box = el.getBoundingClientRect(); 9066 var body = ssr_window__WEBPACK_IMPORTED_MODULE_0__["document"].body; 9067 var clientTop = el.clientTop || body.clientTop || 0; 9068 var clientLeft = el.clientLeft || body.clientLeft || 0; 9069 var _scrollTop = el === ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"] ? ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].scrollY : el.scrollTop; 9070 var _scrollLeft = el === ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"] ? ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].scrollX : el.scrollLeft; 9071 return { 9072 top: box.top + _scrollTop - clientTop, 9073 left: box.left + _scrollLeft - clientLeft 9074 }; 9075 } 9076 9077 return null; 9078} 9079function hide() { 9080 for (var i = 0; i < this.length; i += 1) { 9081 this[i].style.display = 'none'; 9082 } 9083 return this; 9084} 9085function show() { 9086 for (var i = 0; i < this.length; i += 1) { 9087 var el = this[i]; 9088 if (el.style.display === 'none') { 9089 el.style.display = ''; 9090 } 9091 if (ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].getComputedStyle(el, null).getPropertyValue('display') === 'none') { 9092 // Still not visible 9093 el.style.display = 'block'; 9094 } 9095 } 9096 return this; 9097} 9098function styles() { 9099 if (this[0]) return ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].getComputedStyle(this[0], null); 9100 return {}; 9101} 9102function css(props, value) { 9103 var i = void 0; 9104 if (arguments.length === 1) { 9105 if (typeof props === 'string') { 9106 if (this[0]) return ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].getComputedStyle(this[0], null).getPropertyValue(props); 9107 } else { 9108 for (i = 0; i < this.length; i += 1) { 9109 // eslint-disable-next-line 9110 for (var _prop in props) { 9111 this[i].style[_prop] = props[_prop]; 9112 } 9113 } 9114 return this; 9115 } 9116 } 9117 if (arguments.length === 2 && typeof props === 'string') { 9118 for (i = 0; i < this.length; i += 1) { 9119 this[i].style[props] = value; 9120 } 9121 return this; 9122 } 9123 return this; 9124} 9125 9126// Dom manipulation 9127function toArray() { 9128 var arr = []; 9129 for (var i = 0; i < this.length; i += 1) { 9130 arr.push(this[i]); 9131 } 9132 return arr; 9133} 9134// Iterate over the collection passing elements to `callback` 9135function each(callback) { 9136 // Don't bother continuing without a callback 9137 if (!callback) return this; 9138 // Iterate over the current collection 9139 for (var i = 0; i < this.length; i += 1) { 9140 // If the callback returns false 9141 if (callback.call(this[i], i, this[i]) === false) { 9142 // End the loop early 9143 return this; 9144 } 9145 } 9146 // Return `this` to allow chained DOM operations 9147 return this; 9148} 9149function forEach(callback) { 9150 // Don't bother continuing without a callback 9151 if (!callback) return this; 9152 // Iterate over the current collection 9153 for (var i = 0; i < this.length; i += 1) { 9154 // If the callback returns false 9155 if (callback.call(this[i], this[i], i) === false) { 9156 // End the loop early 9157 return this; 9158 } 9159 } 9160 // Return `this` to allow chained DOM operations 9161 return this; 9162} 9163function filter(callback) { 9164 var matchedItems = []; 9165 var dom = this; 9166 for (var i = 0; i < dom.length; i += 1) { 9167 if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]); 9168 } 9169 return new Dom7(matchedItems); 9170} 9171function map(callback) { 9172 var modifiedItems = []; 9173 var dom = this; 9174 for (var i = 0; i < dom.length; i += 1) { 9175 modifiedItems.push(callback.call(dom[i], i, dom[i])); 9176 } 9177 return new Dom7(modifiedItems); 9178} 9179// eslint-disable-next-line 9180function html(html) { 9181 if (typeof html === 'undefined') { 9182 return this[0] ? this[0].innerHTML : undefined; 9183 } 9184 9185 for (var i = 0; i < this.length; i += 1) { 9186 this[i].innerHTML = html; 9187 } 9188 return this; 9189} 9190// eslint-disable-next-line 9191function text(text) { 9192 if (typeof text === 'undefined') { 9193 if (this[0]) { 9194 return this[0].textContent.trim(); 9195 } 9196 return null; 9197 } 9198 9199 for (var i = 0; i < this.length; i += 1) { 9200 this[i].textContent = text; 9201 } 9202 return this; 9203} 9204function is(selector) { 9205 var el = this[0]; 9206 var compareWith = void 0; 9207 var i = void 0; 9208 if (!el || typeof selector === 'undefined') return false; 9209 if (typeof selector === 'string') { 9210 if (el.matches) return el.matches(selector);else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);else if (el.msMatchesSelector) return el.msMatchesSelector(selector); 9211 9212 compareWith = $(selector); 9213 for (i = 0; i < compareWith.length; i += 1) { 9214 if (compareWith[i] === el) return true; 9215 } 9216 return false; 9217 } else if (selector === ssr_window__WEBPACK_IMPORTED_MODULE_0__["document"]) return el === ssr_window__WEBPACK_IMPORTED_MODULE_0__["document"];else if (selector === ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"]) return el === ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"]; 9218 9219 if (selector.nodeType || selector instanceof Dom7) { 9220 compareWith = selector.nodeType ? [selector] : selector; 9221 for (i = 0; i < compareWith.length; i += 1) { 9222 if (compareWith[i] === el) return true; 9223 } 9224 return false; 9225 } 9226 return false; 9227} 9228function indexOf(el) { 9229 for (var i = 0; i < this.length; i += 1) { 9230 if (this[i] === el) return i; 9231 } 9232 return -1; 9233} 9234function index() { 9235 var child = this[0]; 9236 var i = void 0; 9237 if (child) { 9238 i = 0; 9239 // eslint-disable-next-line 9240 while ((child = child.previousSibling) !== null) { 9241 if (child.nodeType === 1) i += 1; 9242 } 9243 return i; 9244 } 9245 return undefined; 9246} 9247// eslint-disable-next-line 9248function eq(index) { 9249 if (typeof index === 'undefined') return this; 9250 var length = this.length; 9251 var returnIndex = void 0; 9252 if (index > length - 1) { 9253 return new Dom7([]); 9254 } 9255 if (index < 0) { 9256 returnIndex = length + index; 9257 if (returnIndex < 0) return new Dom7([]); 9258 return new Dom7([this[returnIndex]]); 9259 } 9260 return new Dom7([this[index]]); 9261} 9262function append() { 9263 var newChild = void 0; 9264 9265 for (var k = 0; k < arguments.length; k += 1) { 9266 newChild = arguments.length <= k ? undefined : arguments[k]; 9267 for (var i = 0; i < this.length; i += 1) { 9268 if (typeof newChild === 'string') { 9269 var tempDiv = ssr_window__WEBPACK_IMPORTED_MODULE_0__["document"].createElement('div'); 9270 tempDiv.innerHTML = newChild; 9271 while (tempDiv.firstChild) { 9272 this[i].appendChild(tempDiv.firstChild); 9273 } 9274 } else if (newChild instanceof Dom7) { 9275 for (var j = 0; j < newChild.length; j += 1) { 9276 this[i].appendChild(newChild[j]); 9277 } 9278 } else { 9279 this[i].appendChild(newChild); 9280 } 9281 } 9282 } 9283 9284 return this; 9285} 9286// eslint-disable-next-line 9287function appendTo(parent) { 9288 $(parent).append(this); 9289 return this; 9290} 9291function prepend(newChild) { 9292 var i = void 0; 9293 var j = void 0; 9294 for (i = 0; i < this.length; i += 1) { 9295 if (typeof newChild === 'string') { 9296 var tempDiv = ssr_window__WEBPACK_IMPORTED_MODULE_0__["document"].createElement('div'); 9297 tempDiv.innerHTML = newChild; 9298 for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) { 9299 this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]); 9300 } 9301 } else if (newChild instanceof Dom7) { 9302 for (j = 0; j < newChild.length; j += 1) { 9303 this[i].insertBefore(newChild[j], this[i].childNodes[0]); 9304 } 9305 } else { 9306 this[i].insertBefore(newChild, this[i].childNodes[0]); 9307 } 9308 } 9309 return this; 9310} 9311// eslint-disable-next-line 9312function prependTo(parent) { 9313 $(parent).prepend(this); 9314 return this; 9315} 9316function insertBefore(selector) { 9317 var before = $(selector); 9318 for (var i = 0; i < this.length; i += 1) { 9319 if (before.length === 1) { 9320 before[0].parentNode.insertBefore(this[i], before[0]); 9321 } else if (before.length > 1) { 9322 for (var j = 0; j < before.length; j += 1) { 9323 before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]); 9324 } 9325 } 9326 } 9327} 9328function insertAfter(selector) { 9329 var after = $(selector); 9330 for (var i = 0; i < this.length; i += 1) { 9331 if (after.length === 1) { 9332 after[0].parentNode.insertBefore(this[i], after[0].nextSibling); 9333 } else if (after.length > 1) { 9334 for (var j = 0; j < after.length; j += 1) { 9335 after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling); 9336 } 9337 } 9338 } 9339} 9340function next(selector) { 9341 if (this.length > 0) { 9342 if (selector) { 9343 if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) { 9344 return new Dom7([this[0].nextElementSibling]); 9345 } 9346 return new Dom7([]); 9347 } 9348 9349 if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]); 9350 return new Dom7([]); 9351 } 9352 return new Dom7([]); 9353} 9354function nextAll(selector) { 9355 var nextEls = []; 9356 var el = this[0]; 9357 if (!el) return new Dom7([]); 9358 while (el.nextElementSibling) { 9359 var _next = el.nextElementSibling; // eslint-disable-line 9360 if (selector) { 9361 if ($(_next).is(selector)) nextEls.push(_next); 9362 } else nextEls.push(_next); 9363 el = _next; 9364 } 9365 return new Dom7(nextEls); 9366} 9367function prev(selector) { 9368 if (this.length > 0) { 9369 var el = this[0]; 9370 if (selector) { 9371 if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) { 9372 return new Dom7([el.previousElementSibling]); 9373 } 9374 return new Dom7([]); 9375 } 9376 9377 if (el.previousElementSibling) return new Dom7([el.previousElementSibling]); 9378 return new Dom7([]); 9379 } 9380 return new Dom7([]); 9381} 9382function prevAll(selector) { 9383 var prevEls = []; 9384 var el = this[0]; 9385 if (!el) return new Dom7([]); 9386 while (el.previousElementSibling) { 9387 var _prev = el.previousElementSibling; // eslint-disable-line 9388 if (selector) { 9389 if ($(_prev).is(selector)) prevEls.push(_prev); 9390 } else prevEls.push(_prev); 9391 el = _prev; 9392 } 9393 return new Dom7(prevEls); 9394} 9395function siblings(selector) { 9396 return this.nextAll(selector).add(this.prevAll(selector)); 9397} 9398function parent(selector) { 9399 var parents = []; // eslint-disable-line 9400 for (var i = 0; i < this.length; i += 1) { 9401 if (this[i].parentNode !== null) { 9402 if (selector) { 9403 if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode); 9404 } else { 9405 parents.push(this[i].parentNode); 9406 } 9407 } 9408 } 9409 return $(unique(parents)); 9410} 9411function parents(selector) { 9412 var parents = []; // eslint-disable-line 9413 for (var i = 0; i < this.length; i += 1) { 9414 var _parent = this[i].parentNode; // eslint-disable-line 9415 while (_parent) { 9416 if (selector) { 9417 if ($(_parent).is(selector)) parents.push(_parent); 9418 } else { 9419 parents.push(_parent); 9420 } 9421 _parent = _parent.parentNode; 9422 } 9423 } 9424 return $(unique(parents)); 9425} 9426function closest(selector) { 9427 var closest = this; // eslint-disable-line 9428 if (typeof selector === 'undefined') { 9429 return new Dom7([]); 9430 } 9431 if (!closest.is(selector)) { 9432 closest = closest.parents(selector).eq(0); 9433 } 9434 return closest; 9435} 9436function find(selector) { 9437 var foundElements = []; 9438 for (var i = 0; i < this.length; i += 1) { 9439 var found = this[i].querySelectorAll(selector); 9440 for (var j = 0; j < found.length; j += 1) { 9441 foundElements.push(found[j]); 9442 } 9443 } 9444 return new Dom7(foundElements); 9445} 9446function children(selector) { 9447 var children = []; // eslint-disable-line 9448 for (var i = 0; i < this.length; i += 1) { 9449 var childNodes = this[i].childNodes; 9450 9451 for (var j = 0; j < childNodes.length; j += 1) { 9452 if (!selector) { 9453 if (childNodes[j].nodeType === 1) children.push(childNodes[j]); 9454 } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) { 9455 children.push(childNodes[j]); 9456 } 9457 } 9458 } 9459 return new Dom7(unique(children)); 9460} 9461function remove() { 9462 for (var i = 0; i < this.length; i += 1) { 9463 if (this[i].parentNode) this[i].parentNode.removeChild(this[i]); 9464 } 9465 return this; 9466} 9467function detach() { 9468 return this.remove(); 9469} 9470function add() { 9471 var dom = this; 9472 var i = void 0; 9473 var j = void 0; 9474 9475 for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { 9476 args[_key6] = arguments[_key6]; 9477 } 9478 9479 for (i = 0; i < args.length; i += 1) { 9480 var toAdd = $(args[i]); 9481 for (j = 0; j < toAdd.length; j += 1) { 9482 dom[dom.length] = toAdd[j]; 9483 dom.length += 1; 9484 } 9485 } 9486 return dom; 9487} 9488function empty() { 9489 for (var i = 0; i < this.length; i += 1) { 9490 var el = this[i]; 9491 if (el.nodeType === 1) { 9492 for (var j = 0; j < el.childNodes.length; j += 1) { 9493 if (el.childNodes[j].parentNode) { 9494 el.childNodes[j].parentNode.removeChild(el.childNodes[j]); 9495 } 9496 } 9497 el.textContent = ''; 9498 } 9499 } 9500 return this; 9501} 9502 9503function scrollTo() { 9504 for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) { 9505 args[_key7] = arguments[_key7]; 9506 } 9507 9508 var left = args[0], 9509 top = args[1], 9510 duration = args[2], 9511 easing = args[3], 9512 callback = args[4]; 9513 9514 if (args.length === 4 && typeof easing === 'function') { 9515 callback = easing; 9516 left = args[0]; 9517 top = args[1]; 9518 duration = args[2]; 9519 callback = args[3]; 9520 easing = args[4]; 9521 } 9522 if (typeof easing === 'undefined') easing = 'swing'; 9523 9524 return this.each(function animate() { 9525 var el = this; 9526 var currentTop = void 0; 9527 var currentLeft = void 0; 9528 var maxTop = void 0; 9529 var maxLeft = void 0; 9530 var newTop = void 0; 9531 var newLeft = void 0; 9532 var scrollTop = void 0; // eslint-disable-line 9533 var scrollLeft = void 0; // eslint-disable-line 9534 var animateTop = top > 0 || top === 0; 9535 var animateLeft = left > 0 || left === 0; 9536 if (typeof easing === 'undefined') { 9537 easing = 'swing'; 9538 } 9539 if (animateTop) { 9540 currentTop = el.scrollTop; 9541 if (!duration) { 9542 el.scrollTop = top; 9543 } 9544 } 9545 if (animateLeft) { 9546 currentLeft = el.scrollLeft; 9547 if (!duration) { 9548 el.scrollLeft = left; 9549 } 9550 } 9551 if (!duration) return; 9552 if (animateTop) { 9553 maxTop = el.scrollHeight - el.offsetHeight; 9554 newTop = Math.max(Math.min(top, maxTop), 0); 9555 } 9556 if (animateLeft) { 9557 maxLeft = el.scrollWidth - el.offsetWidth; 9558 newLeft = Math.max(Math.min(left, maxLeft), 0); 9559 } 9560 var startTime = null; 9561 if (animateTop && newTop === currentTop) animateTop = false; 9562 if (animateLeft && newLeft === currentLeft) animateLeft = false; 9563 function render() { 9564 var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date().getTime(); 9565 9566 if (startTime === null) { 9567 startTime = time; 9568 } 9569 var progress = Math.max(Math.min((time - startTime) / duration, 1), 0); 9570 var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2; 9571 var done = void 0; 9572 if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop); 9573 if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft); 9574 if (animateTop && newTop > currentTop && scrollTop >= newTop) { 9575 el.scrollTop = newTop; 9576 done = true; 9577 } 9578 if (animateTop && newTop < currentTop && scrollTop <= newTop) { 9579 el.scrollTop = newTop; 9580 done = true; 9581 } 9582 if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) { 9583 el.scrollLeft = newLeft; 9584 done = true; 9585 } 9586 if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) { 9587 el.scrollLeft = newLeft; 9588 done = true; 9589 } 9590 9591 if (done) { 9592 if (callback) callback(); 9593 return; 9594 } 9595 if (animateTop) el.scrollTop = scrollTop; 9596 if (animateLeft) el.scrollLeft = scrollLeft; 9597 requestAnimationFrame(render); 9598 } 9599 requestAnimationFrame(render); 9600 }); 9601} 9602// scrollTop(top, duration, easing, callback) { 9603function scrollTop() { 9604 for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) { 9605 args[_key8] = arguments[_key8]; 9606 } 9607 9608 var top = args[0], 9609 duration = args[1], 9610 easing = args[2], 9611 callback = args[3]; 9612 9613 if (args.length === 3 && typeof easing === 'function') { 9614 top = args[0]; 9615 duration = args[1]; 9616 callback = args[2]; 9617 easing = args[3]; 9618 } 9619 var dom = this; 9620 if (typeof top === 'undefined') { 9621 if (dom.length > 0) return dom[0].scrollTop; 9622 return null; 9623 } 9624 return dom.scrollTo(undefined, top, duration, easing, callback); 9625} 9626function scrollLeft() { 9627 for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) { 9628 args[_key9] = arguments[_key9]; 9629 } 9630 9631 var left = args[0], 9632 duration = args[1], 9633 easing = args[2], 9634 callback = args[3]; 9635 9636 if (args.length === 3 && typeof easing === 'function') { 9637 left = args[0]; 9638 duration = args[1]; 9639 callback = args[2]; 9640 easing = args[3]; 9641 } 9642 var dom = this; 9643 if (typeof left === 'undefined') { 9644 if (dom.length > 0) return dom[0].scrollLeft; 9645 return null; 9646 } 9647 return dom.scrollTo(left, undefined, duration, easing, callback); 9648} 9649 9650function animate(initialProps, initialParams) { 9651 var els = this; 9652 var a = { 9653 props: Object.assign({}, initialProps), 9654 params: Object.assign({ 9655 duration: 300, 9656 easing: 'swing' // or 'linear' 9657 /* Callbacks 9658 begin(elements) 9659 complete(elements) 9660 progress(elements, complete, remaining, start, tweenValue) 9661 */ 9662 }, initialParams), 9663 9664 elements: els, 9665 animating: false, 9666 que: [], 9667 9668 easingProgress: function easingProgress(easing, progress) { 9669 if (easing === 'swing') { 9670 return 0.5 - Math.cos(progress * Math.PI) / 2; 9671 } 9672 if (typeof easing === 'function') { 9673 return easing(progress); 9674 } 9675 return progress; 9676 }, 9677 stop: function stop() { 9678 if (a.frameId) { 9679 cancelAnimationFrame(a.frameId); 9680 } 9681 a.animating = false; 9682 a.elements.each(function (index, el) { 9683 var element = el; 9684 delete element.dom7AnimateInstance; 9685 }); 9686 a.que = []; 9687 }, 9688 done: function done(complete) { 9689 a.animating = false; 9690 a.elements.each(function (index, el) { 9691 var element = el; 9692 delete element.dom7AnimateInstance; 9693 }); 9694 if (complete) complete(els); 9695 if (a.que.length > 0) { 9696 var que = a.que.shift(); 9697 a.animate(que[0], que[1]); 9698 } 9699 }, 9700 animate: function animate(props, params) { 9701 if (a.animating) { 9702 a.que.push([props, params]); 9703 return a; 9704 } 9705 var elements = []; 9706 9707 // Define & Cache Initials & Units 9708 a.elements.each(function (index, el) { 9709 var initialFullValue = void 0; 9710 var initialValue = void 0; 9711 var unit = void 0; 9712 var finalValue = void 0; 9713 var finalFullValue = void 0; 9714 9715 if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a; 9716 9717 elements[index] = { 9718 container: el 9719 }; 9720 Object.keys(props).forEach(function (prop) { 9721 initialFullValue = ssr_window__WEBPACK_IMPORTED_MODULE_0__["window"].getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.'); 9722 initialValue = parseFloat(initialFullValue); 9723 unit = initialFullValue.replace(initialValue, ''); 9724 finalValue = parseFloat(props[prop]); 9725 finalFullValue = props[prop] + unit; 9726 elements[index][prop] = { 9727 initialFullValue: initialFullValue, 9728 initialValue: initialValue, 9729 unit: unit, 9730 finalValue: finalValue, 9731 finalFullValue: finalFullValue, 9732 currentValue: initialValue 9733 }; 9734 }); 9735 }); 9736 9737 var startTime = null; 9738 var time = void 0; 9739 var elementsDone = 0; 9740 var propsDone = 0; 9741 var done = void 0; 9742 var began = false; 9743 9744 a.animating = true; 9745 9746 function render() { 9747 time = new Date().getTime(); 9748 var progress = void 0; 9749 var easeProgress = void 0; 9750 // let el; 9751 if (!began) { 9752 began = true; 9753 if (params.begin) params.begin(els); 9754 } 9755 if (startTime === null) { 9756 startTime = time; 9757 } 9758 if (params.progress) { 9759 // eslint-disable-next-line 9760 params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime); 9761 } 9762 9763 elements.forEach(function (element) { 9764 var el = element; 9765 if (done || el.done) return; 9766 Object.keys(props).forEach(function (prop) { 9767 if (done || el.done) return; 9768 progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0); 9769 easeProgress = a.easingProgress(params.easing, progress); 9770 var _el$prop = el[prop], 9771 initialValue = _el$prop.initialValue, 9772 finalValue = _el$prop.finalValue, 9773 unit = _el$prop.unit; 9774 9775 el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue); 9776 var currentValue = el[prop].currentValue; 9777 9778 if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) { 9779 el.container.style[prop] = finalValue + unit; 9780 propsDone += 1; 9781 if (propsDone === Object.keys(props).length) { 9782 el.done = true; 9783 elementsDone += 1; 9784 } 9785 if (elementsDone === elements.length) { 9786 done = true; 9787 } 9788 } 9789 if (done) { 9790 a.done(params.complete); 9791 return; 9792 } 9793 el.container.style[prop] = currentValue + unit; 9794 }); 9795 }); 9796 if (done) return; 9797 // Then call 9798 a.frameId = requestAnimationFrame(render); 9799 } 9800 a.frameId = requestAnimationFrame(render); 9801 return a; 9802 } 9803 }; 9804 9805 if (a.elements.length === 0) { 9806 return els; 9807 } 9808 9809 var animateInstance = void 0; 9810 for (var i = 0; i < a.elements.length; i += 1) { 9811 if (a.elements[i].dom7AnimateInstance) { 9812 animateInstance = a.elements[i].dom7AnimateInstance; 9813 } else a.elements[i].dom7AnimateInstance = a; 9814 } 9815 if (!animateInstance) { 9816 animateInstance = a; 9817 } 9818 9819 if (initialProps === 'stop') { 9820 animateInstance.stop(); 9821 } else { 9822 animateInstance.animate(a.props, a.params); 9823 } 9824 9825 return els; 9826} 9827 9828function stop() { 9829 var els = this; 9830 for (var i = 0; i < els.length; i += 1) { 9831 if (els[i].dom7AnimateInstance) { 9832 els[i].dom7AnimateInstance.stop(); 9833 } 9834 } 9835} 9836 9837var noTrigger = 'resize scroll'.split(' '); 9838function eventShortcut(name) { 9839 for (var _len10 = arguments.length, args = Array(_len10 > 1 ? _len10 - 1 : 0), _key10 = 1; _key10 < _len10; _key10++) { 9840 args[_key10 - 1] = arguments[_key10]; 9841 } 9842 9843 if (typeof args[0] === 'undefined') { 9844 for (var i = 0; i < this.length; i += 1) { 9845 if (noTrigger.indexOf(name) < 0) { 9846 if (name in this[i]) this[i][name]();else { 9847 $(this[i]).trigger(name); 9848 } 9849 } 9850 } 9851 return this; 9852 } 9853 return this.on.apply(this, [name].concat(args)); 9854} 9855 9856function click() { 9857 for (var _len11 = arguments.length, args = Array(_len11), _key11 = 0; _key11 < _len11; _key11++) { 9858 args[_key11] = arguments[_key11]; 9859 } 9860 9861 return eventShortcut.bind(this).apply(undefined, ['click'].concat(args)); 9862} 9863function blur() { 9864 for (var _len12 = arguments.length, args = Array(_len12), _key12 = 0; _key12 < _len12; _key12++) { 9865 args[_key12] = arguments[_key12]; 9866 } 9867 9868 return eventShortcut.bind(this).apply(undefined, ['blur'].concat(args)); 9869} 9870function focus() { 9871 for (var _len13 = arguments.length, args = Array(_len13), _key13 = 0; _key13 < _len13; _key13++) { 9872 args[_key13] = arguments[_key13]; 9873 } 9874 9875 return eventShortcut.bind(this).apply(undefined, ['focus'].concat(args)); 9876} 9877function focusin() { 9878 for (var _len14 = arguments.length, args = Array(_len14), _key14 = 0; _key14 < _len14; _key14++) { 9879 args[_key14] = arguments[_key14]; 9880 } 9881 9882 return eventShortcut.bind(this).apply(undefined, ['focusin'].concat(args)); 9883} 9884function focusout() { 9885 for (var _len15 = arguments.length, args = Array(_len15), _key15 = 0; _key15 < _len15; _key15++) { 9886 args[_key15] = arguments[_key15]; 9887 } 9888 9889 return eventShortcut.bind(this).apply(undefined, ['focusout'].concat(args)); 9890} 9891function keyup() { 9892 for (var _len16 = arguments.length, args = Array(_len16), _key16 = 0; _key16 < _len16; _key16++) { 9893 args[_key16] = arguments[_key16]; 9894 } 9895 9896 return eventShortcut.bind(this).apply(undefined, ['keyup'].concat(args)); 9897} 9898function keydown() { 9899 for (var _len17 = arguments.length, args = Array(_len17), _key17 = 0; _key17 < _len17; _key17++) { 9900 args[_key17] = arguments[_key17]; 9901 } 9902 9903 return eventShortcut.bind(this).apply(undefined, ['keydown'].concat(args)); 9904} 9905function keypress() { 9906 for (var _len18 = arguments.length, args = Array(_len18), _key18 = 0; _key18 < _len18; _key18++) { 9907 args[_key18] = arguments[_key18]; 9908 } 9909 9910 return eventShortcut.bind(this).apply(undefined, ['keypress'].concat(args)); 9911} 9912function submit() { 9913 for (var _len19 = arguments.length, args = Array(_len19), _key19 = 0; _key19 < _len19; _key19++) { 9914 args[_key19] = arguments[_key19]; 9915 } 9916 9917 return eventShortcut.bind(this).apply(undefined, ['submit'].concat(args)); 9918} 9919function change() { 9920 for (var _len20 = arguments.length, args = Array(_len20), _key20 = 0; _key20 < _len20; _key20++) { 9921 args[_key20] = arguments[_key20]; 9922 } 9923 9924 return eventShortcut.bind(this).apply(undefined, ['change'].concat(args)); 9925} 9926function mousedown() { 9927 for (var _len21 = arguments.length, args = Array(_len21), _key21 = 0; _key21 < _len21; _key21++) { 9928 args[_key21] = arguments[_key21]; 9929 } 9930 9931 return eventShortcut.bind(this).apply(undefined, ['mousedown'].concat(args)); 9932} 9933function mousemove() { 9934 for (var _len22 = arguments.length, args = Array(_len22), _key22 = 0; _key22 < _len22; _key22++) { 9935 args[_key22] = arguments[_key22]; 9936 } 9937 9938 return eventShortcut.bind(this).apply(undefined, ['mousemove'].concat(args)); 9939} 9940function mouseup() { 9941 for (var _len23 = arguments.length, args = Array(_len23), _key23 = 0; _key23 < _len23; _key23++) { 9942 args[_key23] = arguments[_key23]; 9943 } 9944 9945 return eventShortcut.bind(this).apply(undefined, ['mouseup'].concat(args)); 9946} 9947function mouseenter() { 9948 for (var _len24 = arguments.length, args = Array(_len24), _key24 = 0; _key24 < _len24; _key24++) { 9949 args[_key24] = arguments[_key24]; 9950 } 9951 9952 return eventShortcut.bind(this).apply(undefined, ['mouseenter'].concat(args)); 9953} 9954function mouseleave() { 9955 for (var _len25 = arguments.length, args = Array(_len25), _key25 = 0; _key25 < _len25; _key25++) { 9956 args[_key25] = arguments[_key25]; 9957 } 9958 9959 return eventShortcut.bind(this).apply(undefined, ['mouseleave'].concat(args)); 9960} 9961function mouseout() { 9962 for (var _len26 = arguments.length, args = Array(_len26), _key26 = 0; _key26 < _len26; _key26++) { 9963 args[_key26] = arguments[_key26]; 9964 } 9965 9966 return eventShortcut.bind(this).apply(undefined, ['mouseout'].concat(args)); 9967} 9968function mouseover() { 9969 for (var _len27 = arguments.length, args = Array(_len27), _key27 = 0; _key27 < _len27; _key27++) { 9970 args[_key27] = arguments[_key27]; 9971 } 9972 9973 return eventShortcut.bind(this).apply(undefined, ['mouseover'].concat(args)); 9974} 9975function touchstart() { 9976 for (var _len28 = arguments.length, args = Array(_len28), _key28 = 0; _key28 < _len28; _key28++) { 9977 args[_key28] = arguments[_key28]; 9978 } 9979 9980 return eventShortcut.bind(this).apply(undefined, ['touchstart'].concat(args)); 9981} 9982function touchend() { 9983 for (var _len29 = arguments.length, args = Array(_len29), _key29 = 0; _key29 < _len29; _key29++) { 9984 args[_key29] = arguments[_key29]; 9985 } 9986 9987 return eventShortcut.bind(this).apply(undefined, ['touchend'].concat(args)); 9988} 9989function touchmove() { 9990 for (var _len30 = arguments.length, args = Array(_len30), _key30 = 0; _key30 < _len30; _key30++) { 9991 args[_key30] = arguments[_key30]; 9992 } 9993 9994 return eventShortcut.bind(this).apply(undefined, ['touchmove'].concat(args)); 9995} 9996function resize() { 9997 for (var _len31 = arguments.length, args = Array(_len31), _key31 = 0; _key31 < _len31; _key31++) { 9998 args[_key31] = arguments[_key31]; 9999 } 10000 10001 return eventShortcut.bind(this).apply(undefined, ['resize'].concat(args)); 10002} 10003function scroll() { 10004 for (var _len32 = arguments.length, args = Array(_len32), _key32 = 0; _key32 < _len32; _key32++) { 10005 args[_key32] = arguments[_key32]; 10006 } 10007 10008 return eventShortcut.bind(this).apply(undefined, ['scroll'].concat(args)); 10009} 10010 10011 10012 10013/***/ }), 10014
vendor: 27,847 bytes, lines 10015-10844
10015/***/ "./node_modules/dom7/node_modules/ssr-window/dist/ssr-window.esm.js": 10016/*!**************************************************************************!*\ 10017 !*** ./node_modules/dom7/node_modules/ssr-window/dist/ssr-window.esm.js ***! 10018 \**************************************************************************/ 10019/*! exports provided: document, extend, window */ 10020/***/ (function(module, __webpack_exports__, __webpack_require__) { 10021 10022"use strict"; 10023__webpack_require__.r(__webpack_exports__); 10024/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "document", function() { return doc; }); 10025/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "extend", function() { return extend; }); 10026/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "window", function() { return win; }); 10027/** 10028 * SSR Window 2.0.0 10029 * Better handling for window object in SSR environment 10030 * https://github.com/nolimits4web/ssr-window 10031 * 10032 * Copyright 2020, Vladimir Kharlampidi 10033 * 10034 * Licensed under MIT 10035 * 10036 * Released on: May 12, 2020 10037 */ 10038/* eslint-disable no-param-reassign */ 10039function isObject(obj) { 10040 return (obj !== null && 10041 typeof obj === 'object' && 10042 'constructor' in obj && 10043 obj.constructor === Object); 10044} 10045function extend(target, src) { 10046 if (target === void 0) { target = {}; } 10047 if (src === void 0) { src = {}; } 10048 Object.keys(src).forEach(function (key) { 10049 if (typeof target[key] === 'undefined') 10050 target[key] = src[key]; 10051 else if (isObject(src[key]) && 10052 isObject(target[key]) && 10053 Object.keys(src[key]).length > 0) { 10054 extend(target[key], src[key]); 10055 } 10056 }); 10057} 10058 10059var doc = typeof document !== 'undefined' ? document : {}; 10060var ssrDocument = { 10061 body: {}, 10062 addEventListener: function () { }, 10063 removeEventListener: function () { }, 10064 activeElement: { 10065 blur: function () { }, 10066 nodeName: '', 10067 }, 10068 querySelector: function () { 10069 return null; 10070 }, 10071 querySelectorAll: function () { 10072 return []; 10073 }, 10074 getElementById: function () { 10075 return null; 10076 }, 10077 createEvent: function () { 10078 return { 10079 initEvent: function () { }, 10080 }; 10081 }, 10082 createElement: function () { 10083 return { 10084 children: [], 10085 childNodes: [], 10086 style: {}, 10087 setAttribute: function () { }, 10088 getElementsByTagName: function () { 10089 return []; 10090 }, 10091 }; 10092 }, 10093 createElementNS: function () { 10094 return {}; 10095 }, 10096 importNode: function () { 10097 return null; 10098 }, 10099 location: { 10100 hash: '', 10101 host: '', 10102 hostname: '', 10103 href: '', 10104 origin: '', 10105 pathname: '', 10106 protocol: '', 10107 search: '', 10108 }, 10109}; 10110extend(doc, ssrDocument); 10111 10112var win = typeof window !== 'undefined' ? window : {}; 10113var ssrWindow = { 10114 document: ssrDocument, 10115 navigator: { 10116 userAgent: '', 10117 }, 10118 location: { 10119 hash: '', 10120 host: '', 10121 hostname: '', 10122 href: '', 10123 origin: '', 10124 pathname: '', 10125 protocol: '', 10126 search: '', 10127 }, 10128 history: { 10129 replaceState: function () { }, 10130 pushState: function () { }, 10131 go: function () { }, 10132 back: function () { }, 10133 }, 10134 CustomEvent: function CustomEvent() { 10135 return this; 10136 }, 10137 addEventListener: function () { }, 10138 removeEventListener: function () { }, 10139 getComputedStyle: function () { 10140 return { 10141 getPropertyValue: function () { 10142 return ''; 10143 }, 10144 }; 10145 }, 10146 Image: function () { }, 10147 Date: function () { }, 10148 screen: {}, 10149 setTimeout: function () { }, 10150 clearTimeout: function () { }, 10151 matchMedia: function () { 10152 return {}; 10153 }, 10154}; 10155extend(win, ssrWindow); 10156 10157 10158 10159 10160/***/ }), 10161 10162/***/ "./node_modules/imports-loader/index.js?define=>false!./node_modules/scrollmagic/scrollmagic/uncompressed/plugins/debug.addIndicators.js": 10163/*!**************************************************************************************************************************************!*\ 10164 !*** ./node_modules/imports-loader?define=>false!./node_modules/scrollmagic/scrollmagic/uncompressed/plugins/debug.addIndicators.js ***! 10165 \**************************************************************************************************************************************/ 10166/*! no static exports found */ 10167/***/ (function(module, exports, __webpack_require__) { 10168 10169/*** IMPORTS FROM imports-loader ***/ 10170var define = false; 10171 10172/*! 10173 * ScrollMagic v2.0.6 (2018-10-08) 10174 * The javascript library for magical scroll interactions. 10175 * (c) 2018 Jan Paepke (@janpaepke) 10176 * Project Website: http://scrollmagic.io 10177 * 10178 * @version 2.0.6 10179 * @license Dual licensed under MIT license and GPL. 10180 * @author Jan Paepke - [email protected] 10181 * 10182 * @file Debug Extension for ScrollMagic. 10183 */ 10184/** 10185 * This plugin was formerly known as the ScrollMagic debug extension. 10186 * 10187 * It enables you to add visual indicators to your page, to be able to see exactly when a scene is triggered. 10188 * 10189 * To have access to this extension, please include `plugins/debug.addIndicators.js`. 10190 * @mixin debug.addIndicators 10191 */ 10192(function (root, factory) { 10193 if (typeof define === 'function' && define.amd) { 10194 // AMD. Register as an anonymous module. 10195 define(['ScrollMagic'], factory); 10196 } else if (true) { 10197 // CommonJS 10198 factory(__webpack_require__(/*! scrollmagic */ "./node_modules/scrollmagic/scrollmagic/uncompressed/ScrollMagic.js")); 10199 } else {} 10200}(this, function (ScrollMagic) { 10201 "use strict"; 10202 var NAMESPACE = "debug.addIndicators"; 10203 10204 var 10205 console = window.console || {}, 10206 err = Function.prototype.bind.call(console.error || console.log || 10207 function () {}, console); 10208 if (!ScrollMagic) { 10209 err("(" + NAMESPACE + ") -> ERROR: The ScrollMagic main module could not be found. Please make sure it's loaded before this plugin or use an asynchronous loader like requirejs."); 10210 } 10211 10212 // plugin settings 10213 var 10214 FONT_SIZE = "0.85em", 10215 ZINDEX = "9999", 10216 EDGE_OFFSET = 15; // minimum edge distance, added to indentation 10217 10218 // overall vars 10219 var 10220 _util = ScrollMagic._util, 10221 _autoindex = 0; 10222 10223 10224 10225 ScrollMagic.Scene.extend(function () { 10226 var 10227 Scene = this, 10228 _indicator; 10229 10230 var log = function () { 10231 if (Scene._log) { // not available, when main source minified 10232 Array.prototype.splice.call(arguments, 1, 0, "(" + NAMESPACE + ")", "->"); 10233 Scene._log.apply(this, arguments); 10234 } 10235 }; 10236 10237 /** 10238 * Add visual indicators for a ScrollMagic.Scene. 10239 * @memberof! debug.addIndicators# 10240 * 10241 * @example 10242 * // add basic indicators 10243 * scene.addIndicators() 10244 * 10245 * // passing options 10246 * scene.addIndicators({name: "pin scene", colorEnd: "#FFFFFF"}); 10247 * 10248 * @param {object} [options] - An object containing one or more options for the indicators. 10249 * @param {(string|object)} [options.parent=undefined] - A selector, DOM Object or a jQuery object that the indicators should be added to. 10250 If undefined, the controller's container will be used. 10251 * @param {number} [options.name=""] - This string will be displayed at the start and end indicators of the scene for identification purposes. If no name is supplied an automatic index will be used. 10252 * @param {number} [options.indent=0] - Additional position offset for the indicators (useful, when having multiple scenes starting at the same position). 10253 * @param {string} [options.colorStart=green] - CSS color definition for the start indicator. 10254 * @param {string} [options.colorEnd=red] - CSS color definition for the end indicator. 10255 * @param {string} [options.colorTrigger=blue] - CSS color definition for the trigger indicator. 10256 */ 10257 Scene.addIndicators = function (options) { 10258 if (!_indicator) { 10259 var 10260 DEFAULT_OPTIONS = { 10261 name: "", 10262 indent: 0, 10263 parent: undefined, 10264 colorStart: "green", 10265 colorEnd: "red", 10266 colorTrigger: "blue", 10267 }; 10268 10269 options = _util.extend({}, DEFAULT_OPTIONS, options); 10270 10271 _autoindex++; 10272 _indicator = new Indicator(Scene, options); 10273 10274 Scene.on("add.plugin_addIndicators", _indicator.add); 10275 Scene.on("remove.plugin_addIndicators", _indicator.remove); 10276 Scene.on("destroy.plugin_addIndicators", Scene.removeIndicators); 10277 10278 // it the scene already has a controller we can start right away. 10279 if (Scene.controller()) { 10280 _indicator.add(); 10281 } 10282 } 10283 return Scene; 10284 }; 10285 10286 /** 10287 * Removes visual indicators from a ScrollMagic.Scene. 10288 * @memberof! debug.addIndicators# 10289 * 10290 * @example 10291 * // remove previously added indicators 10292 * scene.removeIndicators() 10293 * 10294 */ 10295 Scene.removeIndicators = function () { 10296 if (_indicator) { 10297 _indicator.remove(); 10298 this.off("*.plugin_addIndicators"); 10299 _indicator = undefined; 10300 } 10301 return Scene; 10302 }; 10303 10304 }); 10305 10306 10307/* 10308 * ---------------------------------------------------------------- 10309 * Extension for controller to store and update related indicators 10310 * ---------------------------------------------------------------- 10311 */ 10312 // add option to globally auto-add indicators to scenes 10313 /** 10314 * Every ScrollMagic.Controller instance now accepts an additional option. 10315 * See {@link ScrollMagic.Controller} for a complete list of the standard options. 10316 * @memberof! debug.addIndicators# 10317 * @method new ScrollMagic.Controller(options) 10318 * @example 10319 * // make a controller and add indicators to all scenes attached 10320 * var controller = new ScrollMagic.Controller({addIndicators: true}); 10321 * // this scene will automatically have indicators added to it 10322 * new ScrollMagic.Scene() 10323 * .addTo(controller); 10324 * 10325 * @param {object} [options] - Options for the Controller. 10326 * @param {boolean} [options.addIndicators=false] - If set to `true` every scene that is added to the controller will automatically get indicators added to it. 10327 */ 10328 ScrollMagic.Controller.addOption("addIndicators", false); 10329 // extend Controller 10330 ScrollMagic.Controller.extend(function () { 10331 var 10332 Controller = this, 10333 _info = Controller.info(), 10334 _container = _info.container, 10335 _isDocument = _info.isDocument, 10336 _vertical = _info.vertical, 10337 _indicators = { // container for all indicators and methods 10338 groups: [] 10339 }; 10340 10341 var log = function () { 10342 if (Controller._log) { // not available, when main source minified 10343 Array.prototype.splice.call(arguments, 1, 0, "(" + NAMESPACE + ")", "->"); 10344 Controller._log.apply(this, arguments); 10345 } 10346 }; 10347 if (Controller._indicators) { 10348 log(2, "WARNING: Scene already has a property '_indicators', which will be overwritten by plugin."); 10349 } 10350 10351 // add indicators container 10352 this._indicators = _indicators; 10353/* 10354 needed updates: 10355 +++++++++++++++ 10356 start/end position on scene shift (handled in Indicator class) 10357 trigger parameters on triggerHook value change (handled in Indicator class) 10358 bounds position on container scroll or resize (to keep alignment to bottom/right) 10359 trigger position on container resize, window resize (if container isn't document) and window scroll (if container isn't document) 10360 */ 10361 10362 // event handler for when associated bounds markers need to be repositioned 10363 var handleBoundsPositionChange = function () { 10364 _indicators.updateBoundsPositions(); 10365 }; 10366 10367 // event handler for when associated trigger groups need to be repositioned 10368 var handleTriggerPositionChange = function () { 10369 _indicators.updateTriggerGroupPositions(); 10370 }; 10371 10372 _container.addEventListener("resize", handleTriggerPositionChange); 10373 if (!_isDocument) { 10374 window.addEventListener("resize", handleTriggerPositionChange); 10375 window.addEventListener("scroll", handleTriggerPositionChange); 10376 } 10377 // update all related bounds containers 10378 _container.addEventListener("resize", handleBoundsPositionChange); 10379 _container.addEventListener("scroll", handleBoundsPositionChange); 10380 10381 10382 // updates the position of the bounds container to aligned to the right for vertical containers and to the bottom for horizontal 10383 this._indicators.updateBoundsPositions = function (specificIndicator) { 10384 var // constant for all bounds 10385 groups = specificIndicator ? [_util.extend({}, specificIndicator.triggerGroup, { 10386 members: [specificIndicator] 10387 })] : // create a group with only one element 10388 _indicators.groups, 10389 // use all 10390 g = groups.length, 10391 css = {}, 10392 paramPos = _vertical ? "left" : "top", 10393 paramDimension = _vertical ? "width" : "height", 10394 edge = _vertical ? _util.get.scrollLeft(_container) + _util.get.width(_container) - EDGE_OFFSET : _util.get.scrollTop(_container) + _util.get.height(_container) - EDGE_OFFSET, 10395 b, triggerSize, group; 10396 while (g--) { // group loop 10397 group = groups[g]; 10398 b = group.members.length; 10399 triggerSize = _util.get[paramDimension](group.element.firstChild); 10400 while (b--) { // indicators loop 10401 css[paramPos] = edge - triggerSize; 10402 _util.css(group.members[b].bounds, css); 10403 } 10404 } 10405 }; 10406 10407 // updates the positions of all trigger groups attached to a controller or a specific one, if provided 10408 this._indicators.updateTriggerGroupPositions = function (specificGroup) { 10409 var // constant vars 10410 groups = specificGroup ? [specificGroup] : _indicators.groups, 10411 i = groups.length, 10412 container = _isDocument ? document.body : _container, 10413 containerOffset = _isDocument ? { 10414 top: 0, 10415 left: 0 10416 } : _util.get.offset(container, true), 10417 edge = _vertical ? _util.get.width(_container) - EDGE_OFFSET : _util.get.height(_container) - EDGE_OFFSET, 10418 paramDimension = _vertical ? "width" : "height", 10419 paramTransform = _vertical ? "Y" : "X"; 10420 var // changing vars 10421 group, elem, pos, elemSize, transform; 10422 while (i--) { 10423 group = groups[i]; 10424 elem = group.element; 10425 pos = group.triggerHook * Controller.info("size"); 10426 elemSize = _util.get[paramDimension](elem.firstChild.firstChild); 10427 transform = pos > elemSize ? "translate" + paramTransform + "(-100%)" : ""; 10428 10429 _util.css(elem, { 10430 top: containerOffset.top + (_vertical ? pos : edge - group.members[0].options.indent), 10431 left: containerOffset.left + (_vertical ? edge - group.members[0].options.indent : pos) 10432 }); 10433 _util.css(elem.firstChild.firstChild, { 10434 "-ms-transform": transform, 10435 "-webkit-transform": transform, 10436 "transform": transform 10437 }); 10438 } 10439 }; 10440 10441 // updates the label for the group to contain the name, if it only has one member 10442 this._indicators.updateTriggerGroupLabel = function (group) { 10443 var 10444 text = "trigger" + (group.members.length > 1 ? "" : " " + group.members[0].options.name), 10445 elem = group.element.firstChild.firstChild, 10446 doUpdate = elem.textContent !== text; 10447 if (doUpdate) { 10448 elem.textContent = text; 10449 if (_vertical) { // bounds position is dependent on text length, so update 10450 _indicators.updateBoundsPositions(); 10451 } 10452 } 10453 }; 10454 10455 // add indicators if global option is set 10456 this.addScene = function (newScene) { 10457 10458 if (this._options.addIndicators && newScene instanceof ScrollMagic.Scene && newScene.controller() === Controller) { 10459 newScene.addIndicators(); 10460 } 10461 // call original destroy method 10462 this.$super.addScene.apply(this, arguments); 10463 }; 10464 10465 // remove all previously set listeners on destroy 10466 this.destroy = function () { 10467 _container.removeEventListener("resize", handleTriggerPositionChange); 10468 if (!_isDocument) { 10469 window.removeEventListener("resize", handleTriggerPositionChange); 10470 window.removeEventListener("scroll", handleTriggerPositionChange); 10471 } 10472 _container.removeEventListener("resize", handleBoundsPositionChange); 10473 _container.removeEventListener("scroll", handleBoundsPositionChange); 10474 // call original destroy method 10475 this.$super.destroy.apply(this, arguments); 10476 }; 10477 return Controller; 10478 10479 }); 10480 10481/* 10482 * ---------------------------------------------------------------- 10483 * Internal class for the construction of Indicators 10484 * ---------------------------------------------------------------- 10485 */ 10486 var Indicator = function (Scene, options) { 10487 var 10488 Indicator = this, 10489 _elemBounds = TPL.bounds(), 10490 _elemStart = TPL.start(options.colorStart), 10491 _elemEnd = TPL.end(options.colorEnd), 10492 _boundsContainer = options.parent && _util.get.elements(options.parent)[0], 10493 _vertical, _ctrl; 10494 10495 var log = function () { 10496 if (Scene._log) { // not available, when main source minified 10497 Array.prototype.splice.call(arguments, 1, 0, "(" + NAMESPACE + ")", "->"); 10498 Scene._log.apply(this, arguments); 10499 } 10500 }; 10501 10502 options.name = options.name || _autoindex; 10503 10504 // prepare bounds elements 10505 _elemStart.firstChild.textContent += " " + options.name; 10506 _elemEnd.textContent += " " + options.name; 10507 _elemBounds.appendChild(_elemStart); 10508 _elemBounds.appendChild(_elemEnd); 10509 10510 // set public variables 10511 Indicator.options = options; 10512 Indicator.bounds = _elemBounds; 10513 // will be set later 10514 Indicator.triggerGroup = undefined; 10515 10516 // add indicators to DOM 10517 this.add = function () { 10518 _ctrl = Scene.controller(); 10519 _vertical = _ctrl.info("vertical"); 10520 10521 var isDocument = _ctrl.info("isDocument"); 10522 10523 if (!_boundsContainer) { 10524 // no parent supplied or doesnt exist 10525 _boundsContainer = isDocument ? document.body : _ctrl.info("container"); // check if window/document (then use body) 10526 } 10527 if (!isDocument && _util.css(_boundsContainer, "position") === 'static') { 10528 // position mode needed for correct positioning of indicators 10529 _util.css(_boundsContainer, { 10530 position: "relative" 10531 }); 10532 } 10533 10534 // add listeners for updates 10535 Scene.on("change.plugin_addIndicators", handleTriggerParamsChange); 10536 Scene.on("shift.plugin_addIndicators", handleBoundsParamsChange); 10537 10538 // updates trigger & bounds (will add elements if needed) 10539 updateTriggerGroup(); 10540 updateBounds(); 10541 10542 setTimeout(function () { // do after all execution is finished otherwise sometimes size calculations are off 10543 _ctrl._indicators.updateBoundsPositions(Indicator); 10544 }, 0); 10545 10546 log(3, "added indicators"); 10547 }; 10548 10549 // remove indicators from DOM 10550 this.remove = function () { 10551 if (Indicator.triggerGroup) { // if not set there's nothing to remove 10552 Scene.off("change.plugin_addIndicators", handleTriggerParamsChange); 10553 Scene.off("shift.plugin_addIndicators", handleBoundsParamsChange); 10554 10555 if (Indicator.triggerGroup.members.length > 1) { 10556 // just remove from memberlist of old group 10557 var group = Indicator.triggerGroup; 10558 group.members.splice(group.members.indexOf(Indicator), 1); 10559 _ctrl._indicators.updateTriggerGroupLabel(group); 10560 _ctrl._indicators.updateTriggerGroupPositions(group); 10561 Indicator.triggerGroup = undefined; 10562 } else { 10563 // remove complete group 10564 removeTriggerGroup(); 10565 } 10566 removeBounds(); 10567 10568 log(3, "removed indicators"); 10569 } 10570 }; 10571 10572/* 10573 * ---------------------------------------------------------------- 10574 * internal Event Handlers 10575 * ---------------------------------------------------------------- 10576 */ 10577 10578 // event handler for when bounds params change 10579 var handleBoundsParamsChange = function () { 10580 updateBounds(); 10581 }; 10582 10583 // event handler for when trigger params change 10584 var handleTriggerParamsChange = function (e) { 10585 if (e.what === "triggerHook") { 10586 updateTriggerGroup(); 10587 } 10588 }; 10589 10590/* 10591 * ---------------------------------------------------------------- 10592 * Bounds (start / stop) management 10593 * ---------------------------------------------------------------- 10594 */ 10595 10596 // adds an new bounds elements to the array and to the DOM 10597 var addBounds = function () { 10598 var v = _ctrl.info("vertical"); 10599 // apply stuff we didn't know before... 10600 _util.css(_elemStart.firstChild, { 10601 "border-bottom-width": v ? 1 : 0, 10602 "border-right-width": v ? 0 : 1, 10603 "bottom": v ? -1 : options.indent, 10604 "right": v ? options.indent : -1, 10605 "padding": v ? "0 8px" : "2px 4px", 10606 }); 10607 _util.css(_elemEnd, { 10608 "border-top-width": v ? 1 : 0, 10609 "border-left-width": v ? 0 : 1, 10610 "top": v ? "100%" : "", 10611 "right": v ? options.indent : "", 10612 "bottom": v ? "" : options.indent, 10613 "left": v ? "" : "100%", 10614 "padding": v ? "0 8px" : "2px 4px" 10615 }); 10616 // append 10617 _boundsContainer.appendChild(_elemBounds); 10618 }; 10619 10620 // remove bounds from list and DOM 10621 var removeBounds = function () { 10622 _elemBounds.parentNode.removeChild(_elemBounds); 10623 }; 10624 10625 // update the start and end positions of the scene 10626 var updateBounds = function () { 10627 if (_elemBounds.parentNode !== _boundsContainer) { 10628 addBounds(); // Add Bounds elements (start/end) 10629 } 10630 var css = {}; 10631 css[_vertical ? "top" : "left"] = Scene.triggerPosition(); 10632 css[_vertical ? "height" : "width"] = Scene.duration(); 10633 _util.css(_elemBounds, css); 10634 _util.css(_elemEnd, { 10635 display: Scene.duration() > 0 ? "" : "none" 10636 }); 10637 }; 10638 10639/* 10640 * ---------------------------------------------------------------- 10641 * trigger and trigger group management 10642 * ---------------------------------------------------------------- 10643 */ 10644 10645 // adds an new trigger group to the array and to the DOM 10646 var addTriggerGroup = function () { 10647 var triggerElem = TPL.trigger(options.colorTrigger); // new trigger element 10648 var css = {}; 10649 css[_vertical ? "right" : "bottom"] = 0; 10650 css[_vertical ? "border-top-width" : "border-left-width"] = 1; 10651 _util.css(triggerElem.firstChild, css); 10652 _util.css(triggerElem.firstChild.firstChild, { 10653 padding: _vertical ? "0 8px 3px 8px" : "3px 4px" 10654 }); 10655 document.body.appendChild(triggerElem); // directly add to body 10656 var newGroup = { 10657 triggerHook: Scene.triggerHook(), 10658 element: triggerElem, 10659 members: [Indicator] 10660 }; 10661 _ctrl._indicators.groups.push(newGroup); 10662 Indicator.triggerGroup = newGroup; 10663 // update right away 10664 _ctrl._indicators.updateTriggerGroupLabel(newGroup); 10665 _ctrl._indicators.updateTriggerGroupPositions(newGroup); 10666 }; 10667 10668 var removeTriggerGroup = function () { 10669 _ctrl._indicators.groups.splice(_ctrl._indicators.groups.indexOf(Indicator.triggerGroup), 1); 10670 Indicator.triggerGroup.element.parentNode.removeChild(Indicator.triggerGroup.element); 10671 Indicator.triggerGroup = undefined; 10672 }; 10673 10674 // updates the trigger group -> either join existing or add new one 10675/* 10676 * Logic: 10677 * 1 if a trigger group exist, check if it's in sync with Scene settings – if so, nothing else needs to happen 10678 * 2 try to find an existing one that matches Scene parameters 10679 * 2.1 If a match is found check if already assigned to an existing group 10680 * If so: 10681 * A: it was the last member of existing group -> kill whole group 10682 * B: the existing group has other members -> just remove from member list 10683 * 2.2 Assign to matching group 10684 * 3 if no new match could be found, check if assigned to existing group 10685 * A: yes, and it's the only member -> just update parameters and positions and keep using this group 10686 * B: yes but there are other members -> remove from member list and create a new one 10687 * C: no, so create a new one 10688 */ 10689 var updateTriggerGroup = function () { 10690 var 10691 triggerHook = Scene.triggerHook(), 10692 closeEnough = 0.0001; 10693 10694 // Have a group, check if it still matches 10695 if (Indicator.triggerGroup) { 10696 if (Math.abs(Indicator.triggerGroup.triggerHook - triggerHook) < closeEnough) { 10697 // _util.log(0, "trigger", options.name, "->", "no need to change, still in sync"); 10698 return; // all good 10699 } 10700 } 10701 // Don't have a group, check if a matching one exists 10702 // _util.log(0, "trigger", options.name, "->", "out of sync!"); 10703 var 10704 groups = _ctrl._indicators.groups, 10705 group, i = groups.length; 10706 while (i--) { 10707 group = groups[i]; 10708 if (Math.abs(group.triggerHook - triggerHook) < closeEnough) { 10709 // found a match! 10710 // _util.log(0, "trigger", options.name, "->", "found match"); 10711 if (Indicator.triggerGroup) { // do I have an old group that is out of sync? 10712 if (Indicator.triggerGroup.members.length === 1) { // is it the only remaining group? 10713 // _util.log(0, "trigger", options.name, "->", "kill"); 10714 // was the last member, remove the whole group 10715 removeTriggerGroup(); 10716 } else { 10717 Indicator.triggerGroup.members.splice(Indicator.triggerGroup.members.indexOf(Indicator), 1); // just remove from memberlist of old group 10718 _ctrl._indicators.updateTriggerGroupLabel(Indicator.triggerGroup); 10719 _ctrl._indicators.updateTriggerGroupPositions(Indicator.triggerGroup); 10720 // _util.log(0, "trigger", options.name, "->", "removing from previous member list"); 10721 } 10722 } 10723 // join new group 10724 group.members.push(Indicator); 10725 Indicator.triggerGroup = group; 10726 _ctrl._indicators.updateTriggerGroupLabel(group); 10727 return; 10728 } 10729 } 10730 10731 // at this point I am obviously out of sync and don't match any other group 10732 if (Indicator.triggerGroup) { 10733 if (Indicator.triggerGroup.members.length === 1) { 10734 // _util.log(0, "trigger", options.name, "->", "updating existing"); 10735 // out of sync but i'm the only member => just change and update 10736 Indicator.triggerGroup.triggerHook = triggerHook; 10737 _ctrl._indicators.updateTriggerGroupPositions(Indicator.triggerGroup); 10738 return; 10739 } else { 10740 // _util.log(0, "trigger", options.name, "->", "removing from previous member list"); 10741 Indicator.triggerGroup.members.splice(Indicator.triggerGroup.members.indexOf(Indicator), 1); // just remove from memberlist of old group 10742 _ctrl._indicators.updateTriggerGroupLabel(Indicator.triggerGroup); 10743 _ctrl._indicators.updateTriggerGroupPositions(Indicator.triggerGroup); 10744 Indicator.triggerGroup = undefined; // need a brand new group... 10745 } 10746 } 10747 // _util.log(0, "trigger", options.name, "->", "add a new one"); 10748 // did not find any match, make new trigger group 10749 addTriggerGroup(); 10750 }; 10751 }; 10752 10753/* 10754 * ---------------------------------------------------------------- 10755 * Templates for the indicators 10756 * ---------------------------------------------------------------- 10757 */ 10758 var TPL = { 10759 start: function (color) { 10760 // inner element (for bottom offset -1, while keeping top position 0) 10761 var inner = document.createElement("div"); 10762 inner.textContent = "start"; 10763 _util.css(inner, { 10764 position: "absolute", 10765 overflow: "visible", 10766 "border-width": 0, 10767 "border-style": "solid", 10768 color: color, 10769 "border-color": color 10770 }); 10771 var e = document.createElement('div'); 10772 // wrapper 10773 _util.css(e, { 10774 position: "absolute", 10775 overflow: "visible", 10776 width: 0, 10777 height: 0 10778 }); 10779 e.appendChild(inner); 10780 return e; 10781 }, 10782 end: function (color) { 10783 var e = document.createElement('div'); 10784 e.textContent = "end"; 10785 _util.css(e, { 10786 position: "absolute", 10787 overflow: "visible", 10788 "border-width": 0, 10789 "border-style": "solid", 10790 color: color, 10791 "border-color": color 10792 }); 10793 return e; 10794 }, 10795 bounds: function () { 10796 var e = document.createElement('div'); 10797 _util.css(e, { 10798 position: "absolute", 10799 overflow: "visible", 10800 "white-space": "nowrap", 10801 "pointer-events": "none", 10802 "font-size": FONT_SIZE 10803 }); 10804 e.style.zIndex = ZINDEX; 10805 return e; 10806 }, 10807 trigger: function (color) { 10808 // inner to be above or below line but keep position 10809 var inner = document.createElement('div'); 10810 inner.textContent = "trigger"; 10811 _util.css(inner, { 10812 position: "relative", 10813 }); 10814 // inner wrapper for right: 0 and main element has no size 10815 var w = document.createElement('div'); 10816 _util.css(w, { 10817 position: "absolute", 10818 overflow: "visible", 10819 "border-width": 0, 10820 "border-style": "solid", 10821 color: color, 10822 "border-color": color 10823 }); 10824 w.appendChild(inner); 10825 // wrapper 10826 var e = document.createElement('div'); 10827 _util.css(e, { 10828 position: "fixed", 10829 overflow: "visible", 10830 "white-space": "nowrap", 10831 "pointer-events": "none", 10832 "font-size": FONT_SIZE 10833 }); 10834 e.style.zIndex = ZINDEX; 10835 e.appendChild(w); 10836 return e; 10837 }, 10838 }; 10839 10840})); 10841 10842 10843/***/ }), 10844
vendor: 272,267 bytes, lines 10845-21220
10845/***/ "./node_modules/jquery/dist/jquery.js": 10846/*!********************************************!*\ 10847 !*** ./node_modules/jquery/dist/jquery.js ***! 10848 \********************************************/ 10849/*! no static exports found */ 10850/***/ (function(module, exports, __webpack_require__) { 10851 10852var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 10853 * jQuery JavaScript Library v3.3.1 10854 * https://jquery.com/ 10855 * 10856 * Includes Sizzle.js 10857 * https://sizzlejs.com/ 10858 * 10859 * Copyright JS Foundation and other contributors 10860 * Released under the MIT license 10861 * https://jquery.org/license 10862 * 10863 * Date: 2018-01-20T17:24Z 10864 */ 10865( function( global, factory ) { 10866 10867 "use strict"; 10868 10869 if ( typeof module === "object" && typeof module.exports === "object" ) { 10870 10871 // For CommonJS and CommonJS-like environments where a proper `window` 10872 // is present, execute the factory and get jQuery. 10873 // For environments that do not have a `window` with a `document` 10874 // (such as Node.js), expose a factory as module.exports. 10875 // This accentuates the need for the creation of a real `window`. 10876 // e.g. var jQuery = require("jquery")(window); 10877 // See ticket #14549 for more info. 10878 module.exports = global.document ? 10879 factory( global, true ) : 10880 function( w ) { 10881 if ( !w.document ) { 10882 throw new Error( "jQuery requires a window with a document" ); 10883 } 10884 return factory( w ); 10885 }; 10886 } else { 10887 factory( global ); 10888 } 10889 10890// Pass this if window is not defined yet 10891} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { 10892 10893// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 10894// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode 10895// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common 10896// enough that all such attempts are guarded in a try block. 10897"use strict"; 10898 10899var arr = []; 10900 10901var document = window.document; 10902 10903var getProto = Object.getPrototypeOf; 10904 10905var slice = arr.slice; 10906 10907var concat = arr.concat; 10908 10909var push = arr.push; 10910 10911var indexOf = arr.indexOf; 10912 10913var class2type = {}; 10914 10915var toString = class2type.toString; 10916 10917var hasOwn = class2type.hasOwnProperty; 10918 10919var fnToString = hasOwn.toString; 10920 10921var ObjectFunctionString = fnToString.call( Object ); 10922 10923var support = {}; 10924 10925var isFunction = function isFunction( obj ) { 10926 10927 // Support: Chrome <=57, Firefox <=52 10928 // In some browsers, typeof returns "function" for HTML <object> elements 10929 // (i.e., `typeof document.createElement( "object" ) === "function"`). 10930 // We don't want to classify *any* DOM node as a function. 10931 return typeof obj === "function" && typeof obj.nodeType !== "number"; 10932 }; 10933 10934 10935var isWindow = function isWindow( obj ) { 10936 return obj != null && obj === obj.window; 10937 }; 10938 10939 10940 10941 10942 var preservedScriptAttributes = { 10943 type: true, 10944 src: true, 10945 noModule: true 10946 }; 10947 10948 function DOMEval( code, doc, node ) { 10949 doc = doc || document; 10950 10951 var i, 10952 script = doc.createElement( "script" ); 10953 10954 script.text = code; 10955 if ( node ) { 10956 for ( i in preservedScriptAttributes ) { 10957 if ( node[ i ] ) { 10958 script[ i ] = node[ i ]; 10959 } 10960 } 10961 } 10962 doc.head.appendChild( script ).parentNode.removeChild( script ); 10963 } 10964 10965 10966function toType( obj ) { 10967 if ( obj == null ) { 10968 return obj + ""; 10969 } 10970 10971 // Support: Android <=2.3 only (functionish RegExp) 10972 return typeof obj === "object" || typeof obj === "function" ? 10973 class2type[ toString.call( obj ) ] || "object" : 10974 typeof obj; 10975} 10976/* global Symbol */ 10977// Defining this global in .eslintrc.json would create a danger of using the global 10978// unguarded in another place, it seems safer to define global only for this module 10979 10980 10981 10982var 10983 version = "3.3.1", 10984 10985 // Define a local copy of jQuery 10986 jQuery = function( selector, context ) { 10987 10988 // The jQuery object is actually just the init constructor 'enhanced' 10989 // Need init if jQuery is called (just allow error to be thrown if not included) 10990 return new jQuery.fn.init( selector, context ); 10991 }, 10992 10993 // Support: Android <=4.0 only 10994 // Make sure we trim BOM and NBSP 10995 rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; 10996 10997jQuery.fn = jQuery.prototype = { 10998 10999 // The current version of jQuery being used 11000 jquery: version, 11001 11002 constructor: jQuery, 11003 11004 // The default length of a jQuery object is 0 11005 length: 0, 11006 11007 toArray: function() { 11008 return slice.call( this ); 11009 }, 11010 11011 // Get the Nth element in the matched element set OR 11012 // Get the whole matched element set as a clean array 11013 get: function( num ) { 11014 11015 // Return all the elements in a clean array 11016 if ( num == null ) { 11017 return slice.call( this ); 11018 } 11019 11020 // Return just the one element from the set 11021 return num < 0 ? this[ num + this.length ] : this[ num ]; 11022 }, 11023 11024 // Take an array of elements and push it onto the stack 11025 // (returning the new matched element set) 11026 pushStack: function( elems ) { 11027 11028 // Build a new jQuery matched element set 11029 var ret = jQuery.merge( this.constructor(), elems ); 11030 11031 // Add the old object onto the stack (as a reference) 11032 ret.prevObject = this; 11033 11034 // Return the newly-formed element set 11035 return ret; 11036 }, 11037 11038 // Execute a callback for every element in the matched set. 11039 each: function( callback ) { 11040 return jQuery.each( this, callback ); 11041 }, 11042 11043 map: function( callback ) { 11044 return this.pushStack( jQuery.map( this, function( elem, i ) { 11045 return callback.call( elem, i, elem ); 11046 } ) ); 11047 }, 11048 11049 slice: function() { 11050 return this.pushStack( slice.apply( this, arguments ) ); 11051 }, 11052 11053 first: function() { 11054 return this.eq( 0 ); 11055 }, 11056 11057 last: function() { 11058 return this.eq( -1 ); 11059 }, 11060 11061 eq: function( i ) { 11062 var len = this.length, 11063 j = +i + ( i < 0 ? len : 0 ); 11064 return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); 11065 }, 11066 11067 end: function() { 11068 return this.prevObject || this.constructor(); 11069 }, 11070 11071 // For internal use only. 11072 // Behaves like an Array's method, not like a jQuery method. 11073 push: push, 11074 sort: arr.sort, 11075 splice: arr.splice 11076}; 11077 11078jQuery.extend = jQuery.fn.extend = function() { 11079 var options, name, src, copy, copyIsArray, clone, 11080 target = arguments[ 0 ] || {}, 11081 i = 1, 11082 length = arguments.length, 11083 deep = false; 11084 11085 // Handle a deep copy situation 11086 if ( typeof target === "boolean" ) { 11087 deep = target; 11088 11089 // Skip the boolean and the target 11090 target = arguments[ i ] || {}; 11091 i++; 11092 } 11093 11094 // Handle case when target is a string or something (possible in deep copy) 11095 if ( typeof target !== "object" && !isFunction( target ) ) { 11096 target = {}; 11097 } 11098 11099 // Extend jQuery itself if only one argument is passed 11100 if ( i === length ) { 11101 target = this; 11102 i--; 11103 } 11104 11105 for ( ; i < length; i++ ) { 11106 11107 // Only deal with non-null/undefined values 11108 if ( ( options = arguments[ i ] ) != null ) { 11109 11110 // Extend the base object 11111 for ( name in options ) { 11112 src = target[ name ]; 11113 copy = options[ name ]; 11114 11115 // Prevent never-ending loop 11116 if ( target === copy ) { 11117 continue; 11118 } 11119 11120 // Recurse if we're merging plain objects or arrays 11121 if ( deep && copy && ( jQuery.isPlainObject( copy ) || 11122 ( copyIsArray = Array.isArray( copy ) ) ) ) { 11123 11124 if ( copyIsArray ) { 11125 copyIsArray = false; 11126 clone = src && Array.isArray( src ) ? src : []; 11127 11128 } else { 11129 clone = src && jQuery.isPlainObject( src ) ? src : {}; 11130 } 11131 11132 // Never move original objects, clone them 11133 target[ name ] = jQuery.extend( deep, clone, copy ); 11134 11135 // Don't bring in undefined values 11136 } else if ( copy !== undefined ) { 11137 target[ name ] = copy; 11138 } 11139 } 11140 } 11141 } 11142 11143 // Return the modified object 11144 return target; 11145}; 11146 11147jQuery.extend( { 11148 11149 // Unique for each copy of jQuery on the page 11150 expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), 11151 11152 // Assume jQuery is ready without the ready module 11153 isReady: true, 11154 11155 error: function( msg ) { 11156 throw new Error( msg ); 11157 }, 11158 11159 noop: function() {}, 11160 11161 isPlainObject: function( obj ) { 11162 var proto, Ctor; 11163 11164 // Detect obvious negatives 11165 // Use toString instead of jQuery.type to catch host objects 11166 if ( !obj || toString.call( obj ) !== "[object Object]" ) { 11167 return false; 11168 } 11169 11170 proto = getProto( obj ); 11171 11172 // Objects with no prototype (e.g., `Object.create( null )`) are plain 11173 if ( !proto ) { 11174 return true; 11175 } 11176 11177 // Objects with prototype are plain iff they were constructed by a global Object function 11178 Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; 11179 return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; 11180 }, 11181 11182 isEmptyObject: function( obj ) { 11183 11184 /* eslint-disable no-unused-vars */ 11185 // See https://github.com/eslint/eslint/issues/6125 11186 var name; 11187 11188 for ( name in obj ) { 11189 return false; 11190 } 11191 return true; 11192 }, 11193 11194 // Evaluates a script in a global context 11195 globalEval: function( code ) { 11196 DOMEval( code ); 11197 }, 11198 11199 each: function( obj, callback ) { 11200 var length, i = 0; 11201 11202 if ( isArrayLike( obj ) ) { 11203 length = obj.length; 11204 for ( ; i < length; i++ ) { 11205 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { 11206 break; 11207 } 11208 } 11209 } else { 11210 for ( i in obj ) { 11211 if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { 11212 break; 11213 } 11214 } 11215 } 11216 11217 return obj; 11218 }, 11219 11220 // Support: Android <=4.0 only 11221 trim: function( text ) { 11222 return text == null ? 11223 "" : 11224 ( text + "" ).replace( rtrim, "" ); 11225 }, 11226 11227 // results is for internal usage only 11228 makeArray: function( arr, results ) { 11229 var ret = results || []; 11230 11231 if ( arr != null ) { 11232 if ( isArrayLike( Object( arr ) ) ) { 11233 jQuery.merge( ret, 11234 typeof arr === "string" ? 11235 [ arr ] : arr 11236 ); 11237 } else { 11238 push.call( ret, arr ); 11239 } 11240 } 11241 11242 return ret; 11243 }, 11244 11245 inArray: function( elem, arr, i ) { 11246 return arr == null ? -1 : indexOf.call( arr, elem, i ); 11247 }, 11248 11249 // Support: Android <=4.0 only, PhantomJS 1 only 11250 // push.apply(_, arraylike) throws on ancient WebKit 11251 merge: function( first, second ) { 11252 var len = +second.length, 11253 j = 0, 11254 i = first.length; 11255 11256 for ( ; j < len; j++ ) { 11257 first[ i++ ] = second[ j ]; 11258 } 11259 11260 first.length = i; 11261 11262 return first; 11263 }, 11264 11265 grep: function( elems, callback, invert ) { 11266 var callbackInverse, 11267 matches = [], 11268 i = 0, 11269 length = elems.length, 11270 callbackExpect = !invert; 11271 11272 // Go through the array, only saving the items 11273 // that pass the validator function 11274 for ( ; i < length; i++ ) { 11275 callbackInverse = !callback( elems[ i ], i ); 11276 if ( callbackInverse !== callbackExpect ) { 11277 matches.push( elems[ i ] ); 11278 } 11279 } 11280 11281 return matches; 11282 }, 11283 11284 // arg is for internal usage only 11285 map: function( elems, callback, arg ) { 11286 var length, value, 11287 i = 0, 11288 ret = []; 11289 11290 // Go through the array, translating each of the items to their new values 11291 if ( isArrayLike( elems ) ) { 11292 length = elems.length; 11293 for ( ; i < length; i++ ) { 11294 value = callback( elems[ i ], i, arg ); 11295 11296 if ( value != null ) { 11297 ret.push( value ); 11298 } 11299 } 11300 11301 // Go through every key on the object, 11302 } else { 11303 for ( i in elems ) { 11304 value = callback( elems[ i ], i, arg ); 11305 11306 if ( value != null ) { 11307 ret.push( value ); 11308 } 11309 } 11310 } 11311 11312 // Flatten any nested arrays 11313 return concat.apply( [], ret ); 11314 }, 11315 11316 // A global GUID counter for objects 11317 guid: 1, 11318 11319 // jQuery.support is not used in Core but other projects attach their 11320 // properties to it so it needs to exist. 11321 support: support 11322} ); 11323 11324if ( typeof Symbol === "function" ) { 11325 jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; 11326} 11327 11328// Populate the class2type map 11329jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), 11330function( i, name ) { 11331 class2type[ "[object " + name + "]" ] = name.toLowerCase(); 11332} ); 11333 11334function isArrayLike( obj ) { 11335 11336 // Support: real iOS 8.2 only (not reproducible in simulator) 11337 // `in` check used to prevent JIT error (gh-2145) 11338 // hasOwn isn't used here due to false negatives 11339 // regarding Nodelist length in IE 11340 var length = !!obj && "length" in obj && obj.length, 11341 type = toType( obj ); 11342 11343 if ( isFunction( obj ) || isWindow( obj ) ) { 11344 return false; 11345 } 11346 11347 return type === "array" || length === 0 || 11348 typeof length === "number" && length > 0 && ( length - 1 ) in obj; 11349} 11350var Sizzle = 11351/*! 11352 * Sizzle CSS Selector Engine v2.3.3 11353 * https://sizzlejs.com/ 11354 * 11355 * Copyright jQuery Foundation and other contributors 11356 * Released under the MIT license 11357 * http://jquery.org/license 11358 * 11359 * Date: 2016-08-08 11360 */ 11361(function( window ) { 11362 11363var i, 11364 support, 11365 Expr, 11366 getText, 11367 isXML, 11368 tokenize, 11369 compile, 11370 select, 11371 outermostContext, 11372 sortInput, 11373 hasDuplicate, 11374 11375 // Local document vars 11376 setDocument, 11377 document, 11378 docElem, 11379 documentIsHTML, 11380 rbuggyQSA, 11381 rbuggyMatches, 11382 matches, 11383 contains, 11384 11385 // Instance-specific data 11386 expando = "sizzle" + 1 * new Date(), 11387 preferredDoc = window.document, 11388 dirruns = 0, 11389 done = 0, 11390 classCache = createCache(), 11391 tokenCache = createCache(), 11392 compilerCache = createCache(), 11393 sortOrder = function( a, b ) { 11394 if ( a === b ) { 11395 hasDuplicate = true; 11396 } 11397 return 0; 11398 }, 11399 11400 // Instance methods 11401 hasOwn = ({}).hasOwnProperty, 11402 arr = [], 11403 pop = arr.pop, 11404 push_native = arr.push, 11405 push = arr.push, 11406 slice = arr.slice, 11407 // Use a stripped-down indexOf as it's faster than native 11408 // https://jsperf.com/thor-indexof-vs-for/5 11409 indexOf = function( list, elem ) { 11410 var i = 0, 11411 len = list.length; 11412 for ( ; i < len; i++ ) { 11413 if ( list[i] === elem ) { 11414 return i; 11415 } 11416 } 11417 return -1; 11418 }, 11419 11420 booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", 11421 11422 // Regular expressions 11423 11424 // http://www.w3.org/TR/css3-selectors/#whitespace 11425 whitespace = "[\\x20\\t\\r\\n\\f]", 11426 11427 // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier 11428 identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", 11429 11430 // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors 11431 attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + 11432 // Operator (capture 2) 11433 "*([*^$|!~]?=)" + whitespace + 11434 // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" 11435 "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + 11436 "*\\]", 11437 11438 pseudos = ":(" + identifier + ")(?:\\((" + 11439 // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: 11440 // 1. quoted (capture 3; capture 4 or capture 5) 11441 "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + 11442 // 2. simple (capture 6) 11443 "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + 11444 // 3. anything else (capture 2) 11445 ".*" + 11446 ")\\)|)", 11447 11448 // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter 11449 rwhitespace = new RegExp( whitespace + "+", "g" ), 11450 rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), 11451 11452 rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), 11453 rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), 11454 11455 rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), 11456 11457 rpseudo = new RegExp( pseudos ), 11458 ridentifier = new RegExp( "^" + identifier + "$" ), 11459 11460 matchExpr = { 11461 "ID": new RegExp( "^#(" + identifier + ")" ), 11462 "CLASS": new RegExp( "^\\.(" + identifier + ")" ), 11463 "TAG": new RegExp( "^(" + identifier + "|[*])" ), 11464 "ATTR": new RegExp( "^" + attributes ), 11465 "PSEUDO": new RegExp( "^" + pseudos ), 11466 "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + 11467 "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + 11468 "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), 11469 "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), 11470 // For use in libraries implementing .is() 11471 // We use this for POS matching in `select` 11472 "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + 11473 whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) 11474 }, 11475 11476 rinputs = /^(?:input|select|textarea|button)$/i, 11477 rheader = /^h\d$/i, 11478 11479 rnative = /^[^{]+\{\s*\[native \w/, 11480 11481 // Easily-parseable/retrievable ID or TAG or CLASS selectors 11482 rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, 11483 11484 rsibling = /[+~]/, 11485 11486 // CSS escapes 11487 // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters 11488 runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), 11489 funescape = function( _, escaped, escapedWhitespace ) { 11490 var high = "0x" + escaped - 0x10000; 11491 // NaN means non-codepoint 11492 // Support: Firefox<24 11493 // Workaround erroneous numeric interpretation of +"0x" 11494 return high !== high || escapedWhitespace ? 11495 escaped : 11496 high < 0 ? 11497 // BMP codepoint 11498 String.fromCharCode( high + 0x10000 ) : 11499 // Supplemental Plane codepoint (surrogate pair) 11500 String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); 11501 }, 11502 11503 // CSS string/identifier serialization 11504 // https://drafts.csswg.org/cssom/#common-serializing-idioms 11505 rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, 11506 fcssescape = function( ch, asCodePoint ) { 11507 if ( asCodePoint ) { 11508 11509 // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER 11510 if ( ch === "\0" ) { 11511 return "\uFFFD"; 11512 } 11513 11514 // Control characters and (dependent upon position) numbers get escaped as code points 11515 return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; 11516 } 11517 11518 // Other potentially-special ASCII characters get backslash-escaped 11519 return "\\" + ch; 11520 }, 11521 11522 // Used for iframes 11523 // See setDocument() 11524 // Removing the function wrapper causes a "Permission Denied" 11525 // error in IE 11526 unloadHandler = function() { 11527 setDocument(); 11528 }, 11529 11530 disabledAncestor = addCombinator( 11531 function( elem ) { 11532 return elem.disabled === true && ("form" in elem || "label" in elem); 11533 }, 11534 { dir: "parentNode", next: "legend" } 11535 ); 11536 11537// Optimize for push.apply( _, NodeList ) 11538try { 11539 push.apply( 11540 (arr = slice.call( preferredDoc.childNodes )), 11541 preferredDoc.childNodes 11542 ); 11543 // Support: Android<4.0 11544 // Detect silently failing push.apply 11545 arr[ preferredDoc.childNodes.length ].nodeType; 11546} catch ( e ) { 11547 push = { apply: arr.length ? 11548 11549 // Leverage slice if possible 11550 function( target, els ) { 11551 push_native.apply( target, slice.call(els) ); 11552 } : 11553 11554 // Support: IE<9 11555 // Otherwise append directly 11556 function( target, els ) { 11557 var j = target.length, 11558 i = 0; 11559 // Can't trust NodeList.length 11560 while ( (target[j++] = els[i++]) ) {} 11561 target.length = j - 1; 11562 } 11563 }; 11564} 11565 11566function Sizzle( selector, context, results, seed ) { 11567 var m, i, elem, nid, match, groups, newSelector, 11568 newContext = context && context.ownerDocument, 11569 11570 // nodeType defaults to 9, since context defaults to document 11571 nodeType = context ? context.nodeType : 9; 11572 11573 results = results || []; 11574 11575 // Return early from calls with invalid selector or context 11576 if ( typeof selector !== "string" || !selector || 11577 nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { 11578 11579 return results; 11580 } 11581 11582 // Try to shortcut find operations (as opposed to filters) in HTML documents 11583 if ( !seed ) { 11584 11585 if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { 11586 setDocument( context ); 11587 } 11588 context = context || document; 11589 11590 if ( documentIsHTML ) { 11591 11592 // If the selector is sufficiently simple, try using a "get*By*" DOM method 11593 // (excepting DocumentFragment context, where the methods don't exist) 11594 if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { 11595 11596 // ID selector 11597 if ( (m = match[1]) ) { 11598 11599 // Document context 11600 if ( nodeType === 9 ) { 11601 if ( (elem = context.getElementById( m )) ) { 11602 11603 // Support: IE, Opera, Webkit 11604 // TODO: identify versions 11605 // getElementById can match elements by name instead of ID 11606 if ( elem.id === m ) { 11607 results.push( elem ); 11608 return results; 11609 } 11610 } else { 11611 return results; 11612 } 11613 11614 // Element context 11615 } else { 11616 11617 // Support: IE, Opera, Webkit 11618 // TODO: identify versions 11619 // getElementById can match elements by name instead of ID 11620 if ( newContext && (elem = newContext.getElementById( m )) && 11621 contains( context, elem ) && 11622 elem.id === m ) { 11623 11624 results.push( elem ); 11625 return results; 11626 } 11627 } 11628 11629 // Type selector 11630 } else if ( match[2] ) { 11631 push.apply( results, context.getElementsByTagName( selector ) ); 11632 return results; 11633 11634 // Class selector 11635 } else if ( (m = match[3]) && support.getElementsByClassName && 11636 context.getElementsByClassName ) { 11637 11638 push.apply( results, context.getElementsByClassName( m ) ); 11639 return results; 11640 } 11641 } 11642 11643 // Take advantage of querySelectorAll 11644 if ( support.qsa && 11645 !compilerCache[ selector + " " ] && 11646 (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { 11647 11648 if ( nodeType !== 1 ) { 11649 newContext = context; 11650 newSelector = selector; 11651 11652 // qSA looks outside Element context, which is not what we want 11653 // Thanks to Andrew Dupont for this workaround technique 11654 // Support: IE <=8 11655 // Exclude object elements 11656 } else if ( context.nodeName.toLowerCase() !== "object" ) { 11657 11658 // Capture the context ID, setting it first if necessary 11659 if ( (nid = context.getAttribute( "id" )) ) { 11660 nid = nid.replace( rcssescape, fcssescape ); 11661 } else { 11662 context.setAttribute( "id", (nid = expando) ); 11663 } 11664 11665 // Prefix every selector in the list 11666 groups = tokenize( selector ); 11667 i = groups.length; 11668 while ( i-- ) { 11669 groups[i] = "#" + nid + " " + toSelector( groups[i] ); 11670 } 11671 newSelector = groups.join( "," ); 11672 11673 // Expand context for sibling selectors 11674 newContext = rsibling.test( selector ) && testContext( context.parentNode ) || 11675 context; 11676 } 11677 11678 if ( newSelector ) { 11679 try { 11680 push.apply( results, 11681 newContext.querySelectorAll( newSelector ) 11682 ); 11683 return results; 11684 } catch ( qsaError ) { 11685 } finally { 11686 if ( nid === expando ) { 11687 context.removeAttribute( "id" ); 11688 } 11689 } 11690 } 11691 } 11692 } 11693 } 11694 11695 // All others 11696 return select( selector.replace( rtrim, "$1" ), context, results, seed ); 11697} 11698 11699/** 11700 * Create key-value caches of limited size 11701 * @returns {function(string, object)} Returns the Object data after storing it on itself with 11702 * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) 11703 * deleting the oldest entry 11704 */ 11705function createCache() { 11706 var keys = []; 11707 11708 function cache( key, value ) { 11709 // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) 11710 if ( keys.push( key + " " ) > Expr.cacheLength ) { 11711 // Only keep the most recent entries 11712 delete cache[ keys.shift() ]; 11713 } 11714 return (cache[ key + " " ] = value); 11715 } 11716 return cache; 11717} 11718 11719/** 11720 * Mark a function for special use by Sizzle 11721 * @param {Function} fn The function to mark 11722 */ 11723function markFunction( fn ) { 11724 fn[ expando ] = true; 11725 return fn; 11726} 11727 11728/** 11729 * Support testing using an element 11730 * @param {Function} fn Passed the created element and returns a boolean result 11731 */ 11732function assert( fn ) { 11733 var el = document.createElement("fieldset"); 11734 11735 try { 11736 return !!fn( el ); 11737 } catch (e) { 11738 return false; 11739 } finally { 11740 // Remove from its parent by default 11741 if ( el.parentNode ) { 11742 el.parentNode.removeChild( el ); 11743 } 11744 // release memory in IE 11745 el = null; 11746 } 11747} 11748 11749/** 11750 * Adds the same handler for all of the specified attrs 11751 * @param {String} attrs Pipe-separated list of attributes 11752 * @param {Function} handler The method that will be applied 11753 */ 11754function addHandle( attrs, handler ) { 11755 var arr = attrs.split("|"), 11756 i = arr.length; 11757 11758 while ( i-- ) { 11759 Expr.attrHandle[ arr[i] ] = handler; 11760 } 11761} 11762 11763/** 11764 * Checks document order of two siblings 11765 * @param {Element} a 11766 * @param {Element} b 11767 * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b 11768 */ 11769function siblingCheck( a, b ) { 11770 var cur = b && a, 11771 diff = cur && a.nodeType === 1 && b.nodeType === 1 && 11772 a.sourceIndex - b.sourceIndex; 11773 11774 // Use IE sourceIndex if available on both nodes 11775 if ( diff ) { 11776 return diff; 11777 } 11778 11779 // Check if b follows a 11780 if ( cur ) { 11781 while ( (cur = cur.nextSibling) ) { 11782 if ( cur === b ) { 11783 return -1; 11784 } 11785 } 11786 } 11787 11788 return a ? 1 : -1; 11789} 11790 11791/** 11792 * Returns a function to use in pseudos for input types 11793 * @param {String} type 11794 */ 11795function createInputPseudo( type ) { 11796 return function( elem ) { 11797 var name = elem.nodeName.toLowerCase(); 11798 return name === "input" && elem.type === type; 11799 }; 11800} 11801 11802/** 11803 * Returns a function to use in pseudos for buttons 11804 * @param {String} type 11805 */ 11806function createButtonPseudo( type ) { 11807 return function( elem ) { 11808 var name = elem.nodeName.toLowerCase(); 11809 return (name === "input" || name === "button") && elem.type === type; 11810 }; 11811} 11812 11813/** 11814 * Returns a function to use in pseudos for :enabled/:disabled 11815 * @param {Boolean} disabled true for :disabled; false for :enabled 11816 */ 11817function createDisabledPseudo( disabled ) { 11818 11819 // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable 11820 return function( elem ) { 11821 11822 // Only certain elements can match :enabled or :disabled 11823 // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled 11824 // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled 11825 if ( "form" in elem ) { 11826 11827 // Check for inherited disabledness on relevant non-disabled elements: 11828 // * listed form-associated elements in a disabled fieldset 11829 // https://html.spec.whatwg.org/multipage/forms.html#category-listed 11830 // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled 11831 // * option elements in a disabled optgroup 11832 // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled 11833 // All such elements have a "form" property. 11834 if ( elem.parentNode && elem.disabled === false ) { 11835 11836 // Option elements defer to a parent optgroup if present 11837 if ( "label" in elem ) { 11838 if ( "label" in elem.parentNode ) { 11839 return elem.parentNode.disabled === disabled; 11840 } else { 11841 return elem.disabled === disabled; 11842 } 11843 } 11844 11845 // Support: IE 6 - 11 11846 // Use the isDisabled shortcut property to check for disabled fieldset ancestors 11847 return elem.isDisabled === disabled || 11848 11849 // Where there is no isDisabled, check manually 11850 /* jshint -W018 */ 11851 elem.isDisabled !== !disabled && 11852 disabledAncestor( elem ) === disabled; 11853 } 11854 11855 return elem.disabled === disabled; 11856 11857 // Try to winnow out elements that can't be disabled before trusting the disabled property. 11858 // Some victims get caught in our net (label, legend, menu, track), but it shouldn't 11859 // even exist on them, let alone have a boolean value. 11860 } else if ( "label" in elem ) { 11861 return elem.disabled === disabled; 11862 } 11863 11864 // Remaining elements are neither :enabled nor :disabled 11865 return false; 11866 }; 11867} 11868 11869/** 11870 * Returns a function to use in pseudos for positionals 11871 * @param {Function} fn 11872 */ 11873function createPositionalPseudo( fn ) { 11874 return markFunction(function( argument ) { 11875 argument = +argument; 11876 return markFunction(function( seed, matches ) { 11877 var j, 11878 matchIndexes = fn( [], seed.length, argument ), 11879 i = matchIndexes.length; 11880 11881 // Match elements found at the specified indexes 11882 while ( i-- ) { 11883 if ( seed[ (j = matchIndexes[i]) ] ) { 11884 seed[j] = !(matches[j] = seed[j]); 11885 } 11886 } 11887 }); 11888 }); 11889} 11890 11891/** 11892 * Checks a node for validity as a Sizzle context 11893 * @param {Element|Object=} context 11894 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value 11895 */ 11896function testContext( context ) { 11897 return context && typeof context.getElementsByTagName !== "undefined" && context; 11898} 11899 11900// Expose support vars for convenience 11901support = Sizzle.support = {}; 11902 11903/** 11904 * Detects XML nodes 11905 * @param {Element|Object} elem An element or a document 11906 * @returns {Boolean} True iff elem is a non-HTML XML node 11907 */ 11908isXML = Sizzle.isXML = function( elem ) { 11909 // documentElement is verified for cases where it doesn't yet exist 11910 // (such as loading iframes in IE - #4833) 11911 var documentElement = elem && (elem.ownerDocument || elem).documentElement; 11912 return documentElement ? documentElement.nodeName !== "HTML" : false; 11913}; 11914 11915/** 11916 * Sets document-related variables once based on the current document 11917 * @param {Element|Object} [doc] An element or document object to use to set the document 11918 * @returns {Object} Returns the current document 11919 */ 11920setDocument = Sizzle.setDocument = function( node ) { 11921 var hasCompare, subWindow, 11922 doc = node ? node.ownerDocument || node : preferredDoc; 11923 11924 // Return early if doc is invalid or already selected 11925 if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { 11926 return document; 11927 } 11928 11929 // Update global variables 11930 document = doc; 11931 docElem = document.documentElement; 11932 documentIsHTML = !isXML( document ); 11933 11934 // Support: IE 9-11, Edge 11935 // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) 11936 if ( preferredDoc !== document && 11937 (subWindow = document.defaultView) && subWindow.top !== subWindow ) { 11938 11939 // Support: IE 11, Edge 11940 if ( subWindow.addEventListener ) { 11941 subWindow.addEventListener( "unload", unloadHandler, false ); 11942 11943 // Support: IE 9 - 10 only 11944 } else if ( subWindow.attachEvent ) { 11945 subWindow.attachEvent( "onunload", unloadHandler ); 11946 } 11947 } 11948 11949 /* Attributes 11950 ---------------------------------------------------------------------- */ 11951 11952 // Support: IE<8 11953 // Verify that getAttribute really returns attributes and not properties 11954 // (excepting IE8 booleans) 11955 support.attributes = assert(function( el ) { 11956 el.className = "i"; 11957 return !el.getAttribute("className"); 11958 }); 11959 11960 /* getElement(s)By* 11961 ---------------------------------------------------------------------- */ 11962 11963 // Check if getElementsByTagName("*") returns only elements 11964 support.getElementsByTagName = assert(function( el ) { 11965 el.appendChild( document.createComment("") ); 11966 return !el.getElementsByTagName("*").length; 11967 }); 11968 11969 // Support: IE<9 11970 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); 11971 11972 // Support: IE<10 11973 // Check if getElementById returns elements by name 11974 // The broken getElementById methods don't pick up programmatically-set names, 11975 // so use a roundabout getElementsByName test 11976 support.getById = assert(function( el ) { 11977 docElem.appendChild( el ).id = expando; 11978 return !document.getElementsByName || !document.getElementsByName( expando ).length; 11979 }); 11980 11981 // ID filter and find 11982 if ( support.getById ) { 11983 Expr.filter["ID"] = function( id ) { 11984 var attrId = id.replace( runescape, funescape ); 11985 return function( elem ) { 11986 return elem.getAttribute("id") === attrId; 11987 }; 11988 }; 11989 Expr.find["ID"] = function( id, context ) { 11990 if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { 11991 var elem = context.getElementById( id ); 11992 return elem ? [ elem ] : []; 11993 } 11994 }; 11995 } else { 11996 Expr.filter["ID"] = function( id ) { 11997 var attrId = id.replace( runescape, funescape ); 11998 return function( elem ) { 11999 var node = typeof elem.getAttributeNode !== "undefined" && 12000 elem.getAttributeNode("id"); 12001 return node && node.value === attrId; 12002 }; 12003 }; 12004 12005 // Support: IE 6 - 7 only 12006 // getElementById is not reliable as a find shortcut 12007 Expr.find["ID"] = function( id, context ) { 12008 if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { 12009 var node, i, elems, 12010 elem = context.getElementById( id ); 12011 12012 if ( elem ) { 12013 12014 // Verify the id attribute 12015 node = elem.getAttributeNode("id"); 12016 if ( node && node.value === id ) { 12017 return [ elem ]; 12018 } 12019 12020 // Fall back on getElementsByName 12021 elems = context.getElementsByName( id ); 12022 i = 0; 12023 while ( (elem = elems[i++]) ) { 12024 node = elem.getAttributeNode("id"); 12025 if ( node && node.value === id ) { 12026 return [ elem ]; 12027 } 12028 } 12029 } 12030 12031 return []; 12032 } 12033 }; 12034 } 12035 12036 // Tag 12037 Expr.find["TAG"] = support.getElementsByTagName ? 12038 function( tag, context ) { 12039 if ( typeof context.getElementsByTagName !== "undefined" ) { 12040 return context.getElementsByTagName( tag ); 12041 12042 // DocumentFragment nodes don't have gEBTN 12043 } else if ( support.qsa ) { 12044 return context.querySelectorAll( tag ); 12045 } 12046 } : 12047 12048 function( tag, context ) { 12049 var elem, 12050 tmp = [], 12051 i = 0, 12052 // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too 12053 results = context.getElementsByTagName( tag ); 12054 12055 // Filter out possible comments 12056 if ( tag === "*" ) { 12057 while ( (elem = results[i++]) ) { 12058 if ( elem.nodeType === 1 ) { 12059 tmp.push( elem ); 12060 } 12061 } 12062 12063 return tmp; 12064 } 12065 return results; 12066 }; 12067 12068 // Class 12069 Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { 12070 if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { 12071 return context.getElementsByClassName( className ); 12072 } 12073 }; 12074 12075 /* QSA/matchesSelector 12076 ---------------------------------------------------------------------- */ 12077 12078 // QSA and matchesSelector support 12079 12080 // matchesSelector(:active) reports false when true (IE9/Opera 11.5) 12081 rbuggyMatches = []; 12082 12083 // qSa(:focus) reports false when true (Chrome 21) 12084 // We allow this because of a bug in IE8/9 that throws an error 12085 // whenever `document.activeElement` is accessed on an iframe 12086 // So, we allow :focus to pass through QSA all the time to avoid the IE error 12087 // See https://bugs.jquery.com/ticket/13378 12088 rbuggyQSA = []; 12089 12090 if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { 12091 // Build QSA regex 12092 // Regex strategy adopted from Diego Perini 12093 assert(function( el ) { 12094 // Select is set to empty string on purpose 12095 // This is to test IE's treatment of not explicitly 12096 // setting a boolean content attribute, 12097 // since its presence should be enough 12098 // https://bugs.jquery.com/ticket/12359 12099 docElem.appendChild( el ).innerHTML = "<a id='" + expando + "'></a>" + 12100 "<select id='" + expando + "-\r\\' msallowcapture=''>" + 12101 "<option selected=''></option></select>"; 12102 12103 // Support: IE8, Opera 11-12.16 12104 // Nothing should be selected when empty strings follow ^= or $= or *= 12105 // The test attribute must be unknown in Opera but "safe" for WinRT 12106 // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section 12107 if ( el.querySelectorAll("[msallowcapture^='']").length ) { 12108 rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); 12109 } 12110 12111 // Support: IE8 12112 // Boolean attributes and "value" are not treated correctly 12113 if ( !el.querySelectorAll("[selected]").length ) { 12114 rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); 12115 } 12116 12117 // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ 12118 if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { 12119 rbuggyQSA.push("~="); 12120 } 12121 12122 // Webkit/Opera - :checked should return selected option elements 12123 // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked 12124 // IE8 throws error here and will not see later tests 12125 if ( !el.querySelectorAll(":checked").length ) { 12126 rbuggyQSA.push(":checked"); 12127 } 12128 12129 // Support: Safari 8+, iOS 8+ 12130 // https://bugs.webkit.org/show_bug.cgi?id=136851 12131 // In-page `selector#id sibling-combinator selector` fails 12132 if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { 12133 rbuggyQSA.push(".#.+[+~]"); 12134 } 12135 }); 12136 12137 assert(function( el ) { 12138 el.innerHTML = "<a href='' disabled='disabled'></a>" + 12139 "<select disabled='disabled'><option/></select>"; 12140 12141 // Support: Windows 8 Native Apps 12142 // The type and name attributes are restricted during .innerHTML assignment 12143 var input = document.createElement("input"); 12144 input.setAttribute( "type", "hidden" ); 12145 el.appendChild( input ).setAttribute( "name", "D" ); 12146 12147 // Support: IE8 12148 // Enforce case-sensitivity of name attribute 12149 if ( el.querySelectorAll("[name=d]").length ) { 12150 rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); 12151 } 12152 12153 // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) 12154 // IE8 throws error here and will not see later tests 12155 if ( el.querySelectorAll(":enabled").length !== 2 ) { 12156 rbuggyQSA.push( ":enabled", ":disabled" ); 12157 } 12158 12159 // Support: IE9-11+ 12160 // IE's :disabled selector does not pick up the children of disabled fieldsets 12161 docElem.appendChild( el ).disabled = true; 12162 if ( el.querySelectorAll(":disabled").length !== 2 ) { 12163 rbuggyQSA.push( ":enabled", ":disabled" ); 12164 } 12165 12166 // Opera 10-11 does not throw on post-comma invalid pseudos 12167 el.querySelectorAll("*,:x"); 12168 rbuggyQSA.push(",.*:"); 12169 }); 12170 } 12171 12172 if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || 12173 docElem.webkitMatchesSelector || 12174 docElem.mozMatchesSelector || 12175 docElem.oMatchesSelector || 12176 docElem.msMatchesSelector) )) ) { 12177 12178 assert(function( el ) { 12179 // Check to see if it's possible to do matchesSelector 12180 // on a disconnected node (IE 9) 12181 support.disconnectedMatch = matches.call( el, "*" ); 12182 12183 // This should fail with an exception 12184 // Gecko does not error, returns false instead 12185 matches.call( el, "[s!='']:x" ); 12186 rbuggyMatches.push( "!=", pseudos ); 12187 }); 12188 } 12189 12190 rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); 12191 rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); 12192 12193 /* Contains 12194 ---------------------------------------------------------------------- */ 12195 hasCompare = rnative.test( docElem.compareDocumentPosition ); 12196 12197 // Element contains another 12198 // Purposefully self-exclusive 12199 // As in, an element does not contain itself 12200 contains = hasCompare || rnative.test( docElem.contains ) ? 12201 function( a, b ) { 12202 var adown = a.nodeType === 9 ? a.documentElement : a, 12203 bup = b && b.parentNode; 12204 return a === bup || !!( bup && bup.nodeType === 1 && ( 12205 adown.contains ? 12206 adown.contains( bup ) : 12207 a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 12208 )); 12209 } : 12210 function( a, b ) { 12211 if ( b ) { 12212 while ( (b = b.parentNode) ) { 12213 if ( b === a ) { 12214 return true; 12215 } 12216 } 12217 } 12218 return false; 12219 }; 12220 12221 /* Sorting 12222 ---------------------------------------------------------------------- */ 12223 12224 // Document order sorting 12225 sortOrder = hasCompare ? 12226 function( a, b ) { 12227 12228 // Flag for duplicate removal 12229 if ( a === b ) { 12230 hasDuplicate = true; 12231 return 0; 12232 } 12233 12234 // Sort on method existence if only one input has compareDocumentPosition 12235 var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; 12236 if ( compare ) { 12237 return compare; 12238 } 12239 12240 // Calculate position if both inputs belong to the same document 12241 compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? 12242 a.compareDocumentPosition( b ) : 12243 12244 // Otherwise we know they are disconnected 12245 1; 12246 12247 // Disconnected nodes 12248 if ( compare & 1 || 12249 (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { 12250 12251 // Choose the first element that is related to our preferred document 12252 if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { 12253 return -1; 12254 } 12255 if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { 12256 return 1; 12257 } 12258 12259 // Maintain original order 12260 return sortInput ? 12261 ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 12262 0; 12263 } 12264 12265 return compare & 4 ? -1 : 1; 12266 } : 12267 function( a, b ) { 12268 // Exit early if the nodes are identical 12269 if ( a === b ) { 12270 hasDuplicate = true; 12271 return 0; 12272 } 12273 12274 var cur, 12275 i = 0, 12276 aup = a.parentNode, 12277 bup = b.parentNode, 12278 ap = [ a ], 12279 bp = [ b ]; 12280 12281 // Parentless nodes are either documents or disconnected 12282 if ( !aup || !bup ) { 12283 return a === document ? -1 : 12284 b === document ? 1 : 12285 aup ? -1 : 12286 bup ? 1 : 12287 sortInput ? 12288 ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : 12289 0; 12290 12291 // If the nodes are siblings, we can do a quick check 12292 } else if ( aup === bup ) { 12293 return siblingCheck( a, b ); 12294 } 12295 12296 // Otherwise we need full lists of their ancestors for comparison 12297 cur = a; 12298 while ( (cur = cur.parentNode) ) { 12299 ap.unshift( cur ); 12300 } 12301 cur = b; 12302 while ( (cur = cur.parentNode) ) { 12303 bp.unshift( cur ); 12304 } 12305 12306 // Walk down the tree looking for a discrepancy 12307 while ( ap[i] === bp[i] ) { 12308 i++; 12309 } 12310 12311 return i ? 12312 // Do a sibling check if the nodes have a common ancestor 12313 siblingCheck( ap[i], bp[i] ) : 12314 12315 // Otherwise nodes in our document sort first 12316 ap[i] === preferredDoc ? -1 : 12317 bp[i] === preferredDoc ? 1 : 12318 0; 12319 }; 12320 12321 return document; 12322}; 12323 12324Sizzle.matches = function( expr, elements ) { 12325 return Sizzle( expr, null, null, elements ); 12326}; 12327 12328Sizzle.matchesSelector = function( elem, expr ) { 12329 // Set document vars if needed 12330 if ( ( elem.ownerDocument || elem ) !== document ) { 12331 setDocument( elem ); 12332 } 12333 12334 // Make sure that attribute selectors are quoted 12335 expr = expr.replace( rattributeQuotes, "='$1']" ); 12336 12337 if ( support.matchesSelector && documentIsHTML && 12338 !compilerCache[ expr + " " ] && 12339 ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && 12340 ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { 12341 12342 try { 12343 var ret = matches.call( elem, expr ); 12344 12345 // IE 9's matchesSelector returns false on disconnected nodes 12346 if ( ret || support.disconnectedMatch || 12347 // As well, disconnected nodes are said to be in a document 12348 // fragment in IE 9 12349 elem.document && elem.document.nodeType !== 11 ) { 12350 return ret; 12351 } 12352 } catch (e) {} 12353 } 12354 12355 return Sizzle( expr, document, null, [ elem ] ).length > 0; 12356}; 12357 12358Sizzle.contains = function( context, elem ) { 12359 // Set document vars if needed 12360 if ( ( context.ownerDocument || context ) !== document ) { 12361 setDocument( context ); 12362 } 12363 return contains( context, elem ); 12364}; 12365 12366Sizzle.attr = function( elem, name ) { 12367 // Set document vars if needed 12368 if ( ( elem.ownerDocument || elem ) !== document ) { 12369 setDocument( elem ); 12370 } 12371 12372 var fn = Expr.attrHandle[ name.toLowerCase() ], 12373 // Don't get fooled by Object.prototype properties (jQuery #13807) 12374 val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? 12375 fn( elem, name, !documentIsHTML ) : 12376 undefined; 12377 12378 return val !== undefined ? 12379 val : 12380 support.attributes || !documentIsHTML ? 12381 elem.getAttribute( name ) : 12382 (val = elem.getAttributeNode(name)) && val.specified ? 12383 val.value : 12384 null; 12385}; 12386 12387Sizzle.escape = function( sel ) { 12388 return (sel + "").replace( rcssescape, fcssescape ); 12389}; 12390 12391Sizzle.error = function( msg ) { 12392 throw new Error( "Syntax error, unrecognized expression: " + msg ); 12393}; 12394 12395/** 12396 * Document sorting and removing duplicates 12397 * @param {ArrayLike} results 12398 */ 12399Sizzle.uniqueSort = function( results ) { 12400 var elem, 12401 duplicates = [], 12402 j = 0, 12403 i = 0; 12404 12405 // Unless we *know* we can detect duplicates, assume their presence 12406 hasDuplicate = !support.detectDuplicates; 12407 sortInput = !support.sortStable && results.slice( 0 ); 12408 results.sort( sortOrder ); 12409 12410 if ( hasDuplicate ) { 12411 while ( (elem = results[i++]) ) { 12412 if ( elem === results[ i ] ) { 12413 j = duplicates.push( i ); 12414 } 12415 } 12416 while ( j-- ) { 12417 results.splice( duplicates[ j ], 1 ); 12418 } 12419 } 12420 12421 // Clear input after sorting to release objects 12422 // See https://github.com/jquery/sizzle/pull/225 12423 sortInput = null; 12424 12425 return results; 12426}; 12427 12428/** 12429 * Utility function for retrieving the text value of an array of DOM nodes 12430 * @param {Array|Element} elem 12431 */ 12432getText = Sizzle.getText = function( elem ) { 12433 var node, 12434 ret = "", 12435 i = 0, 12436 nodeType = elem.nodeType; 12437 12438 if ( !nodeType ) { 12439 // If no nodeType, this is expected to be an array 12440 while ( (node = elem[i++]) ) { 12441 // Do not traverse comment nodes 12442 ret += getText( node ); 12443 } 12444 } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { 12445 // Use textContent for elements 12446 // innerText usage removed for consistency of new lines (jQuery #11153) 12447 if ( typeof elem.textContent === "string" ) { 12448 return elem.textContent; 12449 } else { 12450 // Traverse its children 12451 for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { 12452 ret += getText( elem ); 12453 } 12454 } 12455 } else if ( nodeType === 3 || nodeType === 4 ) { 12456 return elem.nodeValue; 12457 } 12458 // Do not include comment or processing instruction nodes 12459 12460 return ret; 12461}; 12462 12463Expr = Sizzle.selectors = { 12464 12465 // Can be adjusted by the user 12466 cacheLength: 50, 12467 12468 createPseudo: markFunction, 12469 12470 match: matchExpr, 12471 12472 attrHandle: {}, 12473 12474 find: {}, 12475 12476 relative: { 12477 ">": { dir: "parentNode", first: true }, 12478 " ": { dir: "parentNode" }, 12479 "+": { dir: "previousSibling", first: true }, 12480 "~": { dir: "previousSibling" } 12481 }, 12482 12483 preFilter: { 12484 "ATTR": function( match ) { 12485 match[1] = match[1].replace( runescape, funescape ); 12486 12487 // Move the given value to match[3] whether quoted or unquoted 12488 match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); 12489 12490 if ( match[2] === "~=" ) { 12491 match[3] = " " + match[3] + " "; 12492 } 12493 12494 return match.slice( 0, 4 ); 12495 }, 12496 12497 "CHILD": function( match ) { 12498 /* matches from matchExpr["CHILD"] 12499 1 type (only|nth|...) 12500 2 what (child|of-type) 12501 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) 12502 4 xn-component of xn+y argument ([+-]?\d*n|) 12503 5 sign of xn-component 12504 6 x of xn-component 12505 7 sign of y-component 12506 8 y of y-component 12507 */ 12508 match[1] = match[1].toLowerCase(); 12509 12510 if ( match[1].slice( 0, 3 ) === "nth" ) { 12511 // nth-* requires argument 12512 if ( !match[3] ) { 12513 Sizzle.error( match[0] ); 12514 } 12515 12516 // numeric x and y parameters for Expr.filter.CHILD 12517 // remember that false/true cast respectively to 0/1 12518 match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); 12519 match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); 12520 12521 // other types prohibit arguments 12522 } else if ( match[3] ) { 12523 Sizzle.error( match[0] ); 12524 } 12525 12526 return match; 12527 }, 12528 12529 "PSEUDO": function( match ) { 12530 var excess, 12531 unquoted = !match[6] && match[2]; 12532 12533 if ( matchExpr["CHILD"].test( match[0] ) ) { 12534 return null; 12535 } 12536 12537 // Accept quoted arguments as-is 12538 if ( match[3] ) { 12539 match[2] = match[4] || match[5] || ""; 12540 12541 // Strip excess characters from unquoted arguments 12542 } else if ( unquoted && rpseudo.test( unquoted ) && 12543 // Get excess from tokenize (recursively) 12544 (excess = tokenize( unquoted, true )) && 12545 // advance to the next closing parenthesis 12546 (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { 12547 12548 // excess is a negative index 12549 match[0] = match[0].slice( 0, excess ); 12550 match[2] = unquoted.slice( 0, excess ); 12551 } 12552 12553 // Return only captures needed by the pseudo filter method (type and argument) 12554 return match.slice( 0, 3 ); 12555 } 12556 }, 12557 12558 filter: { 12559 12560 "TAG": function( nodeNameSelector ) { 12561 var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); 12562 return nodeNameSelector === "*" ? 12563 function() { return true; } : 12564 function( elem ) { 12565 return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; 12566 }; 12567 }, 12568 12569 "CLASS": function( className ) { 12570 var pattern = classCache[ className + " " ]; 12571 12572 return pattern || 12573 (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && 12574 classCache( className, function( elem ) { 12575 return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); 12576 }); 12577 }, 12578 12579 "ATTR": function( name, operator, check ) { 12580 return function( elem ) { 12581 var result = Sizzle.attr( elem, name ); 12582 12583 if ( result == null ) { 12584 return operator === "!="; 12585 } 12586 if ( !operator ) { 12587 return true; 12588 } 12589 12590 result += ""; 12591 12592 return operator === "=" ? result === check : 12593 operator === "!=" ? result !== check : 12594 operator === "^=" ? check && result.indexOf( check ) === 0 : 12595 operator === "*=" ? check && result.indexOf( check ) > -1 : 12596 operator === "$=" ? check && result.slice( -check.length ) === check : 12597 operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : 12598 operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : 12599 false; 12600 }; 12601 }, 12602 12603 "CHILD": function( type, what, argument, first, last ) { 12604 var simple = type.slice( 0, 3 ) !== "nth", 12605 forward = type.slice( -4 ) !== "last", 12606 ofType = what === "of-type"; 12607 12608 return first === 1 && last === 0 ? 12609 12610 // Shortcut for :nth-*(n) 12611 function( elem ) { 12612 return !!elem.parentNode; 12613 } : 12614 12615 function( elem, context, xml ) { 12616 var cache, uniqueCache, outerCache, node, nodeIndex, start, 12617 dir = simple !== forward ? "nextSibling" : "previousSibling", 12618 parent = elem.parentNode, 12619 name = ofType && elem.nodeName.toLowerCase(), 12620 useCache = !xml && !ofType, 12621 diff = false; 12622 12623 if ( parent ) { 12624 12625 // :(first|last|only)-(child|of-type) 12626 if ( simple ) { 12627 while ( dir ) { 12628 node = elem; 12629 while ( (node = node[ dir ]) ) { 12630 if ( ofType ? 12631 node.nodeName.toLowerCase() === name : 12632 node.nodeType === 1 ) { 12633 12634 return false; 12635 } 12636 } 12637 // Reverse direction for :only-* (if we haven't yet done so) 12638 start = dir = type === "only" && !start && "nextSibling"; 12639 } 12640 return true; 12641 } 12642 12643 start = [ forward ? parent.firstChild : parent.lastChild ]; 12644 12645 // non-xml :nth-child(...) stores cache data on `parent` 12646 if ( forward && useCache ) { 12647 12648 // Seek `elem` from a previously-cached index 12649 12650 // ...in a gzip-friendly way 12651 node = parent; 12652 outerCache = node[ expando ] || (node[ expando ] = {}); 12653 12654 // Support: IE <9 only 12655 // Defend against cloned attroperties (jQuery gh-1709) 12656 uniqueCache = outerCache[ node.uniqueID ] || 12657 (outerCache[ node.uniqueID ] = {}); 12658 12659 cache = uniqueCache[ type ] || []; 12660 nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; 12661 diff = nodeIndex && cache[ 2 ]; 12662 node = nodeIndex && parent.childNodes[ nodeIndex ]; 12663 12664 while ( (node = ++nodeIndex && node && node[ dir ] || 12665 12666 // Fallback to seeking `elem` from the start 12667 (diff = nodeIndex = 0) || start.pop()) ) { 12668 12669 // When found, cache indexes on `parent` and break 12670 if ( node.nodeType === 1 && ++diff && node === elem ) { 12671 uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; 12672 break; 12673 } 12674 } 12675 12676 } else { 12677 // Use previously-cached element index if available 12678 if ( useCache ) { 12679 // ...in a gzip-friendly way 12680 node = elem; 12681 outerCache = node[ expando ] || (node[ expando ] = {}); 12682 12683 // Support: IE <9 only 12684 // Defend against cloned attroperties (jQuery gh-1709) 12685 uniqueCache = outerCache[ node.uniqueID ] || 12686 (outerCache[ node.uniqueID ] = {}); 12687 12688 cache = uniqueCache[ type ] || []; 12689 nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; 12690 diff = nodeIndex; 12691 } 12692 12693 // xml :nth-child(...) 12694 // or :nth-last-child(...) or :nth(-last)?-of-type(...) 12695 if ( diff === false ) { 12696 // Use the same loop as above to seek `elem` from the start 12697 while ( (node = ++nodeIndex && node && node[ dir ] || 12698 (diff = nodeIndex = 0) || start.pop()) ) { 12699 12700 if ( ( ofType ? 12701 node.nodeName.toLowerCase() === name : 12702 node.nodeType === 1 ) && 12703 ++diff ) { 12704 12705 // Cache the index of each encountered element 12706 if ( useCache ) { 12707 outerCache = node[ expando ] || (node[ expando ] = {}); 12708 12709 // Support: IE <9 only 12710 // Defend against cloned attroperties (jQuery gh-1709) 12711 uniqueCache = outerCache[ node.uniqueID ] || 12712 (outerCache[ node.uniqueID ] = {}); 12713 12714 uniqueCache[ type ] = [ dirruns, diff ]; 12715 } 12716 12717 if ( node === elem ) { 12718 break; 12719 } 12720 } 12721 } 12722 } 12723 } 12724 12725 // Incorporate the offset, then check against cycle size 12726 diff -= last; 12727 return diff === first || ( diff % first === 0 && diff / first >= 0 ); 12728 } 12729 }; 12730 }, 12731 12732 "PSEUDO": function( pseudo, argument ) { 12733 // pseudo-class names are case-insensitive 12734 // http://www.w3.org/TR/selectors/#pseudo-classes 12735 // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters 12736 // Remember that setFilters inherits from pseudos 12737 var args, 12738 fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || 12739 Sizzle.error( "unsupported pseudo: " + pseudo ); 12740 12741 // The user may use createPseudo to indicate that 12742 // arguments are needed to create the filter function 12743 // just as Sizzle does 12744 if ( fn[ expando ] ) { 12745 return fn( argument ); 12746 } 12747 12748 // But maintain support for old signatures 12749 if ( fn.length > 1 ) { 12750 args = [ pseudo, pseudo, "", argument ]; 12751 return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? 12752 markFunction(function( seed, matches ) { 12753 var idx, 12754 matched = fn( seed, argument ), 12755 i = matched.length; 12756 while ( i-- ) { 12757 idx = indexOf( seed, matched[i] ); 12758 seed[ idx ] = !( matches[ idx ] = matched[i] ); 12759 } 12760 }) : 12761 function( elem ) { 12762 return fn( elem, 0, args ); 12763 }; 12764 } 12765 12766 return fn; 12767 } 12768 }, 12769 12770 pseudos: { 12771 // Potentially complex pseudos 12772 "not": markFunction(function( selector ) { 12773 // Trim the selector passed to compile 12774 // to avoid treating leading and trailing 12775 // spaces as combinators 12776 var input = [], 12777 results = [], 12778 matcher = compile( selector.replace( rtrim, "$1" ) ); 12779 12780 return matcher[ expando ] ? 12781 markFunction(function( seed, matches, context, xml ) { 12782 var elem, 12783 unmatched = matcher( seed, null, xml, [] ), 12784 i = seed.length; 12785 12786 // Match elements unmatched by `matcher` 12787 while ( i-- ) { 12788 if ( (elem = unmatched[i]) ) { 12789 seed[i] = !(matches[i] = elem); 12790 } 12791 } 12792 }) : 12793 function( elem, context, xml ) { 12794 input[0] = elem; 12795 matcher( input, null, xml, results ); 12796 // Don't keep the element (issue #299) 12797 input[0] = null; 12798 return !results.pop(); 12799 }; 12800 }), 12801 12802 "has": markFunction(function( selector ) { 12803 return function( elem ) { 12804 return Sizzle( selector, elem ).length > 0; 12805 }; 12806 }), 12807 12808 "contains": markFunction(function( text ) { 12809 text = text.replace( runescape, funescape ); 12810 return function( elem ) { 12811 return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; 12812 }; 12813 }), 12814 12815 // "Whether an element is represented by a :lang() selector 12816 // is based solely on the element's language value 12817 // being equal to the identifier C, 12818 // or beginning with the identifier C immediately followed by "-". 12819 // The matching of C against the element's language value is performed case-insensitively. 12820 // The identifier C does not have to be a valid language name." 12821 // http://www.w3.org/TR/selectors/#lang-pseudo 12822 "lang": markFunction( function( lang ) { 12823 // lang value must be a valid identifier 12824 if ( !ridentifier.test(lang || "") ) { 12825 Sizzle.error( "unsupported lang: " + lang ); 12826 } 12827 lang = lang.replace( runescape, funescape ).toLowerCase(); 12828 return function( elem ) { 12829 var elemLang; 12830 do { 12831 if ( (elemLang = documentIsHTML ? 12832 elem.lang : 12833 elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { 12834 12835 elemLang = elemLang.toLowerCase(); 12836 return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; 12837 } 12838 } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); 12839 return false; 12840 }; 12841 }), 12842 12843 // Miscellaneous 12844 "target": function( elem ) { 12845 var hash = window.location && window.location.hash; 12846 return hash && hash.slice( 1 ) === elem.id; 12847 }, 12848 12849 "root": function( elem ) { 12850 return elem === docElem; 12851 }, 12852 12853 "focus": function( elem ) { 12854 return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); 12855 }, 12856 12857 // Boolean properties 12858 "enabled": createDisabledPseudo( false ), 12859 "disabled": createDisabledPseudo( true ), 12860 12861 "checked": function( elem ) { 12862 // In CSS3, :checked should return both checked and selected elements 12863 // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked 12864 var nodeName = elem.nodeName.toLowerCase(); 12865 return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); 12866 }, 12867 12868 "selected": function( elem ) { 12869 // Accessing this property makes selected-by-default 12870 // options in Safari work properly 12871 if ( elem.parentNode ) { 12872 elem.parentNode.selectedIndex; 12873 } 12874 12875 return elem.selected === true; 12876 }, 12877 12878 // Contents 12879 "empty": function( elem ) { 12880 // http://www.w3.org/TR/selectors/#empty-pseudo 12881 // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), 12882 // but not by others (comment: 8; processing instruction: 7; etc.) 12883 // nodeType < 6 works because attributes (2) do not appear as children 12884 for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { 12885 if ( elem.nodeType < 6 ) { 12886 return false; 12887 } 12888 } 12889 return true; 12890 }, 12891 12892 "parent": function( elem ) { 12893 return !Expr.pseudos["empty"]( elem ); 12894 }, 12895 12896 // Element/input types 12897 "header": function( elem ) { 12898 return rheader.test( elem.nodeName ); 12899 }, 12900 12901 "input": function( elem ) { 12902 return rinputs.test( elem.nodeName ); 12903 }, 12904 12905 "button": function( elem ) { 12906 var name = elem.nodeName.toLowerCase(); 12907 return name === "input" && elem.type === "button" || name === "button"; 12908 }, 12909 12910 "text": function( elem ) { 12911 var attr; 12912 return elem.nodeName.toLowerCase() === "input" && 12913 elem.type === "text" && 12914 12915 // Support: IE<8 12916 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" 12917 ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); 12918 }, 12919 12920 // Position-in-collection 12921 "first": createPositionalPseudo(function() { 12922 return [ 0 ]; 12923 }), 12924 12925 "last": createPositionalPseudo(function( matchIndexes, length ) { 12926 return [ length - 1 ]; 12927 }), 12928 12929 "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { 12930 return [ argument < 0 ? argument + length : argument ]; 12931 }), 12932 12933 "even": createPositionalPseudo(function( matchIndexes, length ) { 12934 var i = 0; 12935 for ( ; i < length; i += 2 ) { 12936 matchIndexes.push( i ); 12937 } 12938 return matchIndexes; 12939 }), 12940 12941 "odd": createPositionalPseudo(function( matchIndexes, length ) { 12942 var i = 1; 12943 for ( ; i < length; i += 2 ) { 12944 matchIndexes.push( i ); 12945 } 12946 return matchIndexes; 12947 }), 12948 12949 "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { 12950 var i = argument < 0 ? argument + length : argument; 12951 for ( ; --i >= 0; ) { 12952 matchIndexes.push( i ); 12953 } 12954 return matchIndexes; 12955 }), 12956 12957 "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { 12958 var i = argument < 0 ? argument + length : argument; 12959 for ( ; ++i < length; ) { 12960 matchIndexes.push( i ); 12961 } 12962 return matchIndexes; 12963 }) 12964 } 12965}; 12966 12967Expr.pseudos["nth"] = Expr.pseudos["eq"]; 12968 12969// Add button/input type pseudos 12970for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { 12971 Expr.pseudos[ i ] = createInputPseudo( i ); 12972} 12973for ( i in { submit: true, reset: true } ) { 12974 Expr.pseudos[ i ] = createButtonPseudo( i ); 12975} 12976 12977// Easy API for creating new setFilters 12978function setFilters() {} 12979setFilters.prototype = Expr.filters = Expr.pseudos; 12980Expr.setFilters = new setFilters(); 12981 12982tokenize = Sizzle.tokenize = function( selector, parseOnly ) { 12983 var matched, match, tokens, type, 12984 soFar, groups, preFilters, 12985 cached = tokenCache[ selector + " " ]; 12986 12987 if ( cached ) { 12988 return parseOnly ? 0 : cached.slice( 0 ); 12989 } 12990 12991 soFar = selector; 12992 groups = []; 12993 preFilters = Expr.preFilter; 12994 12995 while ( soFar ) { 12996 12997 // Comma and first run 12998 if ( !matched || (match = rcomma.exec( soFar )) ) { 12999 if ( match ) { 13000 // Don't consume trailing commas as valid 13001 soFar = soFar.slice( match[0].length ) || soFar; 13002 } 13003 groups.push( (tokens = []) ); 13004 } 13005 13006 matched = false; 13007 13008 // Combinators 13009 if ( (match = rcombinators.exec( soFar )) ) { 13010 matched = match.shift(); 13011 tokens.push({ 13012 value: matched, 13013 // Cast descendant combinators to space 13014 type: match[0].replace( rtrim, " " ) 13015 }); 13016 soFar = soFar.slice( matched.length ); 13017 } 13018 13019 // Filters 13020 for ( type in Expr.filter ) { 13021 if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || 13022 (match = preFilters[ type ]( match ))) ) { 13023 matched = match.shift(); 13024 tokens.push({ 13025 value: matched, 13026 type: type, 13027 matches: match 13028 }); 13029 soFar = soFar.slice( matched.length ); 13030 } 13031 } 13032 13033 if ( !matched ) { 13034 break; 13035 } 13036 } 13037 13038 // Return the length of the invalid excess 13039 // if we're just parsing 13040 // Otherwise, throw an error or return tokens 13041 return parseOnly ? 13042 soFar.length : 13043 soFar ? 13044 Sizzle.error( selector ) : 13045 // Cache the tokens 13046 tokenCache( selector, groups ).slice( 0 ); 13047}; 13048 13049function toSelector( tokens ) { 13050 var i = 0, 13051 len = tokens.length, 13052 selector = ""; 13053 for ( ; i < len; i++ ) { 13054 selector += tokens[i].value; 13055 } 13056 return selector; 13057} 13058 13059function addCombinator( matcher, combinator, base ) { 13060 var dir = combinator.dir, 13061 skip = combinator.next, 13062 key = skip || dir, 13063 checkNonElements = base && key === "parentNode", 13064 doneName = done++; 13065 13066 return combinator.first ? 13067 // Check against closest ancestor/preceding element 13068 function( elem, context, xml ) { 13069 while ( (elem = elem[ dir ]) ) { 13070 if ( elem.nodeType === 1 || checkNonElements ) { 13071 return matcher( elem, context, xml ); 13072 } 13073 } 13074 return false; 13075 } : 13076 13077 // Check against all ancestor/preceding elements 13078 function( elem, context, xml ) { 13079 var oldCache, uniqueCache, outerCache, 13080 newCache = [ dirruns, doneName ]; 13081 13082 // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching 13083 if ( xml ) { 13084 while ( (elem = elem[ dir ]) ) { 13085 if ( elem.nodeType === 1 || checkNonElements ) { 13086 if ( matcher( elem, context, xml ) ) { 13087 return true; 13088 } 13089 } 13090 } 13091 } else { 13092 while ( (elem = elem[ dir ]) ) { 13093 if ( elem.nodeType === 1 || checkNonElements ) { 13094 outerCache = elem[ expando ] || (elem[ expando ] = {}); 13095 13096 // Support: IE <9 only 13097 // Defend against cloned attroperties (jQuery gh-1709) 13098 uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); 13099 13100 if ( skip && skip === elem.nodeName.toLowerCase() ) { 13101 elem = elem[ dir ] || elem; 13102 } else if ( (oldCache = uniqueCache[ key ]) && 13103 oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { 13104 13105 // Assign to newCache so results back-propagate to previous elements 13106 return (newCache[ 2 ] = oldCache[ 2 ]); 13107 } else { 13108 // Reuse newcache so results back-propagate to previous elements 13109 uniqueCache[ key ] = newCache; 13110 13111 // A match means we're done; a fail means we have to keep checking 13112 if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { 13113 return true; 13114 } 13115 } 13116 } 13117 } 13118 } 13119 return false; 13120 }; 13121} 13122 13123function elementMatcher( matchers ) { 13124 return matchers.length > 1 ? 13125 function( elem, context, xml ) { 13126 var i = matchers.length; 13127 while ( i-- ) { 13128 if ( !matchers[i]( elem, context, xml ) ) { 13129 return false; 13130 } 13131 } 13132 return true; 13133 } : 13134 matchers[0]; 13135} 13136 13137function multipleContexts( selector, contexts, results ) { 13138 var i = 0, 13139 len = contexts.length; 13140 for ( ; i < len; i++ ) { 13141 Sizzle( selector, contexts[i], results ); 13142 } 13143 return results; 13144} 13145 13146function condense( unmatched, map, filter, context, xml ) { 13147 var elem, 13148 newUnmatched = [], 13149 i = 0, 13150 len = unmatched.length, 13151 mapped = map != null; 13152 13153 for ( ; i < len; i++ ) { 13154 if ( (elem = unmatched[i]) ) { 13155 if ( !filter || filter( elem, context, xml ) ) { 13156 newUnmatched.push( elem ); 13157 if ( mapped ) { 13158 map.push( i ); 13159 } 13160 } 13161 } 13162 } 13163 13164 return newUnmatched; 13165} 13166 13167function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { 13168 if ( postFilter && !postFilter[ expando ] ) { 13169 postFilter = setMatcher( postFilter ); 13170 } 13171 if ( postFinder && !postFinder[ expando ] ) { 13172 postFinder = setMatcher( postFinder, postSelector ); 13173 } 13174 return markFunction(function( seed, results, context, xml ) { 13175 var temp, i, elem, 13176 preMap = [], 13177 postMap = [], 13178 preexisting = results.length, 13179 13180 // Get initial elements from seed or context 13181 elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), 13182 13183 // Prefilter to get matcher input, preserving a map for seed-results synchronization 13184 matcherIn = preFilter && ( seed || !selector ) ? 13185 condense( elems, preMap, preFilter, context, xml ) : 13186 elems, 13187 13188 matcherOut = matcher ? 13189 // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, 13190 postFinder || ( seed ? preFilter : preexisting || postFilter ) ? 13191 13192 // ...intermediate processing is necessary 13193 [] : 13194 13195 // ...otherwise use results directly 13196 results : 13197 matcherIn; 13198 13199 // Find primary matches 13200 if ( matcher ) { 13201 matcher( matcherIn, matcherOut, context, xml ); 13202 } 13203 13204 // Apply postFilter 13205 if ( postFilter ) { 13206 temp = condense( matcherOut, postMap ); 13207 postFilter( temp, [], context, xml ); 13208 13209 // Un-match failing elements by moving them back to matcherIn 13210 i = temp.length; 13211 while ( i-- ) { 13212 if ( (elem = temp[i]) ) { 13213 matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); 13214 } 13215 } 13216 } 13217 13218 if ( seed ) { 13219 if ( postFinder || preFilter ) { 13220 if ( postFinder ) { 13221 // Get the final matcherOut by condensing this intermediate into postFinder contexts 13222 temp = []; 13223 i = matcherOut.length; 13224 while ( i-- ) { 13225 if ( (elem = matcherOut[i]) ) { 13226 // Restore matcherIn since elem is not yet a final match 13227 temp.push( (matcherIn[i] = elem) ); 13228 } 13229 } 13230 postFinder( null, (matcherOut = []), temp, xml ); 13231 } 13232 13233 // Move matched elements from seed to results to keep them synchronized 13234 i = matcherOut.length; 13235 while ( i-- ) { 13236 if ( (elem = matcherOut[i]) && 13237 (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { 13238 13239 seed[temp] = !(results[temp] = elem); 13240 } 13241 } 13242 } 13243 13244 // Add elements to results, through postFinder if defined 13245 } else { 13246 matcherOut = condense( 13247 matcherOut === results ? 13248 matcherOut.splice( preexisting, matcherOut.length ) : 13249 matcherOut 13250 ); 13251 if ( postFinder ) { 13252 postFinder( null, results, matcherOut, xml ); 13253 } else { 13254 push.apply( results, matcherOut ); 13255 } 13256 } 13257 }); 13258} 13259 13260function matcherFromTokens( tokens ) { 13261 var checkContext, matcher, j, 13262 len = tokens.length, 13263 leadingRelative = Expr.relative[ tokens[0].type ], 13264 implicitRelative = leadingRelative || Expr.relative[" "], 13265 i = leadingRelative ? 1 : 0, 13266 13267 // The foundational matcher ensures that elements are reachable from top-level context(s) 13268 matchContext = addCombinator( function( elem ) { 13269 return elem === checkContext; 13270 }, implicitRelative, true ), 13271 matchAnyContext = addCombinator( function( elem ) { 13272 return indexOf( checkContext, elem ) > -1; 13273 }, implicitRelative, true ), 13274 matchers = [ function( elem, context, xml ) { 13275 var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( 13276 (checkContext = context).nodeType ? 13277 matchContext( elem, context, xml ) : 13278 matchAnyContext( elem, context, xml ) ); 13279 // Avoid hanging onto element (issue #299) 13280 checkContext = null; 13281 return ret; 13282 } ]; 13283 13284 for ( ; i < len; i++ ) { 13285 if ( (matcher = Expr.relative[ tokens[i].type ]) ) { 13286 matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; 13287 } else { 13288 matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); 13289 13290 // Return special upon seeing a positional matcher 13291 if ( matcher[ expando ] ) { 13292 // Find the next relative operator (if any) for proper handling 13293 j = ++i; 13294 for ( ; j < len; j++ ) { 13295 if ( Expr.relative[ tokens[j].type ] ) { 13296 break; 13297 } 13298 } 13299 return setMatcher( 13300 i > 1 && elementMatcher( matchers ), 13301 i > 1 && toSelector( 13302 // If the preceding token was a descendant combinator, insert an implicit any-element `*` 13303 tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) 13304 ).replace( rtrim, "$1" ), 13305 matcher, 13306 i < j && matcherFromTokens( tokens.slice( i, j ) ), 13307 j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), 13308 j < len && toSelector( tokens ) 13309 ); 13310 } 13311 matchers.push( matcher ); 13312 } 13313 } 13314 13315 return elementMatcher( matchers ); 13316} 13317 13318function matcherFromGroupMatchers( elementMatchers, setMatchers ) { 13319 var bySet = setMatchers.length > 0, 13320 byElement = elementMatchers.length > 0, 13321 superMatcher = function( seed, context, xml, results, outermost ) { 13322 var elem, j, matcher, 13323 matchedCount = 0, 13324 i = "0", 13325 unmatched = seed && [], 13326 setMatched = [], 13327 contextBackup = outermostContext, 13328 // We must always have either seed elements or outermost context 13329 elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), 13330 // Use integer dirruns iff this is the outermost matcher 13331 dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), 13332 len = elems.length; 13333 13334 if ( outermost ) { 13335 outermostContext = context === document || context || outermost; 13336 } 13337 13338 // Add elements passing elementMatchers directly to results 13339 // Support: IE<9, Safari 13340 // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching elements by id 13341 for ( ; i !== len && (elem = elems[i]) != null; i++ ) { 13342 if ( byElement && elem ) { 13343 j = 0; 13344 if ( !context && elem.ownerDocument !== document ) { 13345 setDocument( elem ); 13346 xml = !documentIsHTML; 13347 } 13348 while ( (matcher = elementMatchers[j++]) ) { 13349 if ( matcher( elem, context || document, xml) ) { 13350 results.push( elem ); 13351 break; 13352 } 13353 } 13354 if ( outermost ) { 13355 dirruns = dirrunsUnique; 13356 } 13357 } 13358 13359 // Track unmatched elements for set filters 13360 if ( bySet ) { 13361 // They will have gone through all possible matchers 13362 if ( (elem = !matcher && elem) ) { 13363 matchedCount--; 13364 } 13365 13366 // Lengthen the array for every element, matched or not 13367 if ( seed ) { 13368 unmatched.push( elem ); 13369 } 13370 } 13371 } 13372 13373 // `i` is now the count of elements visited above, and adding it to `matchedCount` 13374 // makes the latter nonnegative. 13375 matchedCount += i; 13376 13377 // Apply set filters to unmatched elements 13378 // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` 13379 // equals `i`), unless we didn't visit _any_ elements in the above loop because we have 13380 // no element matchers and no seed. 13381 // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that 13382 // case, which will result in a "00" `matchedCount` that differs from `i` but is also 13383 // numerically zero. 13384 if ( bySet && i !== matchedCount ) { 13385 j = 0; 13386 while ( (matcher = setMatchers[j++]) ) { 13387 matcher( unmatched, setMatched, context, xml ); 13388 } 13389 13390 if ( seed ) { 13391 // Reintegrate element matches to eliminate the need for sorting 13392 if ( matchedCount > 0 ) { 13393 while ( i-- ) { 13394 if ( !(unmatched[i] || setMatched[i]) ) { 13395 setMatched[i] = pop.call( results ); 13396 } 13397 } 13398 } 13399 13400 // Discard index placeholder values to get only actual matches 13401 setMatched = condense( setMatched ); 13402 } 13403 13404 // Add matches to results 13405 push.apply( results, setMatched ); 13406 13407 // Seedless set matches succeeding multiple successful matchers stipulate sorting 13408 if ( outermost && !seed && setMatched.length > 0 && 13409 ( matchedCount + setMatchers.length ) > 1 ) { 13410 13411 Sizzle.uniqueSort( results ); 13412 } 13413 } 13414 13415 // Override manipulation of globals by nested matchers 13416 if ( outermost ) { 13417 dirruns = dirrunsUnique; 13418 outermostContext = contextBackup; 13419 } 13420 13421 return unmatched; 13422 }; 13423 13424 return bySet ? 13425 markFunction( superMatcher ) : 13426 superMatcher; 13427} 13428 13429compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { 13430 var i, 13431 setMatchers = [], 13432 elementMatchers = [], 13433 cached = compilerCache[ selector + " " ]; 13434 13435 if ( !cached ) { 13436 // Generate a function of recursive functions that can be used to check each element 13437 if ( !match ) { 13438 match = tokenize( selector ); 13439 } 13440 i = match.length; 13441 while ( i-- ) { 13442 cached = matcherFromTokens( match[i] ); 13443 if ( cached[ expando ] ) { 13444 setMatchers.push( cached ); 13445 } else { 13446 elementMatchers.push( cached ); 13447 } 13448 } 13449 13450 // Cache the compiled function 13451 cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); 13452 13453 // Save selector and tokenization 13454 cached.selector = selector; 13455 } 13456 return cached; 13457}; 13458 13459/** 13460 * A low-level selection function that works with Sizzle's compiled 13461 * selector functions 13462 * @param {String|Function} selector A selector or a pre-compiled 13463 * selector function built with Sizzle.compile 13464 * @param {Element} context 13465 * @param {Array} [results] 13466 * @param {Array} [seed] A set of elements to match against 13467 */ 13468select = Sizzle.select = function( selector, context, results, seed ) { 13469 var i, tokens, token, type, find, 13470 compiled = typeof selector === "function" && selector, 13471 match = !seed && tokenize( (selector = compiled.selector || selector) ); 13472 13473 results = results || []; 13474 13475 // Try to minimize operations if there is only one selector in the list and no seed 13476 // (the latter of which guarantees us context) 13477 if ( match.length === 1 ) { 13478 13479 // Reduce context if the leading compound selector is an ID 13480 tokens = match[0] = match[0].slice( 0 ); 13481 if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && 13482 context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { 13483 13484 context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; 13485 if ( !context ) { 13486 return results; 13487 13488 // Precompiled matchers will still verify ancestry, so step up a level 13489 } else if ( compiled ) { 13490 context = context.parentNode; 13491 } 13492 13493 selector = selector.slice( tokens.shift().value.length ); 13494 } 13495 13496 // Fetch a seed set for right-to-left matching 13497 i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; 13498 while ( i-- ) { 13499 token = tokens[i]; 13500 13501 // Abort if we hit a combinator 13502 if ( Expr.relative[ (type = token.type) ] ) { 13503 break; 13504 } 13505 if ( (find = Expr.find[ type ]) ) { 13506 // Search, expanding context for leading sibling combinators 13507 if ( (seed = find( 13508 token.matches[0].replace( runescape, funescape ), 13509 rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context 13510 )) ) { 13511 13512 // If seed is empty or no tokens remain, we can return early 13513 tokens.splice( i, 1 ); 13514 selector = seed.length && toSelector( tokens ); 13515 if ( !selector ) { 13516 push.apply( results, seed ); 13517 return results; 13518 } 13519 13520 break; 13521 } 13522 } 13523 } 13524 } 13525 13526 // Compile and execute a filtering function if one is not provided 13527 // Provide `match` to avoid retokenization if we modified the selector above 13528 ( compiled || compile( selector, match ) )( 13529 seed, 13530 context, 13531 !documentIsHTML, 13532 results, 13533 !context || rsibling.test( selector ) && testContext( context.parentNode ) || context 13534 ); 13535 return results; 13536}; 13537 13538// One-time assignments 13539 13540// Sort stability 13541support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; 13542 13543// Support: Chrome 14-35+ 13544// Always assume duplicates if they aren't passed to the comparison function 13545support.detectDuplicates = !!hasDuplicate; 13546 13547// Initialize against the default document 13548setDocument(); 13549 13550// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) 13551// Detached nodes confoundingly follow *each other* 13552support.sortDetached = assert(function( el ) { 13553 // Should return 1, but returns 4 (following) 13554 return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; 13555}); 13556 13557// Support: IE<8 13558// Prevent attribute/property "interpolation" 13559// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx 13560if ( !assert(function( el ) { 13561 el.innerHTML = "<a href='#'></a>"; 13562 return el.firstChild.getAttribute("href") === "#" ; 13563}) ) { 13564 addHandle( "type|href|height|width", function( elem, name, isXML ) { 13565 if ( !isXML ) { 13566 return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); 13567 } 13568 }); 13569} 13570 13571// Support: IE<9 13572// Use defaultValue in place of getAttribute("value") 13573if ( !support.attributes || !assert(function( el ) { 13574 el.innerHTML = "<input/>"; 13575 el.firstChild.setAttribute( "value", "" ); 13576 return el.firstChild.getAttribute( "value" ) === ""; 13577}) ) { 13578 addHandle( "value", function( elem, name, isXML ) { 13579 if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { 13580 return elem.defaultValue; 13581 } 13582 }); 13583} 13584 13585// Support: IE<9 13586// Use getAttributeNode to fetch booleans when getAttribute lies 13587if ( !assert(function( el ) { 13588 return el.getAttribute("disabled") == null; 13589}) ) { 13590 addHandle( booleans, function( elem, name, isXML ) { 13591 var val; 13592 if ( !isXML ) { 13593 return elem[ name ] === true ? name.toLowerCase() : 13594 (val = elem.getAttributeNode( name )) && val.specified ? 13595 val.value : 13596 null; 13597 } 13598 }); 13599} 13600 13601return Sizzle; 13602 13603})( window ); 13604 13605 13606 13607jQuery.find = Sizzle; 13608jQuery.expr = Sizzle.selectors; 13609 13610// Deprecated 13611jQuery.expr[ ":" ] = jQuery.expr.pseudos; 13612jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; 13613jQuery.text = Sizzle.getText; 13614jQuery.isXMLDoc = Sizzle.isXML; 13615jQuery.contains = Sizzle.contains; 13616jQuery.escapeSelector = Sizzle.escape; 13617 13618 13619 13620 13621var dir = function( elem, dir, until ) { 13622 var matched = [], 13623 truncate = until !== undefined; 13624 13625 while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { 13626 if ( elem.nodeType === 1 ) { 13627 if ( truncate && jQuery( elem ).is( until ) ) { 13628 break; 13629 } 13630 matched.push( elem ); 13631 } 13632 } 13633 return matched; 13634}; 13635 13636 13637var siblings = function( n, elem ) { 13638 var matched = []; 13639 13640 for ( ; n; n = n.nextSibling ) { 13641 if ( n.nodeType === 1 && n !== elem ) { 13642 matched.push( n ); 13643 } 13644 } 13645 13646 return matched; 13647}; 13648 13649 13650var rneedsContext = jQuery.expr.match.needsContext; 13651 13652 13653 13654function nodeName( elem, name ) { 13655 13656 return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); 13657 13658}; 13659var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); 13660 13661 13662 13663// Implement the identical functionality for filter and not 13664function winnow( elements, qualifier, not ) { 13665 if ( isFunction( qualifier ) ) { 13666 return jQuery.grep( elements, function( elem, i ) { 13667 return !!qualifier.call( elem, i, elem ) !== not; 13668 } ); 13669 } 13670 13671 // Single element 13672 if ( qualifier.nodeType ) { 13673 return jQuery.grep( elements, function( elem ) { 13674 return ( elem === qualifier ) !== not; 13675 } ); 13676 } 13677 13678 // Arraylike of elements (jQuery, arguments, Array) 13679 if ( typeof qualifier !== "string" ) { 13680 return jQuery.grep( elements, function( elem ) { 13681 return ( indexOf.call( qualifier, elem ) > -1 ) !== not; 13682 } ); 13683 } 13684 13685 // Filtered directly for both simple and complex selectors 13686 return jQuery.filter( qualifier, elements, not ); 13687} 13688 13689jQuery.filter = function( expr, elems, not ) { 13690 var elem = elems[ 0 ]; 13691 13692 if ( not ) { 13693 expr = ":not(" + expr + ")"; 13694 } 13695 13696 if ( elems.length === 1 && elem.nodeType === 1 ) { 13697 return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; 13698 } 13699 13700 return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { 13701 return elem.nodeType === 1; 13702 } ) ); 13703}; 13704 13705jQuery.fn.extend( { 13706 find: function( selector ) { 13707 var i, ret, 13708 len = this.length, 13709 self = this; 13710 13711 if ( typeof selector !== "string" ) { 13712 return this.pushStack( jQuery( selector ).filter( function() { 13713 for ( i = 0; i < len; i++ ) { 13714 if ( jQuery.contains( self[ i ], this ) ) { 13715 return true; 13716 } 13717 } 13718 } ) ); 13719 } 13720 13721 ret = this.pushStack( [] ); 13722 13723 for ( i = 0; i < len; i++ ) { 13724 jQuery.find( selector, self[ i ], ret ); 13725 } 13726 13727 return len > 1 ? jQuery.uniqueSort( ret ) : ret; 13728 }, 13729 filter: function( selector ) { 13730 return this.pushStack( winnow( this, selector || [], false ) ); 13731 }, 13732 not: function( selector ) { 13733 return this.pushStack( winnow( this, selector || [], true ) ); 13734 }, 13735 is: function( selector ) { 13736 return !!winnow( 13737 this, 13738 13739 // If this is a positional/relative selector, check membership in the returned set 13740 // so $("p:first").is("p:last") won't return true for a doc with two "p". 13741 typeof selector === "string" && rneedsContext.test( selector ) ? 13742 jQuery( selector ) : 13743 selector || [], 13744 false 13745 ).length; 13746 } 13747} ); 13748 13749 13750// Initialize a jQuery object 13751 13752 13753// A central reference to the root jQuery(document) 13754var rootjQuery, 13755 13756 // A simple way to check for HTML strings 13757 // Prioritize #id over <tag> to avoid XSS via location.hash (#9521) 13758 // Strict HTML recognition (#11290: must start with <) 13759 // Shortcut simple #id case for speed 13760 rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, 13761 13762 init = jQuery.fn.init = function( selector, context, root ) { 13763 var match, elem; 13764 13765 // HANDLE: $(""), $(null), $(undefined), $(false) 13766 if ( !selector ) { 13767 return this; 13768 } 13769 13770 // Method init() accepts an alternate rootjQuery 13771 // so migrate can support jQuery.sub (gh-2101) 13772 root = root || rootjQuery; 13773 13774 // Handle HTML strings 13775 if ( typeof selector === "string" ) { 13776 if ( selector[ 0 ] === "<" && 13777 selector[ selector.length - 1 ] === ">" && 13778 selector.length >= 3 ) { 13779 13780 // Assume that strings that start and end with <> are HTML and skip the regex check 13781 match = [ null, selector, null ]; 13782 13783 } else { 13784 match = rquickExpr.exec( selector ); 13785 } 13786 13787 // Match html or make sure no context is specified for #id 13788 if ( match && ( match[ 1 ] || !context ) ) { 13789 13790 // HANDLE: $(html) -> $(array) 13791 if ( match[ 1 ] ) { 13792 context = context instanceof jQuery ? context[ 0 ] : context; 13793 13794 // Option to run scripts is true for back-compat 13795 // Intentionally let the error be thrown if parseHTML is not present 13796 jQuery.merge( this, jQuery.parseHTML( 13797 match[ 1 ], 13798 context && context.nodeType ? context.ownerDocument || context : document, 13799 true 13800 ) ); 13801 13802 // HANDLE: $(html, props) 13803 if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { 13804 for ( match in context ) { 13805 13806 // Properties of context are called as methods if possible 13807 if ( isFunction( this[ match ] ) ) { 13808 this[ match ]( context[ match ] ); 13809 13810 // ...and otherwise set as attributes 13811 } else { 13812 this.attr( match, context[ match ] ); 13813 } 13814 } 13815 } 13816 13817 return this; 13818 13819 // HANDLE: $(#id) 13820 } else { 13821 elem = document.getElementById( match[ 2 ] ); 13822 13823 if ( elem ) { 13824 13825 // Inject the element directly into the jQuery object 13826 this[ 0 ] = elem; 13827 this.length = 1; 13828 } 13829 return this; 13830 } 13831 13832 // HANDLE: $(expr, $(...)) 13833 } else if ( !context || context.jquery ) { 13834 return ( context || root ).find( selector ); 13835 13836 // HANDLE: $(expr, context) 13837 // (which is just equivalent to: $(context).find(expr) 13838 } else { 13839 return this.constructor( context ).find( selector ); 13840 } 13841 13842 // HANDLE: $(DOMElement) 13843 } else if ( selector.nodeType ) { 13844 this[ 0 ] = selector; 13845 this.length = 1; 13846 return this; 13847 13848 // HANDLE: $(function) 13849 // Shortcut for document ready 13850 } else if ( isFunction( selector ) ) { 13851 return root.ready !== undefined ? 13852 root.ready( selector ) : 13853 13854 // Execute immediately if ready is not present 13855 selector( jQuery ); 13856 } 13857 13858 return jQuery.makeArray( selector, this ); 13859 }; 13860 13861// Give the init function the jQuery prototype for later instantiation 13862init.prototype = jQuery.fn; 13863 13864// Initialize central reference 13865rootjQuery = jQuery( document ); 13866 13867 13868var rparentsprev = /^(?:parents|prev(?:Until|All))/, 13869 13870 // Methods guaranteed to produce a unique set when starting from a unique set 13871 guaranteedUnique = { 13872 children: true, 13873 contents: true, 13874 next: true, 13875 prev: true 13876 }; 13877 13878jQuery.fn.extend( { 13879 has: function( target ) { 13880 var targets = jQuery( target, this ), 13881 l = targets.length; 13882 13883 return this.filter( function() { 13884 var i = 0; 13885 for ( ; i < l; i++ ) { 13886 if ( jQuery.contains( this, targets[ i ] ) ) { 13887 return true; 13888 } 13889 } 13890 } ); 13891 }, 13892 13893 closest: function( selectors, context ) { 13894 var cur, 13895 i = 0, 13896 l = this.length, 13897 matched = [], 13898 targets = typeof selectors !== "string" && jQuery( selectors ); 13899 13900 // Positional selectors never match, since there's no _selection_ context 13901 if ( !rneedsContext.test( selectors ) ) { 13902 for ( ; i < l; i++ ) { 13903 for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { 13904 13905 // Always skip document fragments 13906 if ( cur.nodeType < 11 && ( targets ? 13907 targets.index( cur ) > -1 : 13908 13909 // Don't pass non-elements to Sizzle 13910 cur.nodeType === 1 && 13911 jQuery.find.matchesSelector( cur, selectors ) ) ) { 13912 13913 matched.push( cur ); 13914 break; 13915 } 13916 } 13917 } 13918 } 13919 13920 return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); 13921 }, 13922 13923 // Determine the position of an element within the set 13924 index: function( elem ) { 13925 13926 // No argument, return index in parent 13927 if ( !elem ) { 13928 return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; 13929 } 13930 13931 // Index in selector 13932 if ( typeof elem === "string" ) { 13933 return indexOf.call( jQuery( elem ), this[ 0 ] ); 13934 } 13935 13936 // Locate the position of the desired element 13937 return indexOf.call( this, 13938 13939 // If it receives a jQuery object, the first element is used 13940 elem.jquery ? elem[ 0 ] : elem 13941 ); 13942 }, 13943 13944 add: function( selector, context ) { 13945 return this.pushStack( 13946 jQuery.uniqueSort( 13947 jQuery.merge( this.get(), jQuery( selector, context ) ) 13948 ) 13949 ); 13950 }, 13951 13952 addBack: function( selector ) { 13953 return this.add( selector == null ? 13954 this.prevObject : this.prevObject.filter( selector ) 13955 ); 13956 } 13957} ); 13958 13959function sibling( cur, dir ) { 13960 while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} 13961 return cur; 13962} 13963 13964jQuery.each( { 13965 parent: function( elem ) { 13966 var parent = elem.parentNode; 13967 return parent && parent.nodeType !== 11 ? parent : null; 13968 }, 13969 parents: function( elem ) { 13970 return dir( elem, "parentNode" ); 13971 }, 13972 parentsUntil: function( elem, i, until ) { 13973 return dir( elem, "parentNode", until ); 13974 }, 13975 next: function( elem ) { 13976 return sibling( elem, "nextSibling" ); 13977 }, 13978 prev: function( elem ) { 13979 return sibling( elem, "previousSibling" ); 13980 }, 13981 nextAll: function( elem ) { 13982 return dir( elem, "nextSibling" ); 13983 }, 13984 prevAll: function( elem ) { 13985 return dir( elem, "previousSibling" ); 13986 }, 13987 nextUntil: function( elem, i, until ) { 13988 return dir( elem, "nextSibling", until ); 13989 }, 13990 prevUntil: function( elem, i, until ) { 13991 return dir( elem, "previousSibling", until ); 13992 }, 13993 siblings: function( elem ) { 13994 return siblings( ( elem.parentNode || {} ).firstChild, elem ); 13995 }, 13996 children: function( elem ) { 13997 return siblings( elem.firstChild ); 13998 }, 13999 contents: function( elem ) { 14000 if ( nodeName( elem, "iframe" ) ) { 14001 return elem.contentDocument; 14002 } 14003 14004 // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only 14005 // Treat the template element as a regular one in browsers that 14006 // don't support it. 14007 if ( nodeName( elem, "template" ) ) { 14008 elem = elem.content || elem; 14009 } 14010 14011 return jQuery.merge( [], elem.childNodes ); 14012 } 14013}, function( name, fn ) { 14014 jQuery.fn[ name ] = function( until, selector ) { 14015 var matched = jQuery.map( this, fn, until ); 14016 14017 if ( name.slice( -5 ) !== "Until" ) { 14018 selector = until; 14019 } 14020 14021 if ( selector && typeof selector === "string" ) { 14022 matched = jQuery.filter( selector, matched ); 14023 } 14024 14025 if ( this.length > 1 ) { 14026 14027 // Remove duplicates 14028 if ( !guaranteedUnique[ name ] ) { 14029 jQuery.uniqueSort( matched ); 14030 } 14031 14032 // Reverse order for parents* and prev-derivatives 14033 if ( rparentsprev.test( name ) ) { 14034 matched.reverse(); 14035 } 14036 } 14037 14038 return this.pushStack( matched ); 14039 }; 14040} ); 14041var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); 14042 14043 14044 14045// Convert String-formatted options into Object-formatted ones 14046function createOptions( options ) { 14047 var object = {}; 14048 jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { 14049 object[ flag ] = true; 14050 } ); 14051 return object; 14052} 14053 14054/* 14055 * Create a callback list using the following parameters: 14056 * 14057 * options: an optional list of space-separated options that will change how 14058 * the callback list behaves or a more traditional option object 14059 * 14060 * By default a callback list will act like an event callback list and can be 14061 * "fired" multiple times. 14062 * 14063 * Possible options: 14064 * 14065 * once: will ensure the callback list can only be fired once (like a Deferred) 14066 * 14067 * memory: will keep track of previous values and will call any callback added 14068 * after the list has been fired right away with the latest "memorized" 14069 * values (like a Deferred) 14070 * 14071 * unique: will ensure a callback can only be added once (no duplicate in the list) 14072 * 14073 * stopOnFalse: interrupt callings when a callback returns false 14074 * 14075 */ 14076jQuery.Callbacks = function( options ) { 14077 14078 // Convert options from String-formatted to Object-formatted if needed 14079 // (we check in cache first) 14080 options = typeof options === "string" ? 14081 createOptions( options ) : 14082 jQuery.extend( {}, options ); 14083 14084 var // Flag to know if list is currently firing 14085 firing, 14086 14087 // Last fire value for non-forgettable lists 14088 memory, 14089 14090 // Flag to know if list was already fired 14091 fired, 14092 14093 // Flag to prevent firing 14094 locked, 14095 14096 // Actual callback list 14097 list = [], 14098 14099 // Queue of execution data for repeatable lists 14100 queue = [], 14101 14102 // Index of currently firing callback (modified by add/remove as needed) 14103 firingIndex = -1, 14104 14105 // Fire callbacks 14106 fire = function() { 14107 14108 // Enforce single-firing 14109 locked = locked || options.once; 14110 14111 // Execute callbacks for all pending executions, 14112 // respecting firingIndex overrides and runtime changes 14113 fired = firing = true; 14114 for ( ; queue.length; firingIndex = -1 ) { 14115 memory = queue.shift(); 14116 while ( ++firingIndex < list.length ) { 14117 14118 // Run callback and check for early termination 14119 if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && 14120 options.stopOnFalse ) { 14121 14122 // Jump to end and forget the data so .add doesn't re-fire 14123 firingIndex = list.length; 14124 memory = false; 14125 } 14126 } 14127 } 14128 14129 // Forget the data if we're done with it 14130 if ( !options.memory ) { 14131 memory = false; 14132 } 14133 14134 firing = false; 14135 14136 // Clean up if we're done firing for good 14137 if ( locked ) { 14138 14139 // Keep an empty list if we have data for future add calls 14140 if ( memory ) { 14141 list = []; 14142 14143 // Otherwise, this object is spent 14144 } else { 14145 list = ""; 14146 } 14147 } 14148 }, 14149 14150 // Actual Callbacks object 14151 self = { 14152 14153 // Add a callback or a collection of callbacks to the list 14154 add: function() { 14155 if ( list ) { 14156 14157 // If we have memory from a past run, we should fire after adding 14158 if ( memory && !firing ) { 14159 firingIndex = list.length - 1; 14160 queue.push( memory ); 14161 } 14162 14163 ( function add( args ) { 14164 jQuery.each( args, function( _, arg ) { 14165 if ( isFunction( arg ) ) { 14166 if ( !options.unique || !self.has( arg ) ) { 14167 list.push( arg ); 14168 } 14169 } else if ( arg && arg.length && toType( arg ) !== "string" ) { 14170 14171 // Inspect recursively 14172 add( arg ); 14173 } 14174 } ); 14175 } )( arguments ); 14176 14177 if ( memory && !firing ) { 14178 fire(); 14179 } 14180 } 14181 return this; 14182 }, 14183 14184 // Remove a callback from the list 14185 remove: function() { 14186 jQuery.each( arguments, function( _, arg ) { 14187 var index; 14188 while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { 14189 list.splice( index, 1 ); 14190 14191 // Handle firing indexes 14192 if ( index <= firingIndex ) { 14193 firingIndex--; 14194 } 14195 } 14196 } ); 14197 return this; 14198 }, 14199 14200 // Check if a given callback is in the list. 14201 // If no argument is given, return whether or not list has callbacks attached. 14202 has: function( fn ) { 14203 return fn ? 14204 jQuery.inArray( fn, list ) > -1 : 14205 list.length > 0; 14206 }, 14207 14208 // Remove all callbacks from the list 14209 empty: function() { 14210 if ( list ) { 14211 list = []; 14212 } 14213 return this; 14214 }, 14215 14216 // Disable .fire and .add 14217 // Abort any current/pending executions 14218 // Clear all callbacks and values 14219 disable: function() { 14220 locked = queue = []; 14221 list = memory = ""; 14222 return this; 14223 }, 14224 disabled: function() { 14225 return !list; 14226 }, 14227 14228 // Disable .fire 14229 // Also disable .add unless we have memory (since it would have no effect) 14230 // Abort any pending executions 14231 lock: function() { 14232 locked = queue = []; 14233 if ( !memory && !firing ) { 14234 list = memory = ""; 14235 } 14236 return this; 14237 }, 14238 locked: function() { 14239 return !!locked; 14240 }, 14241 14242 // Call all callbacks with the given context and arguments 14243 fireWith: function( context, args ) { 14244 if ( !locked ) { 14245 args = args || []; 14246 args = [ context, args.slice ? args.slice() : args ]; 14247 queue.push( args ); 14248 if ( !firing ) { 14249 fire(); 14250 } 14251 } 14252 return this; 14253 }, 14254 14255 // Call all the callbacks with the given arguments 14256 fire: function() { 14257 self.fireWith( this, arguments ); 14258 return this; 14259 }, 14260 14261 // To know if the callbacks have already been called at least once 14262 fired: function() { 14263 return !!fired; 14264 } 14265 }; 14266 14267 return self; 14268}; 14269 14270 14271function Identity( v ) { 14272 return v; 14273} 14274function Thrower( ex ) { 14275 throw ex; 14276} 14277 14278function adoptValue( value, resolve, reject, noValue ) { 14279 var method; 14280 14281 try { 14282 14283 // Check for promise aspect first to privilege synchronous behavior 14284 if ( value && isFunction( ( method = value.promise ) ) ) { 14285 method.call( value ).done( resolve ).fail( reject ); 14286 14287 // Other thenables 14288 } else if ( value && isFunction( ( method = value.then ) ) ) { 14289 method.call( value, resolve, reject ); 14290 14291 // Other non-thenables 14292 } else { 14293 14294 // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: 14295 // * false: [ value ].slice( 0 ) => resolve( value ) 14296 // * true: [ value ].slice( 1 ) => resolve() 14297 resolve.apply( undefined, [ value ].slice( noValue ) ); 14298 } 14299 14300 // For Promises/A+, convert exceptions into rejections 14301 // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in 14302 // Deferred#then to conditionally suppress rejection. 14303 } catch ( value ) { 14304 14305 // Support: Android 4.0 only 14306 // Strict mode functions invoked without .call/.apply get global-object context 14307 reject.apply( undefined, [ value ] ); 14308 } 14309} 14310 14311jQuery.extend( { 14312 14313 Deferred: function( func ) { 14314 var tuples = [ 14315 14316 // action, add listener, callbacks, 14317 // ... .then handlers, argument index, [final state] 14318 [ "notify", "progress", jQuery.Callbacks( "memory" ), 14319 jQuery.Callbacks( "memory" ), 2 ], 14320 [ "resolve", "done", jQuery.Callbacks( "once memory" ), 14321 jQuery.Callbacks( "once memory" ), 0, "resolved" ], 14322 [ "reject", "fail", jQuery.Callbacks( "once memory" ), 14323 jQuery.Callbacks( "once memory" ), 1, "rejected" ] 14324 ], 14325 state = "pending", 14326 promise = { 14327 state: function() { 14328 return state; 14329 }, 14330 always: function() { 14331 deferred.done( arguments ).fail( arguments ); 14332 return this; 14333 }, 14334 "catch": function( fn ) { 14335 return promise.then( null, fn ); 14336 }, 14337 14338 // Keep pipe for back-compat 14339 pipe: function( /* fnDone, fnFail, fnProgress */ ) { 14340 var fns = arguments; 14341 14342 return jQuery.Deferred( function( newDefer ) { 14343 jQuery.each( tuples, function( i, tuple ) { 14344 14345 // Map tuples (progress, done, fail) to arguments (done, fail, progress) 14346 var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; 14347 14348 // deferred.progress(function() { bind to newDefer or newDefer.notify }) 14349 // deferred.done(function() { bind to newDefer or newDefer.resolve }) 14350 // deferred.fail(function() { bind to newDefer or newDefer.reject }) 14351 deferred[ tuple[ 1 ] ]( function() { 14352 var returned = fn && fn.apply( this, arguments ); 14353 if ( returned && isFunction( returned.promise ) ) { 14354 returned.promise() 14355 .progress( newDefer.notify ) 14356 .done( newDefer.resolve ) 14357 .fail( newDefer.reject ); 14358 } else { 14359 newDefer[ tuple[ 0 ] + "With" ]( 14360 this, 14361 fn ? [ returned ] : arguments 14362 ); 14363 } 14364 } ); 14365 } ); 14366 fns = null; 14367 } ).promise(); 14368 }, 14369 then: function( onFulfilled, onRejected, onProgress ) { 14370 var maxDepth = 0; 14371 function resolve( depth, deferred, handler, special ) { 14372 return function() { 14373 var that = this, 14374 args = arguments, 14375 mightThrow = function() { 14376 var returned, then; 14377 14378 // Support: Promises/A+ section 2.3.3.3.3 14379 // https://promisesaplus.com/#point-59 14380 // Ignore double-resolution attempts 14381 if ( depth < maxDepth ) { 14382 return; 14383 } 14384 14385 returned = handler.apply( that, args ); 14386 14387 // Support: Promises/A+ section 2.3.1 14388 // https://promisesaplus.com/#point-48 14389 if ( returned === deferred.promise() ) { 14390 throw new TypeError( "Thenable self-resolution" ); 14391 } 14392 14393 // Support: Promises/A+ sections 2.3.3.1, 3.5 14394 // https://promisesaplus.com/#point-54 14395 // https://promisesaplus.com/#point-75 14396 // Retrieve `then` only once 14397 then = returned && 14398 14399 // Support: Promises/A+ section 2.3.4 14400 // https://promisesaplus.com/#point-64 14401 // Only check objects and functions for thenability 14402 ( typeof returned === "object" || 14403 typeof returned === "function" ) && 14404 returned.then; 14405 14406 // Handle a returned thenable 14407 if ( isFunction( then ) ) { 14408 14409 // Special processors (notify) just wait for resolution 14410 if ( special ) { 14411 then.call( 14412 returned, 14413 resolve( maxDepth, deferred, Identity, special ), 14414 resolve( maxDepth, deferred, Thrower, special ) 14415 ); 14416 14417 // Normal processors (resolve) also hook into progress 14418 } else { 14419 14420 // ...and disregard older resolution values 14421 maxDepth++; 14422 14423 then.call( 14424 returned, 14425 resolve( maxDepth, deferred, Identity, special ), 14426 resolve( maxDepth, deferred, Thrower, special ), 14427 resolve( maxDepth, deferred, Identity, 14428 deferred.notifyWith ) 14429 ); 14430 } 14431 14432 // Handle all other returned values 14433 } else { 14434 14435 // Only substitute handlers pass on context 14436 // and multiple values (non-spec behavior) 14437 if ( handler !== Identity ) { 14438 that = undefined; 14439 args = [ returned ]; 14440 } 14441 14442 // Process the value(s) 14443 // Default process is resolve 14444 ( special || deferred.resolveWith )( that, args ); 14445 } 14446 }, 14447 14448 // Only normal processors (resolve) catch and reject exceptions 14449 process = special ? 14450 mightThrow : 14451 function() { 14452 try { 14453 mightThrow(); 14454 } catch ( e ) { 14455 14456 if ( jQuery.Deferred.exceptionHook ) { 14457 jQuery.Deferred.exceptionHook( e, 14458 process.stackTrace ); 14459 } 14460 14461 // Support: Promises/A+ section 2.3.3.3.4.1 14462 // https://promisesaplus.com/#point-61 14463 // Ignore post-resolution exceptions 14464 if ( depth + 1 >= maxDepth ) { 14465 14466 // Only substitute handlers pass on context 14467 // and multiple values (non-spec behavior) 14468 if ( handler !== Thrower ) { 14469 that = undefined; 14470 args = [ e ]; 14471 } 14472 14473 deferred.rejectWith( that, args ); 14474 } 14475 } 14476 }; 14477 14478 // Support: Promises/A+ section 2.3.3.3.1 14479 // https://promisesaplus.com/#point-57 14480 // Re-resolve promises immediately to dodge false rejection from 14481 // subsequent errors 14482 if ( depth ) { 14483 process(); 14484 } else { 14485 14486 // Call an optional hook to record the stack, in case of exception 14487 // since it's otherwise lost when execution goes async 14488 if ( jQuery.Deferred.getStackHook ) { 14489 process.stackTrace = jQuery.Deferred.getStackHook(); 14490 } 14491 window.setTimeout( process ); 14492 } 14493 }; 14494 } 14495 14496 return jQuery.Deferred( function( newDefer ) { 14497 14498 // progress_handlers.add( ... ) 14499 tuples[ 0 ][ 3 ].add( 14500 resolve( 14501 0, 14502 newDefer, 14503 isFunction( onProgress ) ? 14504 onProgress : 14505 Identity, 14506 newDefer.notifyWith 14507 ) 14508 ); 14509 14510 // fulfilled_handlers.add( ... ) 14511 tuples[ 1 ][ 3 ].add( 14512 resolve( 14513 0, 14514 newDefer, 14515 isFunction( onFulfilled ) ? 14516 onFulfilled : 14517 Identity 14518 ) 14519 ); 14520 14521 // rejected_handlers.add( ... ) 14522 tuples[ 2 ][ 3 ].add( 14523 resolve( 14524 0, 14525 newDefer, 14526 isFunction( onRejected ) ? 14527 onRejected : 14528 Thrower 14529 ) 14530 ); 14531 } ).promise(); 14532 }, 14533 14534 // Get a promise for this deferred 14535 // If obj is provided, the promise aspect is added to the object 14536 promise: function( obj ) { 14537 return obj != null ? jQuery.extend( obj, promise ) : promise; 14538 } 14539 }, 14540 deferred = {}; 14541 14542 // Add list-specific methods 14543 jQuery.each( tuples, function( i, tuple ) { 14544 var list = tuple[ 2 ], 14545 stateString = tuple[ 5 ]; 14546 14547 // promise.progress = list.add 14548 // promise.done = list.add 14549 // promise.fail = list.add 14550 promise[ tuple[ 1 ] ] = list.add; 14551 14552 // Handle state 14553 if ( stateString ) { 14554 list.add( 14555 function() { 14556 14557 // state = "resolved" (i.e., fulfilled) 14558 // state = "rejected" 14559 state = stateString; 14560 }, 14561 14562 // rejected_callbacks.disable 14563 // fulfilled_callbacks.disable 14564 tuples[ 3 - i ][ 2 ].disable, 14565 14566 // rejected_handlers.disable 14567 // fulfilled_handlers.disable 14568 tuples[ 3 - i ][ 3 ].disable, 14569 14570 // progress_callbacks.lock 14571 tuples[ 0 ][ 2 ].lock, 14572 14573 // progress_handlers.lock 14574 tuples[ 0 ][ 3 ].lock 14575 ); 14576 } 14577 14578 // progress_handlers.fire 14579 // fulfilled_handlers.fire 14580 // rejected_handlers.fire 14581 list.add( tuple[ 3 ].fire ); 14582 14583 // deferred.notify = function() { deferred.notifyWith(...) } 14584 // deferred.resolve = function() { deferred.resolveWith(...) } 14585 // deferred.reject = function() { deferred.rejectWith(...) } 14586 deferred[ tuple[ 0 ] ] = function() { 14587 deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); 14588 return this; 14589 }; 14590 14591 // deferred.notifyWith = list.fireWith 14592 // deferred.resolveWith = list.fireWith 14593 // deferred.rejectWith = list.fireWith 14594 deferred[ tuple[ 0 ] + "With" ] = list.fireWith; 14595 } ); 14596 14597 // Make the deferred a promise 14598 promise.promise( deferred ); 14599 14600 // Call given func if any 14601 if ( func ) { 14602 func.call( deferred, deferred ); 14603 } 14604 14605 // All done! 14606 return deferred; 14607 }, 14608 14609 // Deferred helper 14610 when: function( singleValue ) { 14611 var 14612 14613 // count of uncompleted subordinates 14614 remaining = arguments.length, 14615 14616 // count of unprocessed arguments 14617 i = remaining, 14618 14619 // subordinate fulfillment data 14620 resolveContexts = Array( i ), 14621 resolveValues = slice.call( arguments ), 14622 14623 // the master Deferred 14624 master = jQuery.Deferred(), 14625 14626 // subordinate callback factory 14627 updateFunc = function( i ) { 14628 return function( value ) { 14629 resolveContexts[ i ] = this; 14630 resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; 14631 if ( !( --remaining ) ) { 14632 master.resolveWith( resolveContexts, resolveValues ); 14633 } 14634 }; 14635 }; 14636 14637 // Single- and empty arguments are adopted like Promise.resolve 14638 if ( remaining <= 1 ) { 14639 adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, 14640 !remaining ); 14641 14642 // Use .then() to unwrap secondary thenables (cf. gh-3000) 14643 if ( master.state() === "pending" || 14644 isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { 14645 14646 return master.then(); 14647 } 14648 } 14649 14650 // Multiple arguments are aggregated like Promise.all array elements 14651 while ( i-- ) { 14652 adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); 14653 } 14654 14655 return master.promise(); 14656 } 14657} ); 14658 14659 14660// These usually indicate a programmer mistake during development, 14661// warn about them ASAP rather than swallowing them by default. 14662var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 14663 14664jQuery.Deferred.exceptionHook = function( error, stack ) { 14665 14666 // Support: IE 8 - 9 only 14667 // Console exists when dev tools are open, which can happen at any time 14668 if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { 14669 window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); 14670 } 14671}; 14672 14673 14674 14675 14676jQuery.readyException = function( error ) { 14677 window.setTimeout( function() { 14678 throw error; 14679 } ); 14680}; 14681 14682 14683 14684 14685// The deferred used on DOM ready 14686var readyList = jQuery.Deferred(); 14687 14688jQuery.fn.ready = function( fn ) { 14689 14690 readyList 14691 .then( fn ) 14692 14693 // Wrap jQuery.readyException in a function so that the lookup 14694 // happens at the time of error handling instead of callback 14695 // registration. 14696 .catch( function( error ) { 14697 jQuery.readyException( error ); 14698 } ); 14699 14700 return this; 14701}; 14702 14703jQuery.extend( { 14704 14705 // Is the DOM ready to be used? Set to true once it occurs. 14706 isReady: false, 14707 14708 // A counter to track how many items to wait for before 14709 // the ready event fires. See #6781 14710 readyWait: 1, 14711 14712 // Handle when the DOM is ready 14713 ready: function( wait ) { 14714 14715 // Abort if there are pending holds or we're already ready 14716 if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { 14717 return; 14718 } 14719 14720 // Remember that the DOM is ready 14721 jQuery.isReady = true; 14722 14723 // If a normal DOM Ready event fired, decrement, and wait if need be 14724 if ( wait !== true && --jQuery.readyWait > 0 ) { 14725 return; 14726 } 14727 14728 // If there are functions bound, to execute 14729 readyList.resolveWith( document, [ jQuery ] ); 14730 } 14731} ); 14732 14733jQuery.ready.then = readyList.then; 14734 14735// The ready event handler and self cleanup method 14736function completed() { 14737 document.removeEventListener( "DOMContentLoaded", completed ); 14738 window.removeEventListener( "load", completed ); 14739 jQuery.ready(); 14740} 14741 14742// Catch cases where $(document).ready() is called 14743// after the browser event has already occurred. 14744// Support: IE <=9 - 10 only 14745// Older IE sometimes signals "interactive" too soon 14746if ( document.readyState === "complete" || 14747 ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { 14748 14749 // Handle it asynchronously to allow scripts the opportunity to delay ready 14750 window.setTimeout( jQuery.ready ); 14751 14752} else { 14753 14754 // Use the handy event callback 14755 document.addEventListener( "DOMContentLoaded", completed ); 14756 14757 // A fallback to window.onload, that will always work 14758 window.addEventListener( "load", completed ); 14759} 14760 14761 14762 14763 14764// Multifunctional method to get and set values of a collection 14765// The value/s can optionally be executed if it's a function 14766var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { 14767 var i = 0, 14768 len = elems.length, 14769 bulk = key == null; 14770 14771 // Sets many values 14772 if ( toType( key ) === "object" ) { 14773 chainable = true; 14774 for ( i in key ) { 14775 access( elems, fn, i, key[ i ], true, emptyGet, raw ); 14776 } 14777 14778 // Sets one value 14779 } else if ( value !== undefined ) { 14780 chainable = true; 14781 14782 if ( !isFunction( value ) ) { 14783 raw = true; 14784 } 14785 14786 if ( bulk ) { 14787 14788 // Bulk operations run against the entire set 14789 if ( raw ) { 14790 fn.call( elems, value ); 14791 fn = null; 14792 14793 // ...except when executing function values 14794 } else { 14795 bulk = fn; 14796 fn = function( elem, key, value ) { 14797 return bulk.call( jQuery( elem ), value ); 14798 }; 14799 } 14800 } 14801 14802 if ( fn ) { 14803 for ( ; i < len; i++ ) { 14804 fn( 14805 elems[ i ], key, raw ? 14806 value : 14807 value.call( elems[ i ], i, fn( elems[ i ], key ) ) 14808 ); 14809 } 14810 } 14811 } 14812 14813 if ( chainable ) { 14814 return elems; 14815 } 14816 14817 // Gets 14818 if ( bulk ) { 14819 return fn.call( elems ); 14820 } 14821 14822 return len ? fn( elems[ 0 ], key ) : emptyGet; 14823}; 14824 14825 14826// Matches dashed string for camelizing 14827var rmsPrefix = /^-ms-/, 14828 rdashAlpha = /-([a-z])/g; 14829 14830// Used by camelCase as callback to replace() 14831function fcamelCase( all, letter ) { 14832 return letter.toUpperCase(); 14833} 14834 14835// Convert dashed to camelCase; used by the css and data modules 14836// Support: IE <=9 - 11, Edge 12 - 15 14837// Microsoft forgot to hump their vendor prefix (#9572) 14838function camelCase( string ) { 14839 return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); 14840} 14841var acceptData = function( owner ) { 14842 14843 // Accepts only: 14844 // - Node 14845 // - Node.ELEMENT_NODE 14846 // - Node.DOCUMENT_NODE 14847 // - Object 14848 // - Any 14849 return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 14850}; 14851 14852 14853 14854 14855function Data() { 14856 this.expando = jQuery.expando + Data.uid++; 14857} 14858 14859Data.uid = 1; 14860 14861Data.prototype = { 14862 14863 cache: function( owner ) { 14864 14865 // Check if the owner object already has a cache 14866 var value = owner[ this.expando ]; 14867 14868 // If not, create one 14869 if ( !value ) { 14870 value = {}; 14871 14872 // We can accept data for non-element nodes in modern browsers, 14873 // but we should not, see #8335. 14874 // Always return an empty object. 14875 if ( acceptData( owner ) ) { 14876 14877 // If it is a node unlikely to be stringify-ed or looped over 14878 // use plain assignment 14879 if ( owner.nodeType ) { 14880 owner[ this.expando ] = value; 14881 14882 // Otherwise secure it in a non-enumerable property 14883 // configurable must be true to allow the property to be 14884 // deleted when data is removed 14885 } else { 14886 Object.defineProperty( owner, this.expando, { 14887 value: value, 14888 configurable: true 14889 } ); 14890 } 14891 } 14892 } 14893 14894 return value; 14895 }, 14896 set: function( owner, data, value ) { 14897 var prop, 14898 cache = this.cache( owner ); 14899 14900 // Handle: [ owner, key, value ] args 14901 // Always use camelCase key (gh-2257) 14902 if ( typeof data === "string" ) { 14903 cache[ camelCase( data ) ] = value; 14904 14905 // Handle: [ owner, { properties } ] args 14906 } else { 14907 14908 // Copy the properties one-by-one to the cache object 14909 for ( prop in data ) { 14910 cache[ camelCase( prop ) ] = data[ prop ]; 14911 } 14912 } 14913 return cache; 14914 }, 14915 get: function( owner, key ) { 14916 return key === undefined ? 14917 this.cache( owner ) : 14918 14919 // Always use camelCase key (gh-2257) 14920 owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; 14921 }, 14922 access: function( owner, key, value ) { 14923 14924 // In cases where either: 14925 // 14926 // 1. No key was specified 14927 // 2. A string key was specified, but no value provided 14928 // 14929 // Take the "read" path and allow the get method to determine 14930 // which value to return, respectively either: 14931 // 14932 // 1. The entire cache object 14933 // 2. The data stored at the key 14934 // 14935 if ( key === undefined || 14936 ( ( key && typeof key === "string" ) && value === undefined ) ) { 14937 14938 return this.get( owner, key ); 14939 } 14940 14941 // When the key is not a string, or both a key and value 14942 // are specified, set or extend (existing objects) with either: 14943 // 14944 // 1. An object of properties 14945 // 2. A key and value 14946 // 14947 this.set( owner, key, value ); 14948 14949 // Since the "set" path can have two possible entry points 14950 // return the expected data based on which path was taken[*] 14951 return value !== undefined ? value : key; 14952 }, 14953 remove: function( owner, key ) { 14954 var i, 14955 cache = owner[ this.expando ]; 14956 14957 if ( cache === undefined ) { 14958 return; 14959 } 14960 14961 if ( key !== undefined ) { 14962 14963 // Support array or space separated string of keys 14964 if ( Array.isArray( key ) ) { 14965 14966 // If key is an array of keys... 14967 // We always set camelCase keys, so remove that. 14968 key = key.map( camelCase ); 14969 } else { 14970 key = camelCase( key ); 14971 14972 // If a key with the spaces exists, use it. 14973 // Otherwise, create an array by matching non-whitespace 14974 key = key in cache ? 14975 [ key ] : 14976 ( key.match( rnothtmlwhite ) || [] ); 14977 } 14978 14979 i = key.length; 14980 14981 while ( i-- ) { 14982 delete cache[ key[ i ] ]; 14983 } 14984 } 14985 14986 // Remove the expando if there's no more data 14987 if ( key === undefined || jQuery.isEmptyObject( cache ) ) { 14988 14989 // Support: Chrome <=35 - 45 14990 // Webkit & Blink performance suffers when deleting properties 14991 // from DOM nodes, so set to undefined instead 14992 // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) 14993 if ( owner.nodeType ) { 14994 owner[ this.expando ] = undefined; 14995 } else { 14996 delete owner[ this.expando ]; 14997 } 14998 } 14999 }, 15000 hasData: function( owner ) { 15001 var cache = owner[ this.expando ]; 15002 return cache !== undefined && !jQuery.isEmptyObject( cache ); 15003 } 15004}; 15005var dataPriv = new Data(); 15006 15007var dataUser = new Data(); 15008 15009 15010 15011// Implementation Summary 15012// 15013// 1. Enforce API surface and semantic compatibility with 1.9.x branch 15014// 2. Improve the module's maintainability by reducing the storage 15015// paths to a single mechanism. 15016// 3. Use the same single mechanism to support "private" and "user" data. 15017// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) 15018// 5. Avoid exposing implementation details on user objects (eg. expando properties) 15019// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 15020 15021var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, 15022 rmultiDash = /[A-Z]/g; 15023 15024function getData( data ) { 15025 if ( data === "true" ) { 15026 return true; 15027 } 15028 15029 if ( data === "false" ) { 15030 return false; 15031 } 15032 15033 if ( data === "null" ) { 15034 return null; 15035 } 15036 15037 // Only convert to a number if it doesn't change the string 15038 if ( data === +data + "" ) { 15039 return +data; 15040 } 15041 15042 if ( rbrace.test( data ) ) { 15043 return JSON.parse( data ); 15044 } 15045 15046 return data; 15047} 15048 15049function dataAttr( elem, key, data ) { 15050 var name; 15051 15052 // If nothing was found internally, try to fetch any 15053 // data from the HTML5 data-* attribute 15054 if ( data === undefined && elem.nodeType === 1 ) { 15055 name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); 15056 data = elem.getAttribute( name ); 15057 15058 if ( typeof data === "string" ) { 15059 try { 15060 data = getData( data ); 15061 } catch ( e ) {} 15062 15063 // Make sure we set the data so it isn't changed later 15064 dataUser.set( elem, key, data ); 15065 } else { 15066 data = undefined; 15067 } 15068 } 15069 return data; 15070} 15071 15072jQuery.extend( { 15073 hasData: function( elem ) { 15074 return dataUser.hasData( elem ) || dataPriv.hasData( elem ); 15075 }, 15076 15077 data: function( elem, name, data ) { 15078 return dataUser.access( elem, name, data ); 15079 }, 15080 15081 removeData: function( elem, name ) { 15082 dataUser.remove( elem, name ); 15083 }, 15084 15085 // TODO: Now that all calls to _data and _removeData have been replaced 15086 // with direct calls to dataPriv methods, these can be deprecated. 15087 _data: function( elem, name, data ) { 15088 return dataPriv.access( elem, name, data ); 15089 }, 15090 15091 _removeData: function( elem, name ) { 15092 dataPriv.remove( elem, name ); 15093 } 15094} ); 15095 15096jQuery.fn.extend( { 15097 data: function( key, value ) { 15098 var i, name, data, 15099 elem = this[ 0 ], 15100 attrs = elem && elem.attributes; 15101 15102 // Gets all values 15103 if ( key === undefined ) { 15104 if ( this.length ) { 15105 data = dataUser.get( elem ); 15106 15107 if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { 15108 i = attrs.length; 15109 while ( i-- ) { 15110 15111 // Support: IE 11 only 15112 // The attrs elements can be null (#14894) 15113 if ( attrs[ i ] ) { 15114 name = attrs[ i ].name; 15115 if ( name.indexOf( "data-" ) === 0 ) { 15116 name = camelCase( name.slice( 5 ) ); 15117 dataAttr( elem, name, data[ name ] ); 15118 } 15119 } 15120 } 15121 dataPriv.set( elem, "hasDataAttrs", true ); 15122 } 15123 } 15124 15125 return data; 15126 } 15127 15128 // Sets multiple values 15129 if ( typeof key === "object" ) { 15130 return this.each( function() { 15131 dataUser.set( this, key ); 15132 } ); 15133 } 15134 15135 return access( this, function( value ) { 15136 var data; 15137 15138 // The calling jQuery object (element matches) is not empty 15139 // (and therefore has an element appears at this[ 0 ]) and the 15140 // `value` parameter was not undefined. An empty jQuery object 15141 // will result in `undefined` for elem = this[ 0 ] which will 15142 // throw an exception if an attempt to read a data cache is made. 15143 if ( elem && value === undefined ) { 15144 15145 // Attempt to get data from the cache 15146 // The key will always be camelCased in Data 15147 data = dataUser.get( elem, key ); 15148 if ( data !== undefined ) { 15149 return data; 15150 } 15151 15152 // Attempt to "discover" the data in 15153 // HTML5 custom data-* attrs 15154 data = dataAttr( elem, key ); 15155 if ( data !== undefined ) { 15156 return data; 15157 } 15158 15159 // We tried really hard, but the data doesn't exist. 15160 return; 15161 } 15162 15163 // Set the data... 15164 this.each( function() { 15165 15166 // We always store the camelCased key 15167 dataUser.set( this, key, value ); 15168 } ); 15169 }, null, value, arguments.length > 1, null, true ); 15170 }, 15171 15172 removeData: function( key ) { 15173 return this.each( function() { 15174 dataUser.remove( this, key ); 15175 } ); 15176 } 15177} ); 15178 15179 15180jQuery.extend( { 15181 queue: function( elem, type, data ) { 15182 var queue; 15183 15184 if ( elem ) { 15185 type = ( type || "fx" ) + "queue"; 15186 queue = dataPriv.get( elem, type ); 15187 15188 // Speed up dequeue by getting out quickly if this is just a lookup 15189 if ( data ) { 15190 if ( !queue || Array.isArray( data ) ) { 15191 queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); 15192 } else { 15193 queue.push( data ); 15194 } 15195 } 15196 return queue || []; 15197 } 15198 }, 15199 15200 dequeue: function( elem, type ) { 15201 type = type || "fx"; 15202 15203 var queue = jQuery.queue( elem, type ), 15204 startLength = queue.length, 15205 fn = queue.shift(), 15206 hooks = jQuery._queueHooks( elem, type ), 15207 next = function() { 15208 jQuery.dequeue( elem, type ); 15209 }; 15210 15211 // If the fx queue is dequeued, always remove the progress sentinel 15212 if ( fn === "inprogress" ) { 15213 fn = queue.shift(); 15214 startLength--; 15215 } 15216 15217 if ( fn ) { 15218 15219 // Add a progress sentinel to prevent the fx queue from being 15220 // automatically dequeued 15221 if ( type === "fx" ) { 15222 queue.unshift( "inprogress" ); 15223 } 15224 15225 // Clear up the last queue stop function 15226 delete hooks.stop; 15227 fn.call( elem, next, hooks ); 15228 } 15229 15230 if ( !startLength && hooks ) { 15231 hooks.empty.fire(); 15232 } 15233 }, 15234 15235 // Not public - generate a queueHooks object, or return the current one 15236 _queueHooks: function( elem, type ) { 15237 var key = type + "queueHooks"; 15238 return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { 15239 empty: jQuery.Callbacks( "once memory" ).add( function() { 15240 dataPriv.remove( elem, [ type + "queue", key ] ); 15241 } ) 15242 } ); 15243 } 15244} ); 15245 15246jQuery.fn.extend( { 15247 queue: function( type, data ) { 15248 var setter = 2; 15249 15250 if ( typeof type !== "string" ) { 15251 data = type; 15252 type = "fx"; 15253 setter--; 15254 } 15255 15256 if ( arguments.length < setter ) { 15257 return jQuery.queue( this[ 0 ], type ); 15258 } 15259 15260 return data === undefined ? 15261 this : 15262 this.each( function() { 15263 var queue = jQuery.queue( this, type, data ); 15264 15265 // Ensure a hooks for this queue 15266 jQuery._queueHooks( this, type ); 15267 15268 if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { 15269 jQuery.dequeue( this, type ); 15270 } 15271 } ); 15272 }, 15273 dequeue: function( type ) { 15274 return this.each( function() { 15275 jQuery.dequeue( this, type ); 15276 } ); 15277 }, 15278 clearQueue: function( type ) { 15279 return this.queue( type || "fx", [] ); 15280 }, 15281 15282 // Get a promise resolved when queues of a certain type 15283 // are emptied (fx is the type by default) 15284 promise: function( type, obj ) { 15285 var tmp, 15286 count = 1, 15287 defer = jQuery.Deferred(), 15288 elements = this, 15289 i = this.length, 15290 resolve = function() { 15291 if ( !( --count ) ) { 15292 defer.resolveWith( elements, [ elements ] ); 15293 } 15294 }; 15295 15296 if ( typeof type !== "string" ) { 15297 obj = type; 15298 type = undefined; 15299 } 15300 type = type || "fx"; 15301 15302 while ( i-- ) { 15303 tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); 15304 if ( tmp && tmp.empty ) { 15305 count++; 15306 tmp.empty.add( resolve ); 15307 } 15308 } 15309 resolve(); 15310 return defer.promise( obj ); 15311 } 15312} ); 15313var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; 15314 15315var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); 15316 15317 15318var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; 15319 15320var isHiddenWithinTree = function( elem, el ) { 15321 15322 // isHiddenWithinTree might be called from jQuery#filter function; 15323 // in that case, element will be second argument 15324 elem = el || elem; 15325 15326 // Inline style trumps all 15327 return elem.style.display === "none" || 15328 elem.style.display === "" && 15329 15330 // Otherwise, check computed style 15331 // Support: Firefox <=43 - 45 15332 // Disconnected elements can have computed display: none, so first confirm that elem is 15333 // in the document. 15334 jQuery.contains( elem.ownerDocument, elem ) && 15335 15336 jQuery.css( elem, "display" ) === "none"; 15337 }; 15338 15339var swap = function( elem, options, callback, args ) { 15340 var ret, name, 15341 old = {}; 15342 15343 // Remember the old values, and insert the new ones 15344 for ( name in options ) { 15345 old[ name ] = elem.style[ name ]; 15346 elem.style[ name ] = options[ name ]; 15347 } 15348 15349 ret = callback.apply( elem, args || [] ); 15350 15351 // Revert the old values 15352 for ( name in options ) { 15353 elem.style[ name ] = old[ name ]; 15354 } 15355 15356 return ret; 15357}; 15358 15359 15360 15361 15362function adjustCSS( elem, prop, valueParts, tween ) { 15363 var adjusted, scale, 15364 maxIterations = 20, 15365 currentValue = tween ? 15366 function() { 15367 return tween.cur(); 15368 } : 15369 function() { 15370 return jQuery.css( elem, prop, "" ); 15371 }, 15372 initial = currentValue(), 15373 unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), 15374 15375 // Starting value computation is required for potential unit mismatches 15376 initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && 15377 rcssNum.exec( jQuery.css( elem, prop ) ); 15378 15379 if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { 15380 15381 // Support: Firefox <=54 15382 // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) 15383 initial = initial / 2; 15384 15385 // Trust units reported by jQuery.css 15386 unit = unit || initialInUnit[ 3 ]; 15387 15388 // Iteratively approximate from a nonzero starting point 15389 initialInUnit = +initial || 1; 15390 15391 while ( maxIterations-- ) { 15392 15393 // Evaluate and update our best guess (doubling guesses that zero out). 15394 // Finish if the scale equals or crosses 1 (making the old*new product non-positive). 15395 jQuery.style( elem, prop, initialInUnit + unit ); 15396 if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { 15397 maxIterations = 0; 15398 } 15399 initialInUnit = initialInUnit / scale; 15400 15401 } 15402 15403 initialInUnit = initialInUnit * 2; 15404 jQuery.style( elem, prop, initialInUnit + unit ); 15405 15406 // Make sure we update the tween properties later on 15407 valueParts = valueParts || []; 15408 } 15409 15410 if ( valueParts ) { 15411 initialInUnit = +initialInUnit || +initial || 0; 15412 15413 // Apply relative offset (+=/-=) if specified 15414 adjusted = valueParts[ 1 ] ? 15415 initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : 15416 +valueParts[ 2 ]; 15417 if ( tween ) { 15418 tween.unit = unit; 15419 tween.start = initialInUnit; 15420 tween.end = adjusted; 15421 } 15422 } 15423 return adjusted; 15424} 15425 15426 15427var defaultDisplayMap = {}; 15428 15429function getDefaultDisplay( elem ) { 15430 var temp, 15431 doc = elem.ownerDocument, 15432 nodeName = elem.nodeName, 15433 display = defaultDisplayMap[ nodeName ]; 15434 15435 if ( display ) { 15436 return display; 15437 } 15438 15439 temp = doc.body.appendChild( doc.createElement( nodeName ) ); 15440 display = jQuery.css( temp, "display" ); 15441 15442 temp.parentNode.removeChild( temp ); 15443 15444 if ( display === "none" ) { 15445 display = "block"; 15446 } 15447 defaultDisplayMap[ nodeName ] = display; 15448 15449 return display; 15450} 15451 15452function showHide( elements, show ) { 15453 var display, elem, 15454 values = [], 15455 index = 0, 15456 length = elements.length; 15457 15458 // Determine new display value for elements that need to change 15459 for ( ; index < length; index++ ) { 15460 elem = elements[ index ]; 15461 if ( !elem.style ) { 15462 continue; 15463 } 15464 15465 display = elem.style.display; 15466 if ( show ) { 15467 15468 // Since we force visibility upon cascade-hidden elements, an immediate (and slow) 15469 // check is required in this first loop unless we have a nonempty display value (either 15470 // inline or about-to-be-restored) 15471 if ( display === "none" ) { 15472 values[ index ] = dataPriv.get( elem, "display" ) || null; 15473 if ( !values[ index ] ) { 15474 elem.style.display = ""; 15475 } 15476 } 15477 if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { 15478 values[ index ] = getDefaultDisplay( elem ); 15479 } 15480 } else { 15481 if ( display !== "none" ) { 15482 values[ index ] = "none"; 15483 15484 // Remember what we're overwriting 15485 dataPriv.set( elem, "display", display ); 15486 } 15487 } 15488 } 15489 15490 // Set the display of the elements in a second loop to avoid constant reflow 15491 for ( index = 0; index < length; index++ ) { 15492 if ( values[ index ] != null ) { 15493 elements[ index ].style.display = values[ index ]; 15494 } 15495 } 15496 15497 return elements; 15498} 15499 15500jQuery.fn.extend( { 15501 show: function() { 15502 return showHide( this, true ); 15503 }, 15504 hide: function() { 15505 return showHide( this ); 15506 }, 15507 toggle: function( state ) { 15508 if ( typeof state === "boolean" ) { 15509 return state ? this.show() : this.hide(); 15510 } 15511 15512 return this.each( function() { 15513 if ( isHiddenWithinTree( this ) ) { 15514 jQuery( this ).show(); 15515 } else { 15516 jQuery( this ).hide(); 15517 } 15518 } ); 15519 } 15520} ); 15521var rcheckableType = ( /^(?:checkbox|radio)$/i ); 15522 15523var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); 15524 15525var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); 15526 15527 15528 15529// We have to close these tags to support XHTML (#13200) 15530var wrapMap = { 15531 15532 // Support: IE <=9 only 15533 option: [ 1, "<select multiple='multiple'>", "</select>" ], 15534 15535 // XHTML parsers do not magically insert elements in the 15536 // same way that tag soup parsers do. So we cannot shorten 15537 // this by omitting <tbody> or other required elements. 15538 thead: [ 1, "<table>", "</table>" ], 15539 col: [ 2, "<table><colgroup>", "</colgroup></table>" ], 15540 tr: [ 2, "<table><tbody>", "</tbody></table>" ], 15541 td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ], 15542 15543 _default: [ 0, "", "" ] 15544}; 15545 15546// Support: IE <=9 only 15547wrapMap.optgroup = wrapMap.option; 15548 15549wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 15550wrapMap.th = wrapMap.td; 15551 15552 15553function getAll( context, tag ) { 15554 15555 // Support: IE <=9 - 11 only 15556 // Use typeof to avoid zero-argument method invocation on host objects (#15151) 15557 var ret; 15558 15559 if ( typeof context.getElementsByTagName !== "undefined" ) { 15560 ret = context.getElementsByTagName( tag || "*" ); 15561 15562 } else if ( typeof context.querySelectorAll !== "undefined" ) { 15563 ret = context.querySelectorAll( tag || "*" ); 15564 15565 } else { 15566 ret = []; 15567 } 15568 15569 if ( tag === undefined || tag && nodeName( context, tag ) ) { 15570 return jQuery.merge( [ context ], ret ); 15571 } 15572 15573 return ret; 15574} 15575 15576 15577// Mark scripts as having already been evaluated 15578function setGlobalEval( elems, refElements ) { 15579 var i = 0, 15580 l = elems.length; 15581 15582 for ( ; i < l; i++ ) { 15583 dataPriv.set( 15584 elems[ i ], 15585 "globalEval", 15586 !refElements || dataPriv.get( refElements[ i ], "globalEval" ) 15587 ); 15588 } 15589} 15590 15591 15592var rhtml = /<|&#?\w+;/; 15593 15594function buildFragment( elems, context, scripts, selection, ignored ) { 15595 var elem, tmp, tag, wrap, contains, j, 15596 fragment = context.createDocumentFragment(), 15597 nodes = [], 15598 i = 0, 15599 l = elems.length; 15600 15601 for ( ; i < l; i++ ) { 15602 elem = elems[ i ]; 15603 15604 if ( elem || elem === 0 ) { 15605 15606 // Add nodes directly 15607 if ( toType( elem ) === "object" ) { 15608 15609 // Support: Android <=4.0 only, PhantomJS 1 only 15610 // push.apply(_, arraylike) throws on ancient WebKit 15611 jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); 15612 15613 // Convert non-html into a text node 15614 } else if ( !rhtml.test( elem ) ) { 15615 nodes.push( context.createTextNode( elem ) ); 15616 15617 // Convert html into DOM nodes 15618 } else { 15619 tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); 15620 15621 // Deserialize a standard representation 15622 tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); 15623 wrap = wrapMap[ tag ] || wrapMap._default; 15624 tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; 15625 15626 // Descend through wrappers to the right content 15627 j = wrap[ 0 ]; 15628 while ( j-- ) { 15629 tmp = tmp.lastChild; 15630 } 15631 15632 // Support: Android <=4.0 only, PhantomJS 1 only 15633 // push.apply(_, arraylike) throws on ancient WebKit 15634 jQuery.merge( nodes, tmp.childNodes ); 15635 15636 // Remember the top-level container 15637 tmp = fragment.firstChild; 15638 15639 // Ensure the created nodes are orphaned (#12392) 15640 tmp.textContent = ""; 15641 } 15642 } 15643 } 15644 15645 // Remove wrapper from fragment 15646 fragment.textContent = ""; 15647 15648 i = 0; 15649 while ( ( elem = nodes[ i++ ] ) ) { 15650 15651 // Skip elements already in the context collection (trac-4087) 15652 if ( selection && jQuery.inArray( elem, selection ) > -1 ) { 15653 if ( ignored ) { 15654 ignored.push( elem ); 15655 } 15656 continue; 15657 } 15658 15659 contains = jQuery.contains( elem.ownerDocument, elem ); 15660 15661 // Append to fragment 15662 tmp = getAll( fragment.appendChild( elem ), "script" ); 15663 15664 // Preserve script evaluation history 15665 if ( contains ) { 15666 setGlobalEval( tmp ); 15667 } 15668 15669 // Capture executables 15670 if ( scripts ) { 15671 j = 0; 15672 while ( ( elem = tmp[ j++ ] ) ) { 15673 if ( rscriptType.test( elem.type || "" ) ) { 15674 scripts.push( elem ); 15675 } 15676 } 15677 } 15678 } 15679 15680 return fragment; 15681} 15682 15683 15684( function() { 15685 var fragment = document.createDocumentFragment(), 15686 div = fragment.appendChild( document.createElement( "div" ) ), 15687 input = document.createElement( "input" ); 15688 15689 // Support: Android 4.0 - 4.3 only 15690 // Check state lost if the name is set (#11217) 15691 // Support: Windows Web Apps (WWA) 15692 // `name` and `type` must use .setAttribute for WWA (#14901) 15693 input.setAttribute( "type", "radio" ); 15694 input.setAttribute( "checked", "checked" ); 15695 input.setAttribute( "name", "t" ); 15696 15697 div.appendChild( input ); 15698 15699 // Support: Android <=4.1 only 15700 // Older WebKit doesn't clone checked state correctly in fragments 15701 support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; 15702 15703 // Support: IE <=11 only 15704 // Make sure textarea (and checkbox) defaultValue is properly cloned 15705 div.innerHTML = "<textarea>x</textarea>"; 15706 support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; 15707} )(); 15708var documentElement = document.documentElement; 15709 15710 15711 15712var 15713 rkeyEvent = /^key/, 15714 rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, 15715 rtypenamespace = /^([^.]*)(?:\.(.+)|)/; 15716 15717function returnTrue() { 15718 return true; 15719} 15720 15721function returnFalse() { 15722 return false; 15723} 15724 15725// Support: IE <=9 only 15726// See #13393 for more info 15727function safeActiveElement() { 15728 try { 15729 return document.activeElement; 15730 } catch ( err ) { } 15731} 15732 15733function on( elem, types, selector, data, fn, one ) { 15734 var origFn, type; 15735 15736 // Types can be a map of types/handlers 15737 if ( typeof types === "object" ) { 15738 15739 // ( types-Object, selector, data ) 15740 if ( typeof selector !== "string" ) { 15741 15742 // ( types-Object, data ) 15743 data = data || selector; 15744 selector = undefined; 15745 } 15746 for ( type in types ) { 15747 on( elem, type, selector, data, types[ type ], one ); 15748 } 15749 return elem; 15750 } 15751 15752 if ( data == null && fn == null ) { 15753 15754 // ( types, fn ) 15755 fn = selector; 15756 data = selector = undefined; 15757 } else if ( fn == null ) { 15758 if ( typeof selector === "string" ) { 15759 15760 // ( types, selector, fn ) 15761 fn = data; 15762 data = undefined; 15763 } else { 15764 15765 // ( types, data, fn ) 15766 fn = data; 15767 data = selector; 15768 selector = undefined; 15769 } 15770 } 15771 if ( fn === false ) { 15772 fn = returnFalse; 15773 } else if ( !fn ) { 15774 return elem; 15775 } 15776 15777 if ( one === 1 ) { 15778 origFn = fn; 15779 fn = function( event ) { 15780 15781 // Can use an empty set, since event contains the info 15782 jQuery().off( event ); 15783 return origFn.apply( this, arguments ); 15784 }; 15785 15786 // Use same guid so caller can remove using origFn 15787 fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); 15788 } 15789 return elem.each( function() { 15790 jQuery.event.add( this, types, fn, data, selector ); 15791 } ); 15792} 15793 15794/* 15795 * Helper functions for managing events -- not part of the public interface. 15796 * Props to Dean Edwards' addEvent library for many of the ideas. 15797 */ 15798jQuery.event = { 15799 15800 global: {}, 15801 15802 add: function( elem, types, handler, data, selector ) { 15803 15804 var handleObjIn, eventHandle, tmp, 15805 events, t, handleObj, 15806 special, handlers, type, namespaces, origType, 15807 elemData = dataPriv.get( elem ); 15808 15809 // Don't attach events to noData or text/comment nodes (but allow plain objects) 15810 if ( !elemData ) { 15811 return; 15812 } 15813 15814 // Caller can pass in an object of custom data in lieu of the handler 15815 if ( handler.handler ) { 15816 handleObjIn = handler; 15817 handler = handleObjIn.handler; 15818 selector = handleObjIn.selector; 15819 } 15820 15821 // Ensure that invalid selectors throw exceptions at attach time 15822 // Evaluate against documentElement in case elem is a non-element node (e.g., document) 15823 if ( selector ) { 15824 jQuery.find.matchesSelector( documentElement, selector ); 15825 } 15826 15827 // Make sure that the handler has a unique ID, used to find/remove it later 15828 if ( !handler.guid ) { 15829 handler.guid = jQuery.guid++; 15830 } 15831 15832 // Init the element's event structure and main handler, if this is the first 15833 if ( !( events = elemData.events ) ) { 15834 events = elemData.events = {}; 15835 } 15836 if ( !( eventHandle = elemData.handle ) ) { 15837 eventHandle = elemData.handle = function( e ) { 15838 15839 // Discard the second event of a jQuery.event.trigger() and 15840 // when an event is called after a page has unloaded 15841 return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? 15842 jQuery.event.dispatch.apply( elem, arguments ) : undefined; 15843 }; 15844 } 15845 15846 // Handle multiple events separated by a space 15847 types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; 15848 t = types.length; 15849 while ( t-- ) { 15850 tmp = rtypenamespace.exec( types[ t ] ) || []; 15851 type = origType = tmp[ 1 ]; 15852 namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); 15853 15854 // There *must* be a type, no attaching namespace-only handlers 15855 if ( !type ) { 15856 continue; 15857 } 15858 15859 // If event changes its type, use the special event handlers for the changed type 15860 special = jQuery.event.special[ type ] || {}; 15861 15862 // If selector defined, determine special event api type, otherwise given type 15863 type = ( selector ? special.delegateType : special.bindType ) || type; 15864 15865 // Update special based on newly reset type 15866 special = jQuery.event.special[ type ] || {}; 15867 15868 // handleObj is passed to all event handlers 15869 handleObj = jQuery.extend( { 15870 type: type, 15871 origType: origType, 15872 data: data, 15873 handler: handler, 15874 guid: handler.guid, 15875 selector: selector, 15876 needsContext: selector && jQuery.expr.match.needsContext.test( selector ), 15877 namespace: namespaces.join( "." ) 15878 }, handleObjIn ); 15879 15880 // Init the event handler queue if we're the first 15881 if ( !( handlers = events[ type ] ) ) { 15882 handlers = events[ type ] = []; 15883 handlers.delegateCount = 0; 15884 15885 // Only use addEventListener if the special events handler returns false 15886 if ( !special.setup || 15887 special.setup.call( elem, data, namespaces, eventHandle ) === false ) { 15888 15889 if ( elem.addEventListener ) { 15890 elem.addEventListener( type, eventHandle ); 15891 } 15892 } 15893 } 15894 15895 if ( special.add ) { 15896 special.add.call( elem, handleObj ); 15897 15898 if ( !handleObj.handler.guid ) { 15899 handleObj.handler.guid = handler.guid; 15900 } 15901 } 15902 15903 // Add to the element's handler list, delegates in front 15904 if ( selector ) { 15905 handlers.splice( handlers.delegateCount++, 0, handleObj ); 15906 } else { 15907 handlers.push( handleObj ); 15908 } 15909 15910 // Keep track of which events have ever been used, for event optimization 15911 jQuery.event.global[ type ] = true; 15912 } 15913 15914 }, 15915 15916 // Detach an event or set of events from an element 15917 remove: function( elem, types, handler, selector, mappedTypes ) { 15918 15919 var j, origCount, tmp, 15920 events, t, handleObj, 15921 special, handlers, type, namespaces, origType, 15922 elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); 15923 15924 if ( !elemData || !( events = elemData.events ) ) { 15925 return; 15926 } 15927 15928 // Once for each type.namespace in types; type may be omitted 15929 types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; 15930 t = types.length; 15931 while ( t-- ) { 15932 tmp = rtypenamespace.exec( types[ t ] ) || []; 15933 type = origType = tmp[ 1 ]; 15934 namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); 15935 15936 // Unbind all events (on this namespace, if provided) for the element 15937 if ( !type ) { 15938 for ( type in events ) { 15939 jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); 15940 } 15941 continue; 15942 } 15943 15944 special = jQuery.event.special[ type ] || {}; 15945 type = ( selector ? special.delegateType : special.bindType ) || type; 15946 handlers = events[ type ] || []; 15947 tmp = tmp[ 2 ] && 15948 new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); 15949 15950 // Remove matching events 15951 origCount = j = handlers.length; 15952 while ( j-- ) { 15953 handleObj = handlers[ j ]; 15954 15955 if ( ( mappedTypes || origType === handleObj.origType ) && 15956 ( !handler || handler.guid === handleObj.guid ) && 15957 ( !tmp || tmp.test( handleObj.namespace ) ) && 15958 ( !selector || selector === handleObj.selector || 15959 selector === "**" && handleObj.selector ) ) { 15960 handlers.splice( j, 1 ); 15961 15962 if ( handleObj.selector ) { 15963 handlers.delegateCount--; 15964 } 15965 if ( special.remove ) { 15966 special.remove.call( elem, handleObj ); 15967 } 15968 } 15969 } 15970 15971 // Remove generic event handler if we removed something and no more handlers exist 15972 // (avoids potential for endless recursion during removal of special event handlers) 15973 if ( origCount && !handlers.length ) { 15974 if ( !special.teardown || 15975 special.teardown.call( elem, namespaces, elemData.handle ) === false ) { 15976 15977 jQuery.removeEvent( elem, type, elemData.handle ); 15978 } 15979 15980 delete events[ type ]; 15981 } 15982 } 15983 15984 // Remove data and the expando if it's no longer used 15985 if ( jQuery.isEmptyObject( events ) ) { 15986 dataPriv.remove( elem, "handle events" ); 15987 } 15988 }, 15989 15990 dispatch: function( nativeEvent ) { 15991 15992 // Make a writable jQuery.Event from the native event object 15993 var event = jQuery.event.fix( nativeEvent ); 15994 15995 var i, j, ret, matched, handleObj, handlerQueue, 15996 args = new Array( arguments.length ), 15997 handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], 15998 special = jQuery.event.special[ event.type ] || {}; 15999 16000 // Use the fix-ed jQuery.Event rather than the (read-only) native event 16001 args[ 0 ] = event; 16002 16003 for ( i = 1; i < arguments.length; i++ ) { 16004 args[ i ] = arguments[ i ]; 16005 } 16006 16007 event.delegateTarget = this; 16008 16009 // Call the preDispatch hook for the mapped type, and let it bail if desired 16010 if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { 16011 return; 16012 } 16013 16014 // Determine handlers 16015 handlerQueue = jQuery.event.handlers.call( this, event, handlers ); 16016 16017 // Run delegates first; they may want to stop propagation beneath us 16018 i = 0; 16019 while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { 16020 event.currentTarget = matched.elem; 16021 16022 j = 0; 16023 while ( ( handleObj = matched.handlers[ j++ ] ) && 16024 !event.isImmediatePropagationStopped() ) { 16025 16026 // Triggered event must either 1) have no namespace, or 2) have namespace(s) 16027 // a subset or equal to those in the bound event (both can have no namespace). 16028 if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { 16029 16030 event.handleObj = handleObj; 16031 event.data = handleObj.data; 16032 16033 ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || 16034 handleObj.handler ).apply( matched.elem, args ); 16035 16036 if ( ret !== undefined ) { 16037 if ( ( event.result = ret ) === false ) { 16038 event.preventDefault(); 16039 event.stopPropagation(); 16040 } 16041 } 16042 } 16043 } 16044 } 16045 16046 // Call the postDispatch hook for the mapped type 16047 if ( special.postDispatch ) { 16048 special.postDispatch.call( this, event ); 16049 } 16050 16051 return event.result; 16052 }, 16053 16054 handlers: function( event, handlers ) { 16055 var i, handleObj, sel, matchedHandlers, matchedSelectors, 16056 handlerQueue = [], 16057 delegateCount = handlers.delegateCount, 16058 cur = event.target; 16059 16060 // Find delegate handlers 16061 if ( delegateCount && 16062 16063 // Support: IE <=9 16064 // Black-hole SVG <use> instance trees (trac-13180) 16065 cur.nodeType && 16066 16067 // Support: Firefox <=42 16068 // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) 16069 // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click 16070 // Support: IE 11 only 16071 // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) 16072 !( event.type === "click" && event.button >= 1 ) ) { 16073 16074 for ( ; cur !== this; cur = cur.parentNode || this ) { 16075 16076 // Don't check non-elements (#13208) 16077 // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) 16078 if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { 16079 matchedHandlers = []; 16080 matchedSelectors = {}; 16081 for ( i = 0; i < delegateCount; i++ ) { 16082 handleObj = handlers[ i ]; 16083 16084 // Don't conflict with Object.prototype properties (#13203) 16085 sel = handleObj.selector + " "; 16086 16087 if ( matchedSelectors[ sel ] === undefined ) { 16088 matchedSelectors[ sel ] = handleObj.needsContext ? 16089 jQuery( sel, this ).index( cur ) > -1 : 16090 jQuery.find( sel, this, null, [ cur ] ).length; 16091 } 16092 if ( matchedSelectors[ sel ] ) { 16093 matchedHandlers.push( handleObj ); 16094 } 16095 } 16096 if ( matchedHandlers.length ) { 16097 handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); 16098 } 16099 } 16100 } 16101 } 16102 16103 // Add the remaining (directly-bound) handlers 16104 cur = this; 16105 if ( delegateCount < handlers.length ) { 16106 handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); 16107 } 16108 16109 return handlerQueue; 16110 }, 16111 16112 addProp: function( name, hook ) { 16113 Object.defineProperty( jQuery.Event.prototype, name, { 16114 enumerable: true, 16115 configurable: true, 16116 16117 get: isFunction( hook ) ? 16118 function() { 16119 if ( this.originalEvent ) { 16120 return hook( this.originalEvent ); 16121 } 16122 } : 16123 function() { 16124 if ( this.originalEvent ) { 16125 return this.originalEvent[ name ]; 16126 } 16127 }, 16128 16129 set: function( value ) { 16130 Object.defineProperty( this, name, { 16131 enumerable: true, 16132 configurable: true, 16133 writable: true, 16134 value: value 16135 } ); 16136 } 16137 } ); 16138 }, 16139 16140 fix: function( originalEvent ) { 16141 return originalEvent[ jQuery.expando ] ? 16142 originalEvent : 16143 new jQuery.Event( originalEvent ); 16144 }, 16145 16146 special: { 16147 load: { 16148 16149 // Prevent triggered image.load events from bubbling to window.load 16150 noBubble: true 16151 }, 16152 focus: { 16153 16154 // Fire native event if possible so blur/focus sequence is correct 16155 trigger: function() { 16156 if ( this !== safeActiveElement() && this.focus ) { 16157 this.focus(); 16158 return false; 16159 } 16160 }, 16161 delegateType: "focusin" 16162 }, 16163 blur: { 16164 trigger: function() { 16165 if ( this === safeActiveElement() && this.blur ) { 16166 this.blur(); 16167 return false; 16168 } 16169 }, 16170 delegateType: "focusout" 16171 }, 16172 click: { 16173 16174 // For checkbox, fire native event so checked state will be right 16175 trigger: function() { 16176 if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { 16177 this.click(); 16178 return false; 16179 } 16180 }, 16181 16182 // For cross-browser consistency, don't fire native .click() on links 16183 _default: function( event ) { 16184 return nodeName( event.target, "a" ); 16185 } 16186 }, 16187 16188 beforeunload: { 16189 postDispatch: function( event ) { 16190 16191 // Support: Firefox 20+ 16192 // Firefox doesn't alert if the returnValue field is not set. 16193 if ( event.result !== undefined && event.originalEvent ) { 16194 event.originalEvent.returnValue = event.result; 16195 } 16196 } 16197 } 16198 } 16199}; 16200 16201jQuery.removeEvent = function( elem, type, handle ) { 16202 16203 // This "if" is needed for plain objects 16204 if ( elem.removeEventListener ) { 16205 elem.removeEventListener( type, handle ); 16206 } 16207}; 16208 16209jQuery.Event = function( src, props ) { 16210 16211 // Allow instantiation without the 'new' keyword 16212 if ( !( this instanceof jQuery.Event ) ) { 16213 return new jQuery.Event( src, props ); 16214 } 16215 16216 // Event object 16217 if ( src && src.type ) { 16218 this.originalEvent = src; 16219 this.type = src.type; 16220 16221 // Events bubbling up the document may have been marked as prevented 16222 // by a handler lower down the tree; reflect the correct value. 16223 this.isDefaultPrevented = src.defaultPrevented || 16224 src.defaultPrevented === undefined && 16225 16226 // Support: Android <=2.3 only 16227 src.returnValue === false ? 16228 returnTrue : 16229 returnFalse; 16230 16231 // Create target properties 16232 // Support: Safari <=6 - 7 only 16233 // Target should not be a text node (#504, #13143) 16234 this.target = ( src.target && src.target.nodeType === 3 ) ? 16235 src.target.parentNode : 16236 src.target; 16237 16238 this.currentTarget = src.currentTarget; 16239 this.relatedTarget = src.relatedTarget; 16240 16241 // Event type 16242 } else { 16243 this.type = src; 16244 } 16245 16246 // Put explicitly provided properties onto the event object 16247 if ( props ) { 16248 jQuery.extend( this, props ); 16249 } 16250 16251 // Create a timestamp if incoming event doesn't have one 16252 this.timeStamp = src && src.timeStamp || Date.now(); 16253 16254 // Mark it as fixed 16255 this[ jQuery.expando ] = true; 16256}; 16257 16258// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding 16259// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html 16260jQuery.Event.prototype = { 16261 constructor: jQuery.Event, 16262 isDefaultPrevented: returnFalse, 16263 isPropagationStopped: returnFalse, 16264 isImmediatePropagationStopped: returnFalse, 16265 isSimulated: false, 16266 16267 preventDefault: function() { 16268 var e = this.originalEvent; 16269 16270 this.isDefaultPrevented = returnTrue; 16271 16272 if ( e && !this.isSimulated ) { 16273 e.preventDefault(); 16274 } 16275 }, 16276 stopPropagation: function() { 16277 var e = this.originalEvent; 16278 16279 this.isPropagationStopped = returnTrue; 16280 16281 if ( e && !this.isSimulated ) { 16282 e.stopPropagation(); 16283 } 16284 }, 16285 stopImmediatePropagation: function() { 16286 var e = this.originalEvent; 16287 16288 this.isImmediatePropagationStopped = returnTrue; 16289 16290 if ( e && !this.isSimulated ) { 16291 e.stopImmediatePropagation(); 16292 } 16293 16294 this.stopPropagation(); 16295 } 16296}; 16297 16298// Includes all common event props including KeyEvent and MouseEvent specific props 16299jQuery.each( { 16300 altKey: true, 16301 bubbles: true, 16302 cancelable: true, 16303 changedTouches: true, 16304 ctrlKey: true, 16305 detail: true, 16306 eventPhase: true, 16307 metaKey: true, 16308 pageX: true, 16309 pageY: true, 16310 shiftKey: true, 16311 view: true, 16312 "char": true, 16313 charCode: true, 16314 key: true, 16315 keyCode: true, 16316 button: true, 16317 buttons: true, 16318 clientX: true, 16319 clientY: true, 16320 offsetX: true, 16321 offsetY: true, 16322 pointerId: true, 16323 pointerType: true, 16324 screenX: true, 16325 screenY: true, 16326 targetTouches: true, 16327 toElement: true, 16328 touches: true, 16329 16330 which: function( event ) { 16331 var button = event.button; 16332 16333 // Add which for key events 16334 if ( event.which == null && rkeyEvent.test( event.type ) ) { 16335 return event.charCode != null ? event.charCode : event.keyCode; 16336 } 16337 16338 // Add which for click: 1 === left; 2 === middle; 3 === right 16339 if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { 16340 if ( button & 1 ) { 16341 return 1; 16342 } 16343 16344 if ( button & 2 ) { 16345 return 3; 16346 } 16347 16348 if ( button & 4 ) { 16349 return 2; 16350 } 16351 16352 return 0; 16353 } 16354 16355 return event.which; 16356 } 16357}, jQuery.event.addProp ); 16358 16359// Create mouseenter/leave events using mouseover/out and event-time checks 16360// so that event delegation works in jQuery. 16361// Do the same for pointerenter/pointerleave and pointerover/pointerout 16362// 16363// Support: Safari 7 only 16364// Safari sends mouseenter too often; see: 16365// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 16366// for the description of the bug (it existed in older Chrome versions as well). 16367jQuery.each( { 16368 mouseenter: "mouseover", 16369 mouseleave: "mouseout", 16370 pointerenter: "pointerover", 16371 pointerleave: "pointerout" 16372}, function( orig, fix ) { 16373 jQuery.event.special[ orig ] = { 16374 delegateType: fix, 16375 bindType: fix, 16376 16377 handle: function( event ) { 16378 var ret, 16379 target = this, 16380 related = event.relatedTarget, 16381 handleObj = event.handleObj; 16382 16383 // For mouseenter/leave call the handler if related is outside the target. 16384 // NB: No relatedTarget if the mouse left/entered the browser window 16385 if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { 16386 event.type = handleObj.origType; 16387 ret = handleObj.handler.apply( this, arguments ); 16388 event.type = fix; 16389 } 16390 return ret; 16391 } 16392 }; 16393} ); 16394 16395jQuery.fn.extend( { 16396 16397 on: function( types, selector, data, fn ) { 16398 return on( this, types, selector, data, fn ); 16399 }, 16400 one: function( types, selector, data, fn ) { 16401 return on( this, types, selector, data, fn, 1 ); 16402 }, 16403 off: function( types, selector, fn ) { 16404 var handleObj, type; 16405 if ( types && types.preventDefault && types.handleObj ) { 16406 16407 // ( event ) dispatched jQuery.Event 16408 handleObj = types.handleObj; 16409 jQuery( types.delegateTarget ).off( 16410 handleObj.namespace ? 16411 handleObj.origType + "." + handleObj.namespace : 16412 handleObj.origType, 16413 handleObj.selector, 16414 handleObj.handler 16415 ); 16416 return this; 16417 } 16418 if ( typeof types === "object" ) { 16419 16420 // ( types-object [, selector] ) 16421 for ( type in types ) { 16422 this.off( type, selector, types[ type ] ); 16423 } 16424 return this; 16425 } 16426 if ( selector === false || typeof selector === "function" ) { 16427 16428 // ( types [, fn] ) 16429 fn = selector; 16430 selector = undefined; 16431 } 16432 if ( fn === false ) { 16433 fn = returnFalse; 16434 } 16435 return this.each( function() { 16436 jQuery.event.remove( this, types, fn, selector ); 16437 } ); 16438 } 16439} ); 16440 16441 16442var 16443 16444 /* eslint-disable max-len */ 16445 16446 // See https://github.com/eslint/eslint/issues/3229 16447 rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, 16448 16449 /* eslint-enable */ 16450 16451 // Support: IE <=10 - 11, Edge 12 - 13 only 16452 // In IE/Edge using regex groups here causes severe slowdowns. 16453 // See https://connect.microsoft.com/IE/feedback/details/1736512/ 16454 rnoInnerhtml = /<script|<style|<link/i, 16455 16456 // checked="checked" or checked 16457 rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, 16458 rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; 16459 16460// Prefer a tbody over its parent table for containing new rows 16461function manipulationTarget( elem, content ) { 16462 if ( nodeName( elem, "table" ) && 16463 nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { 16464 16465 return jQuery( elem ).children( "tbody" )[ 0 ] || elem; 16466 } 16467 16468 return elem; 16469} 16470 16471// Replace/restore the type attribute of script elements for safe DOM manipulation 16472function disableScript( elem ) { 16473 elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; 16474 return elem; 16475} 16476function restoreScript( elem ) { 16477 if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { 16478 elem.type = elem.type.slice( 5 ); 16479 } else { 16480 elem.removeAttribute( "type" ); 16481 } 16482 16483 return elem; 16484} 16485 16486function cloneCopyEvent( src, dest ) { 16487 var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; 16488 16489 if ( dest.nodeType !== 1 ) { 16490 return; 16491 } 16492 16493 // 1. Copy private data: events, handlers, etc. 16494 if ( dataPriv.hasData( src ) ) { 16495 pdataOld = dataPriv.access( src ); 16496 pdataCur = dataPriv.set( dest, pdataOld ); 16497 events = pdataOld.events; 16498 16499 if ( events ) { 16500 delete pdataCur.handle; 16501 pdataCur.events = {}; 16502 16503 for ( type in events ) { 16504 for ( i = 0, l = events[ type ].length; i < l; i++ ) { 16505 jQuery.event.add( dest, type, events[ type ][ i ] ); 16506 } 16507 } 16508 } 16509 } 16510 16511 // 2. Copy user data 16512 if ( dataUser.hasData( src ) ) { 16513 udataOld = dataUser.access( src ); 16514 udataCur = jQuery.extend( {}, udataOld ); 16515 16516 dataUser.set( dest, udataCur ); 16517 } 16518} 16519 16520// Fix IE bugs, see support tests 16521function fixInput( src, dest ) { 16522 var nodeName = dest.nodeName.toLowerCase(); 16523 16524 // Fails to persist the checked state of a cloned checkbox or radio button. 16525 if ( nodeName === "input" && rcheckableType.test( src.type ) ) { 16526 dest.checked = src.checked; 16527 16528 // Fails to return the selected option to the default selected state when cloning options 16529 } else if ( nodeName === "input" || nodeName === "textarea" ) { 16530 dest.defaultValue = src.defaultValue; 16531 } 16532} 16533 16534function domManip( collection, args, callback, ignored ) { 16535 16536 // Flatten any nested arrays 16537 args = concat.apply( [], args ); 16538 16539 var fragment, first, scripts, hasScripts, node, doc, 16540 i = 0, 16541 l = collection.length, 16542 iNoClone = l - 1, 16543 value = args[ 0 ], 16544 valueIsFunction = isFunction( value ); 16545 16546 // We can't cloneNode fragments that contain checked, in WebKit 16547 if ( valueIsFunction || 16548 ( l > 1 && typeof value === "string" && 16549 !support.checkClone && rchecked.test( value ) ) ) { 16550 return collection.each( function( index ) { 16551 var self = collection.eq( index ); 16552 if ( valueIsFunction ) { 16553 args[ 0 ] = value.call( this, index, self.html() ); 16554 } 16555 domManip( self, args, callback, ignored ); 16556 } ); 16557 } 16558 16559 if ( l ) { 16560 fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); 16561 first = fragment.firstChild; 16562 16563 if ( fragment.childNodes.length === 1 ) { 16564 fragment = first; 16565 } 16566 16567 // Require either new content or an interest in ignored elements to invoke the callback 16568 if ( first || ignored ) { 16569 scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); 16570 hasScripts = scripts.length; 16571 16572 // Use the original fragment for the last item 16573 // instead of the first because it can end up 16574 // being emptied incorrectly in certain situations (#8070). 16575 for ( ; i < l; i++ ) { 16576 node = fragment; 16577 16578 if ( i !== iNoClone ) { 16579 node = jQuery.clone( node, true, true ); 16580 16581 // Keep references to cloned scripts for later restoration 16582 if ( hasScripts ) { 16583 16584 // Support: Android <=4.0 only, PhantomJS 1 only 16585 // push.apply(_, arraylike) throws on ancient WebKit 16586 jQuery.merge( scripts, getAll( node, "script" ) ); 16587 } 16588 } 16589 16590 callback.call( collection[ i ], node, i ); 16591 } 16592 16593 if ( hasScripts ) { 16594 doc = scripts[ scripts.length - 1 ].ownerDocument; 16595 16596 // Reenable scripts 16597 jQuery.map( scripts, restoreScript ); 16598 16599 // Evaluate executable scripts on first document insertion 16600 for ( i = 0; i < hasScripts; i++ ) { 16601 node = scripts[ i ]; 16602 if ( rscriptType.test( node.type || "" ) && 16603 !dataPriv.access( node, "globalEval" ) && 16604 jQuery.contains( doc, node ) ) { 16605 16606 if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { 16607 16608 // Optional AJAX dependency, but won't run scripts if not present 16609 if ( jQuery._evalUrl ) { 16610 jQuery._evalUrl( node.src ); 16611 } 16612 } else { 16613 DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node ); 16614 } 16615 } 16616 } 16617 } 16618 } 16619 } 16620 16621 return collection; 16622} 16623 16624function remove( elem, selector, keepData ) { 16625 var node, 16626 nodes = selector ? jQuery.filter( selector, elem ) : elem, 16627 i = 0; 16628 16629 for ( ; ( node = nodes[ i ] ) != null; i++ ) { 16630 if ( !keepData && node.nodeType === 1 ) { 16631 jQuery.cleanData( getAll( node ) ); 16632 } 16633 16634 if ( node.parentNode ) { 16635 if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { 16636 setGlobalEval( getAll( node, "script" ) ); 16637 } 16638 node.parentNode.removeChild( node ); 16639 } 16640 } 16641 16642 return elem; 16643} 16644 16645jQuery.extend( { 16646 htmlPrefilter: function( html ) { 16647 return html.replace( rxhtmlTag, "<$1></$2>" ); 16648 }, 16649 16650 clone: function( elem, dataAndEvents, deepDataAndEvents ) { 16651 var i, l, srcElements, destElements, 16652 clone = elem.cloneNode( true ), 16653 inPage = jQuery.contains( elem.ownerDocument, elem ); 16654 16655 // Fix IE cloning issues 16656 if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && 16657 !jQuery.isXMLDoc( elem ) ) { 16658 16659 // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 16660 destElements = getAll( clone ); 16661 srcElements = getAll( elem ); 16662 16663 for ( i = 0, l = srcElements.length; i < l; i++ ) { 16664 fixInput( srcElements[ i ], destElements[ i ] ); 16665 } 16666 } 16667 16668 // Copy the events from the original to the clone 16669 if ( dataAndEvents ) { 16670 if ( deepDataAndEvents ) { 16671 srcElements = srcElements || getAll( elem ); 16672 destElements = destElements || getAll( clone ); 16673 16674 for ( i = 0, l = srcElements.length; i < l; i++ ) { 16675 cloneCopyEvent( srcElements[ i ], destElements[ i ] ); 16676 } 16677 } else { 16678 cloneCopyEvent( elem, clone ); 16679 } 16680 } 16681 16682 // Preserve script evaluation history 16683 destElements = getAll( clone, "script" ); 16684 if ( destElements.length > 0 ) { 16685 setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); 16686 } 16687 16688 // Return the cloned set 16689 return clone; 16690 }, 16691 16692 cleanData: function( elems ) { 16693 var data, elem, type, 16694 special = jQuery.event.special, 16695 i = 0; 16696 16697 for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { 16698 if ( acceptData( elem ) ) { 16699 if ( ( data = elem[ dataPriv.expando ] ) ) { 16700 if ( data.events ) { 16701 for ( type in data.events ) { 16702 if ( special[ type ] ) { 16703 jQuery.event.remove( elem, type ); 16704 16705 // This is a shortcut to avoid jQuery.event.remove's overhead 16706 } else { 16707 jQuery.removeEvent( elem, type, data.handle ); 16708 } 16709 } 16710 } 16711 16712 // Support: Chrome <=35 - 45+ 16713 // Assign undefined instead of using delete, see Data#remove 16714 elem[ dataPriv.expando ] = undefined; 16715 } 16716 if ( elem[ dataUser.expando ] ) { 16717 16718 // Support: Chrome <=35 - 45+ 16719 // Assign undefined instead of using delete, see Data#remove 16720 elem[ dataUser.expando ] = undefined; 16721 } 16722 } 16723 } 16724 } 16725} ); 16726 16727jQuery.fn.extend( { 16728 detach: function( selector ) { 16729 return remove( this, selector, true ); 16730 }, 16731 16732 remove: function( selector ) { 16733 return remove( this, selector ); 16734 }, 16735 16736 text: function( value ) { 16737 return access( this, function( value ) { 16738 return value === undefined ? 16739 jQuery.text( this ) : 16740 this.empty().each( function() { 16741 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 16742 this.textContent = value; 16743 } 16744 } ); 16745 }, null, value, arguments.length ); 16746 }, 16747 16748 append: function() { 16749 return domManip( this, arguments, function( elem ) { 16750 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 16751 var target = manipulationTarget( this, elem ); 16752 target.appendChild( elem ); 16753 } 16754 } ); 16755 }, 16756 16757 prepend: function() { 16758 return domManip( this, arguments, function( elem ) { 16759 if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { 16760 var target = manipulationTarget( this, elem ); 16761 target.insertBefore( elem, target.firstChild ); 16762 } 16763 } ); 16764 }, 16765 16766 before: function() { 16767 return domManip( this, arguments, function( elem ) { 16768 if ( this.parentNode ) { 16769 this.parentNode.insertBefore( elem, this ); 16770 } 16771 } ); 16772 }, 16773 16774 after: function() { 16775 return domManip( this, arguments, function( elem ) { 16776 if ( this.parentNode ) { 16777 this.parentNode.insertBefore( elem, this.nextSibling ); 16778 } 16779 } ); 16780 }, 16781 16782 empty: function() { 16783 var elem, 16784 i = 0; 16785 16786 for ( ; ( elem = this[ i ] ) != null; i++ ) { 16787 if ( elem.nodeType === 1 ) { 16788 16789 // Prevent memory leaks 16790 jQuery.cleanData( getAll( elem, false ) ); 16791 16792 // Remove any remaining nodes 16793 elem.textContent = ""; 16794 } 16795 } 16796 16797 return this; 16798 }, 16799 16800 clone: function( dataAndEvents, deepDataAndEvents ) { 16801 dataAndEvents = dataAndEvents == null ? false : dataAndEvents; 16802 deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; 16803 16804 return this.map( function() { 16805 return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); 16806 } ); 16807 }, 16808 16809 html: function( value ) { 16810 return access( this, function( value ) { 16811 var elem = this[ 0 ] || {}, 16812 i = 0, 16813 l = this.length; 16814 16815 if ( value === undefined && elem.nodeType === 1 ) { 16816 return elem.innerHTML; 16817 } 16818 16819 // See if we can take a shortcut and just use innerHTML 16820 if ( typeof value === "string" && !rnoInnerhtml.test( value ) && 16821 !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { 16822 16823 value = jQuery.htmlPrefilter( value ); 16824 16825 try { 16826 for ( ; i < l; i++ ) { 16827 elem = this[ i ] || {}; 16828 16829 // Remove element nodes and prevent memory leaks 16830 if ( elem.nodeType === 1 ) { 16831 jQuery.cleanData( getAll( elem, false ) ); 16832 elem.innerHTML = value; 16833 } 16834 } 16835 16836 elem = 0; 16837 16838 // If using innerHTML throws an exception, use the fallback method 16839 } catch ( e ) {} 16840 } 16841 16842 if ( elem ) { 16843 this.empty().append( value ); 16844 } 16845 }, null, value, arguments.length ); 16846 }, 16847 16848 replaceWith: function() { 16849 var ignored = []; 16850 16851 // Make the changes, replacing each non-ignored context element with the new content 16852 return domManip( this, arguments, function( elem ) { 16853 var parent = this.parentNode; 16854 16855 if ( jQuery.inArray( this, ignored ) < 0 ) { 16856 jQuery.cleanData( getAll( this ) ); 16857 if ( parent ) { 16858 parent.replaceChild( elem, this ); 16859 } 16860 } 16861 16862 // Force callback invocation 16863 }, ignored ); 16864 } 16865} ); 16866 16867jQuery.each( { 16868 appendTo: "append", 16869 prependTo: "prepend", 16870 insertBefore: "before", 16871 insertAfter: "after", 16872 replaceAll: "replaceWith" 16873}, function( name, original ) { 16874 jQuery.fn[ name ] = function( selector ) { 16875 var elems, 16876 ret = [], 16877 insert = jQuery( selector ), 16878 last = insert.length - 1, 16879 i = 0; 16880 16881 for ( ; i <= last; i++ ) { 16882 elems = i === last ? this : this.clone( true ); 16883 jQuery( insert[ i ] )[ original ]( elems ); 16884 16885 // Support: Android <=4.0 only, PhantomJS 1 only 16886 // .get() because push.apply(_, arraylike) throws on ancient WebKit 16887 push.apply( ret, elems.get() ); 16888 } 16889 16890 return this.pushStack( ret ); 16891 }; 16892} ); 16893var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 16894 16895var getStyles = function( elem ) { 16896 16897 // Support: IE <=11 only, Firefox <=30 (#15098, #14150) 16898 // IE throws on elements created in popups 16899 // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 16900 var view = elem.ownerDocument.defaultView; 16901 16902 if ( !view || !view.opener ) { 16903 view = window; 16904 } 16905 16906 return view.getComputedStyle( elem ); 16907 }; 16908 16909var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); 16910 16911 16912 16913( function() { 16914 16915 // Executing both pixelPosition & boxSizingReliable tests require only one layout 16916 // so they're executed at the same time to save the second computation. 16917 function computeStyleTests() { 16918 16919 // This is a singleton, we need to execute it only once 16920 if ( !div ) { 16921 return; 16922 } 16923 16924 container.style.cssText = "position:absolute;left:-11111px;width:60px;" + 16925 "margin-top:1px;padding:0;border:0"; 16926 div.style.cssText = 16927 "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + 16928 "margin:auto;border:1px;padding:1px;" + 16929 "width:60%;top:1%"; 16930 documentElement.appendChild( container ).appendChild( div ); 16931 16932 var divStyle = window.getComputedStyle( div ); 16933 pixelPositionVal = divStyle.top !== "1%"; 16934 16935 // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 16936 reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; 16937 16938 // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 16939 // Some styles come back with percentage values, even though they shouldn't 16940 div.style.right = "60%"; 16941 pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; 16942 16943 // Support: IE 9 - 11 only 16944 // Detect misreporting of content dimensions for box-sizing:border-box elements 16945 boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; 16946 16947 // Support: IE 9 only 16948 // Detect overflow:scroll screwiness (gh-3699) 16949 div.style.position = "absolute"; 16950 scrollboxSizeVal = div.offsetWidth === 36 || "absolute"; 16951 16952 documentElement.removeChild( container ); 16953 16954 // Nullify the div so it wouldn't be stored in the memory and 16955 // it will also be a sign that checks already performed 16956 div = null; 16957 } 16958 16959 function roundPixelMeasures( measure ) { 16960 return Math.round( parseFloat( measure ) ); 16961 } 16962 16963 var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, 16964 reliableMarginLeftVal, 16965 container = document.createElement( "div" ), 16966 div = document.createElement( "div" ); 16967 16968 // Finish early in limited (non-browser) environments 16969 if ( !div.style ) { 16970 return; 16971 } 16972 16973 // Support: IE <=9 - 11 only 16974 // Style of cloned element affects source element cloned (#8908) 16975 div.style.backgroundClip = "content-box"; 16976 div.cloneNode( true ).style.backgroundClip = ""; 16977 support.clearCloneStyle = div.style.backgroundClip === "content-box"; 16978 16979 jQuery.extend( support, { 16980 boxSizingReliable: function() { 16981 computeStyleTests(); 16982 return boxSizingReliableVal; 16983 }, 16984 pixelBoxStyles: function() { 16985 computeStyleTests(); 16986 return pixelBoxStylesVal; 16987 }, 16988 pixelPosition: function() { 16989 computeStyleTests(); 16990 return pixelPositionVal; 16991 }, 16992 reliableMarginLeft: function() { 16993 computeStyleTests(); 16994 return reliableMarginLeftVal; 16995 }, 16996 scrollboxSize: function() { 16997 computeStyleTests(); 16998 return scrollboxSizeVal; 16999 } 17000 } ); 17001} )(); 17002 17003 17004function curCSS( elem, name, computed ) { 17005 var width, minWidth, maxWidth, ret, 17006 17007 // Support: Firefox 51+ 17008 // Retrieving style before computed somehow 17009 // fixes an issue with getting wrong values 17010 // on detached elements 17011 style = elem.style; 17012 17013 computed = computed || getStyles( elem ); 17014 17015 // getPropertyValue is needed for: 17016 // .css('filter') (IE 9 only, #12537) 17017 // .css('--customProperty) (#3144) 17018 if ( computed ) { 17019 ret = computed.getPropertyValue( name ) || computed[ name ]; 17020 17021 if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { 17022 ret = jQuery.style( elem, name ); 17023 } 17024 17025 // A tribute to the "awesome hack by Dean Edwards" 17026 // Android Browser returns percentage for some values, 17027 // but width seems to be reliably pixels. 17028 // This is against the CSSOM draft spec: 17029 // https://drafts.csswg.org/cssom/#resolved-values 17030 if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { 17031 17032 // Remember the original values 17033 width = style.width; 17034 minWidth = style.minWidth; 17035 maxWidth = style.maxWidth; 17036 17037 // Put in the new values to get a computed value out 17038 style.minWidth = style.maxWidth = style.width = ret; 17039 ret = computed.width; 17040 17041 // Revert the changed values 17042 style.width = width; 17043 style.minWidth = minWidth; 17044 style.maxWidth = maxWidth; 17045 } 17046 } 17047 17048 return ret !== undefined ? 17049 17050 // Support: IE <=9 - 11 only 17051 // IE returns zIndex value as an integer. 17052 ret + "" : 17053 ret; 17054} 17055 17056 17057function addGetHookIf( conditionFn, hookFn ) { 17058 17059 // Define the hook, we'll check on the first run if it's really needed. 17060 return { 17061 get: function() { 17062 if ( conditionFn() ) { 17063 17064 // Hook not needed (or it's not possible to use it due 17065 // to missing dependency), remove it. 17066 delete this.get; 17067 return; 17068 } 17069 17070 // Hook needed; redefine it so that the support test is not executed again. 17071 return ( this.get = hookFn ).apply( this, arguments ); 17072 } 17073 }; 17074} 17075 17076 17077var 17078 17079 // Swappable if display is none or starts with table 17080 // except "table", "table-cell", or "table-caption" 17081 // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display 17082 rdisplayswap = /^(none|table(?!-c[ea]).+)/, 17083 rcustomProp = /^--/, 17084 cssShow = { position: "absolute", visibility: "hidden", display: "block" }, 17085 cssNormalTransform = { 17086 letterSpacing: "0", 17087 fontWeight: "400" 17088 }, 17089 17090 cssPrefixes = [ "Webkit", "Moz", "ms" ], 17091 emptyStyle = document.createElement( "div" ).style; 17092 17093// Return a css property mapped to a potentially vendor prefixed property 17094function vendorPropName( name ) { 17095 17096 // Shortcut for names that are not vendor prefixed 17097 if ( name in emptyStyle ) { 17098 return name; 17099 } 17100 17101 // Check for vendor prefixed names 17102 var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), 17103 i = cssPrefixes.length; 17104 17105 while ( i-- ) { 17106 name = cssPrefixes[ i ] + capName; 17107 if ( name in emptyStyle ) { 17108 return name; 17109 } 17110 } 17111} 17112 17113// Return a property mapped along what jQuery.cssProps suggests or to 17114// a vendor prefixed property. 17115function finalPropName( name ) { 17116 var ret = jQuery.cssProps[ name ]; 17117 if ( !ret ) { 17118 ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; 17119 } 17120 return ret; 17121} 17122 17123function setPositiveNumber( elem, value, subtract ) { 17124 17125 // Any relative (+/-) values have already been 17126 // normalized at this point 17127 var matches = rcssNum.exec( value ); 17128 return matches ? 17129 17130 // Guard against undefined "subtract", e.g., when used as in cssHooks 17131 Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : 17132 value; 17133} 17134 17135function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { 17136 var i = dimension === "width" ? 1 : 0, 17137 extra = 0, 17138 delta = 0; 17139 17140 // Adjustment may not be necessary 17141 if ( box === ( isBorderBox ? "border" : "content" ) ) { 17142 return 0; 17143 } 17144 17145 for ( ; i < 4; i += 2 ) { 17146 17147 // Both box models exclude margin 17148 if ( box === "margin" ) { 17149 delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); 17150 } 17151 17152 // If we get here with a content-box, we're seeking "padding" or "border" or "margin" 17153 if ( !isBorderBox ) { 17154 17155 // Add padding 17156 delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); 17157 17158 // For "border" or "margin", add border 17159 if ( box !== "padding" ) { 17160 delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 17161 17162 // But still keep track of it otherwise 17163 } else { 17164 extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 17165 } 17166 17167 // If we get here with a border-box (content + padding + border), we're seeking "content" or 17168 // "padding" or "margin" 17169 } else { 17170 17171 // For "content", subtract padding 17172 if ( box === "content" ) { 17173 delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); 17174 } 17175 17176 // For "content" or "padding", subtract border 17177 if ( box !== "margin" ) { 17178 delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); 17179 } 17180 } 17181 } 17182 17183 // Account for positive content-box scroll gutter when requested by providing computedVal 17184 if ( !isBorderBox && computedVal >= 0 ) { 17185 17186 // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border 17187 // Assuming integer scroll gutter, subtract the rest and round down 17188 delta += Math.max( 0, Math.ceil( 17189 elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - 17190 computedVal - 17191 delta - 17192 extra - 17193 0.5 17194 ) ); 17195 } 17196 17197 return delta; 17198} 17199 17200function getWidthOrHeight( elem, dimension, extra ) { 17201 17202 // Start with computed style 17203 var styles = getStyles( elem ), 17204 val = curCSS( elem, dimension, styles ), 17205 isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", 17206 valueIsBorderBox = isBorderBox; 17207 17208 // Support: Firefox <=54 17209 // Return a confounding non-pixel value or feign ignorance, as appropriate. 17210 if ( rnumnonpx.test( val ) ) { 17211 if ( !extra ) { 17212 return val; 17213 } 17214 val = "auto"; 17215 } 17216 17217 // Check for style in case a browser which returns unreliable values 17218 // for getComputedStyle silently falls back to the reliable elem.style 17219 valueIsBorderBox = valueIsBorderBox && 17220 ( support.boxSizingReliable() || val === elem.style[ dimension ] ); 17221 17222 // Fall back to offsetWidth/offsetHeight when value is "auto" 17223 // This happens for inline elements with no explicit setting (gh-3571) 17224 // Support: Android <=4.1 - 4.3 only 17225 // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) 17226 if ( val === "auto" || 17227 !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) { 17228 17229 val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ]; 17230 17231 // offsetWidth/offsetHeight provide border-box values 17232 valueIsBorderBox = true; 17233 } 17234 17235 // Normalize "" and auto 17236 val = parseFloat( val ) || 0; 17237 17238 // Adjust for the element's box model 17239 return ( val + 17240 boxModelAdjustment( 17241 elem, 17242 dimension, 17243 extra || ( isBorderBox ? "border" : "content" ), 17244 valueIsBorderBox, 17245 styles, 17246 17247 // Provide the current computed size to request scroll gutter calculation (gh-3589) 17248 val 17249 ) 17250 ) + "px"; 17251} 17252 17253jQuery.extend( { 17254 17255 // Add in style property hooks for overriding the default 17256 // behavior of getting and setting a style property 17257 cssHooks: { 17258 opacity: { 17259 get: function( elem, computed ) { 17260 if ( computed ) { 17261 17262 // We should always get a number back from opacity 17263 var ret = curCSS( elem, "opacity" ); 17264 return ret === "" ? "1" : ret; 17265 } 17266 } 17267 } 17268 }, 17269 17270 // Don't automatically add "px" to these possibly-unitless properties 17271 cssNumber: { 17272 "animationIterationCount": true, 17273 "columnCount": true, 17274 "fillOpacity": true, 17275 "flexGrow": true, 17276 "flexShrink": true, 17277 "fontWeight": true, 17278 "lineHeight": true, 17279 "opacity": true, 17280 "order": true, 17281 "orphans": true, 17282 "widows": true, 17283 "zIndex": true, 17284 "zoom": true 17285 }, 17286 17287 // Add in properties whose names you wish to fix before 17288 // setting or getting the value 17289 cssProps: {}, 17290 17291 // Get and set the style property on a DOM Node 17292 style: function( elem, name, value, extra ) { 17293 17294 // Don't set styles on text and comment nodes 17295 if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { 17296 return; 17297 } 17298 17299 // Make sure that we're working with the right name 17300 var ret, type, hooks, 17301 origName = camelCase( name ), 17302 isCustomProp = rcustomProp.test( name ), 17303 style = elem.style; 17304 17305 // Make sure that we're working with the right name. We don't 17306 // want to query the value if it is a CSS custom property 17307 // since they are user-defined. 17308 if ( !isCustomProp ) { 17309 name = finalPropName( origName ); 17310 } 17311 17312 // Gets hook for the prefixed version, then unprefixed version 17313 hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; 17314 17315 // Check if we're setting a value 17316 if ( value !== undefined ) { 17317 type = typeof value; 17318 17319 // Convert "+=" or "-=" to relative numbers (#7345) 17320 if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { 17321 value = adjustCSS( elem, name, ret ); 17322 17323 // Fixes bug #9237 17324 type = "number"; 17325 } 17326 17327 // Make sure that null and NaN values aren't set (#7116) 17328 if ( value == null || value !== value ) { 17329 return; 17330 } 17331 17332 // If a number was passed in, add the unit (except for certain CSS properties) 17333 if ( type === "number" ) { 17334 value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); 17335 } 17336 17337 // background-* props affect original clone's values 17338 if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { 17339 style[ name ] = "inherit"; 17340 } 17341 17342 // If a hook was provided, use that value, otherwise just set the specified value 17343 if ( !hooks || !( "set" in hooks ) || 17344 ( value = hooks.set( elem, value, extra ) ) !== undefined ) { 17345 17346 if ( isCustomProp ) { 17347 style.setProperty( name, value ); 17348 } else { 17349 style[ name ] = value; 17350 } 17351 } 17352 17353 } else { 17354 17355 // If a hook was provided get the non-computed value from there 17356 if ( hooks && "get" in hooks && 17357 ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { 17358 17359 return ret; 17360 } 17361 17362 // Otherwise just get the value from the style object 17363 return style[ name ]; 17364 } 17365 }, 17366 17367 css: function( elem, name, extra, styles ) { 17368 var val, num, hooks, 17369 origName = camelCase( name ), 17370 isCustomProp = rcustomProp.test( name ); 17371 17372 // Make sure that we're working with the right name. We don't 17373 // want to modify the value if it is a CSS custom property 17374 // since they are user-defined. 17375 if ( !isCustomProp ) { 17376 name = finalPropName( origName ); 17377 } 17378 17379 // Try prefixed name followed by the unprefixed name 17380 hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; 17381 17382 // If a hook was provided get the computed value from there 17383 if ( hooks && "get" in hooks ) { 17384 val = hooks.get( elem, true, extra ); 17385 } 17386 17387 // Otherwise, if a way to get the computed value exists, use that 17388 if ( val === undefined ) { 17389 val = curCSS( elem, name, styles ); 17390 } 17391 17392 // Convert "normal" to computed value 17393 if ( val === "normal" && name in cssNormalTransform ) { 17394 val = cssNormalTransform[ name ]; 17395 } 17396 17397 // Make numeric if forced or a qualifier was provided and val looks numeric 17398 if ( extra === "" || extra ) { 17399 num = parseFloat( val ); 17400 return extra === true || isFinite( num ) ? num || 0 : val; 17401 } 17402 17403 return val; 17404 } 17405} ); 17406 17407jQuery.each( [ "height", "width" ], function( i, dimension ) { 17408 jQuery.cssHooks[ dimension ] = { 17409 get: function( elem, computed, extra ) { 17410 if ( computed ) { 17411 17412 // Certain elements can have dimension info if we invisibly show them 17413 // but it must have a current display style that would benefit 17414 return rdisplayswap.test( jQuery.css( elem, "display" ) ) && 17415 17416 // Support: Safari 8+ 17417 // Table columns in Safari have non-zero offsetWidth & zero 17418 // getBoundingClientRect().width unless display is changed. 17419 // Support: IE <=11 only 17420 // Running getBoundingClientRect on a disconnected node 17421 // in IE throws an error. 17422 ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? 17423 swap( elem, cssShow, function() { 17424 return getWidthOrHeight( elem, dimension, extra ); 17425 } ) : 17426 getWidthOrHeight( elem, dimension, extra ); 17427 } 17428 }, 17429 17430 set: function( elem, value, extra ) { 17431 var matches, 17432 styles = getStyles( elem ), 17433 isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", 17434 subtract = extra && boxModelAdjustment( 17435 elem, 17436 dimension, 17437 extra, 17438 isBorderBox, 17439 styles 17440 ); 17441 17442 // Account for unreliable border-box dimensions by comparing offset* to computed and 17443 // faking a content-box to get border and padding (gh-3699) 17444 if ( isBorderBox && support.scrollboxSize() === styles.position ) { 17445 subtract -= Math.ceil( 17446 elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - 17447 parseFloat( styles[ dimension ] ) - 17448 boxModelAdjustment( elem, dimension, "border", false, styles ) - 17449 0.5 17450 ); 17451 } 17452 17453 // Convert to pixels if value adjustment is needed 17454 if ( subtract && ( matches = rcssNum.exec( value ) ) && 17455 ( matches[ 3 ] || "px" ) !== "px" ) { 17456 17457 elem.style[ dimension ] = value; 17458 value = jQuery.css( elem, dimension ); 17459 } 17460 17461 return setPositiveNumber( elem, value, subtract ); 17462 } 17463 }; 17464} ); 17465 17466jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, 17467 function( elem, computed ) { 17468 if ( computed ) { 17469 return ( parseFloat( curCSS( elem, "marginLeft" ) ) || 17470 elem.getBoundingClientRect().left - 17471 swap( elem, { marginLeft: 0 }, function() { 17472 return elem.getBoundingClientRect().left; 17473 } ) 17474 ) + "px"; 17475 } 17476 } 17477); 17478 17479// These hooks are used by animate to expand properties 17480jQuery.each( { 17481 margin: "", 17482 padding: "", 17483 border: "Width" 17484}, function( prefix, suffix ) { 17485 jQuery.cssHooks[ prefix + suffix ] = { 17486 expand: function( value ) { 17487 var i = 0, 17488 expanded = {}, 17489 17490 // Assumes a single number if not a string 17491 parts = typeof value === "string" ? value.split( " " ) : [ value ]; 17492 17493 for ( ; i < 4; i++ ) { 17494 expanded[ prefix + cssExpand[ i ] + suffix ] = 17495 parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; 17496 } 17497 17498 return expanded; 17499 } 17500 }; 17501 17502 if ( prefix !== "margin" ) { 17503 jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; 17504 } 17505} ); 17506 17507jQuery.fn.extend( { 17508 css: function( name, value ) { 17509 return access( this, function( elem, name, value ) { 17510 var styles, len, 17511 map = {}, 17512 i = 0; 17513 17514 if ( Array.isArray( name ) ) { 17515 styles = getStyles( elem ); 17516 len = name.length; 17517 17518 for ( ; i < len; i++ ) { 17519 map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); 17520 } 17521 17522 return map; 17523 } 17524 17525 return value !== undefined ? 17526 jQuery.style( elem, name, value ) : 17527 jQuery.css( elem, name ); 17528 }, name, value, arguments.length > 1 ); 17529 } 17530} ); 17531 17532 17533function Tween( elem, options, prop, end, easing ) { 17534 return new Tween.prototype.init( elem, options, prop, end, easing ); 17535} 17536jQuery.Tween = Tween; 17537 17538Tween.prototype = { 17539 constructor: Tween, 17540 init: function( elem, options, prop, end, easing, unit ) { 17541 this.elem = elem; 17542 this.prop = prop; 17543 this.easing = easing || jQuery.easing._default; 17544 this.options = options; 17545 this.start = this.now = this.cur(); 17546 this.end = end; 17547 this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); 17548 }, 17549 cur: function() { 17550 var hooks = Tween.propHooks[ this.prop ]; 17551 17552 return hooks && hooks.get ? 17553 hooks.get( this ) : 17554 Tween.propHooks._default.get( this ); 17555 }, 17556 run: function( percent ) { 17557 var eased, 17558 hooks = Tween.propHooks[ this.prop ]; 17559 17560 if ( this.options.duration ) { 17561 this.pos = eased = jQuery.easing[ this.easing ]( 17562 percent, this.options.duration * percent, 0, 1, this.options.duration 17563 ); 17564 } else { 17565 this.pos = eased = percent; 17566 } 17567 this.now = ( this.end - this.start ) * eased + this.start; 17568 17569 if ( this.options.step ) { 17570 this.options.step.call( this.elem, this.now, this ); 17571 } 17572 17573 if ( hooks && hooks.set ) { 17574 hooks.set( this ); 17575 } else { 17576 Tween.propHooks._default.set( this ); 17577 } 17578 return this; 17579 } 17580}; 17581 17582Tween.prototype.init.prototype = Tween.prototype; 17583 17584Tween.propHooks = { 17585 _default: { 17586 get: function( tween ) { 17587 var result; 17588 17589 // Use a property on the element directly when it is not a DOM element, 17590 // or when there is no matching style property that exists. 17591 if ( tween.elem.nodeType !== 1 || 17592 tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { 17593 return tween.elem[ tween.prop ]; 17594 } 17595 17596 // Passing an empty string as a 3rd parameter to .css will automatically 17597 // attempt a parseFloat and fallback to a string if the parse fails. 17598 // Simple values such as "10px" are parsed to Float; 17599 // complex values such as "rotate(1rad)" are returned as-is. 17600 result = jQuery.css( tween.elem, tween.prop, "" ); 17601 17602 // Empty strings, null, undefined and "auto" are converted to 0. 17603 return !result || result === "auto" ? 0 : result; 17604 }, 17605 set: function( tween ) { 17606 17607 // Use step hook for back compat. 17608 // Use cssHook if its there. 17609 // Use .style if available and use plain properties where available. 17610 if ( jQuery.fx.step[ tween.prop ] ) { 17611 jQuery.fx.step[ tween.prop ]( tween ); 17612 } else if ( tween.elem.nodeType === 1 && 17613 ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || 17614 jQuery.cssHooks[ tween.prop ] ) ) { 17615 jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); 17616 } else { 17617 tween.elem[ tween.prop ] = tween.now; 17618 } 17619 } 17620 } 17621}; 17622 17623// Support: IE <=9 only 17624// Panic based approach to setting things on disconnected nodes 17625Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { 17626 set: function( tween ) { 17627 if ( tween.elem.nodeType && tween.elem.parentNode ) { 17628 tween.elem[ tween.prop ] = tween.now; 17629 } 17630 } 17631}; 17632 17633jQuery.easing = { 17634 linear: function( p ) { 17635 return p; 17636 }, 17637 swing: function( p ) { 17638 return 0.5 - Math.cos( p * Math.PI ) / 2; 17639 }, 17640 _default: "swing" 17641}; 17642 17643jQuery.fx = Tween.prototype.init; 17644 17645// Back compat <1.8 extension point 17646jQuery.fx.step = {}; 17647 17648 17649 17650 17651var 17652 fxNow, inProgress, 17653 rfxtypes = /^(?:toggle|show|hide)$/, 17654 rrun = /queueHooks$/; 17655 17656function schedule() { 17657 if ( inProgress ) { 17658 if ( document.hidden === false && window.requestAnimationFrame ) { 17659 window.requestAnimationFrame( schedule ); 17660 } else { 17661 window.setTimeout( schedule, jQuery.fx.interval ); 17662 } 17663 17664 jQuery.fx.tick(); 17665 } 17666} 17667 17668// Animations created synchronously will run synchronously 17669function createFxNow() { 17670 window.setTimeout( function() { 17671 fxNow = undefined; 17672 } ); 17673 return ( fxNow = Date.now() ); 17674} 17675 17676// Generate parameters to create a standard animation 17677function genFx( type, includeWidth ) { 17678 var which, 17679 i = 0, 17680 attrs = { height: type }; 17681 17682 // If we include width, step value is 1 to do all cssExpand values, 17683 // otherwise step value is 2 to skip over Left and Right 17684 includeWidth = includeWidth ? 1 : 0; 17685 for ( ; i < 4; i += 2 - includeWidth ) { 17686 which = cssExpand[ i ]; 17687 attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; 17688 } 17689 17690 if ( includeWidth ) { 17691 attrs.opacity = attrs.width = type; 17692 } 17693 17694 return attrs; 17695} 17696 17697function createTween( value, prop, animation ) { 17698 var tween, 17699 collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), 17700 index = 0, 17701 length = collection.length; 17702 for ( ; index < length; index++ ) { 17703 if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { 17704 17705 // We're done with this property 17706 return tween; 17707 } 17708 } 17709} 17710 17711function defaultPrefilter( elem, props, opts ) { 17712 var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, 17713 isBox = "width" in props || "height" in props, 17714 anim = this, 17715 orig = {}, 17716 style = elem.style, 17717 hidden = elem.nodeType && isHiddenWithinTree( elem ), 17718 dataShow = dataPriv.get( elem, "fxshow" ); 17719 17720 // Queue-skipping animations hijack the fx hooks 17721 if ( !opts.queue ) { 17722 hooks = jQuery._queueHooks( elem, "fx" ); 17723 if ( hooks.unqueued == null ) { 17724 hooks.unqueued = 0; 17725 oldfire = hooks.empty.fire; 17726 hooks.empty.fire = function() { 17727 if ( !hooks.unqueued ) { 17728 oldfire(); 17729 } 17730 }; 17731 } 17732 hooks.unqueued++; 17733 17734 anim.always( function() { 17735 17736 // Ensure the complete handler is called before this completes 17737 anim.always( function() { 17738 hooks.unqueued--; 17739 if ( !jQuery.queue( elem, "fx" ).length ) { 17740 hooks.empty.fire(); 17741 } 17742 } ); 17743 } ); 17744 } 17745 17746 // Detect show/hide animations 17747 for ( prop in props ) { 17748 value = props[ prop ]; 17749 if ( rfxtypes.test( value ) ) { 17750 delete props[ prop ]; 17751 toggle = toggle || value === "toggle"; 17752 if ( value === ( hidden ? "hide" : "show" ) ) { 17753 17754 // Pretend to be hidden if this is a "show" and 17755 // there is still data from a stopped show/hide 17756 if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { 17757 hidden = true; 17758 17759 // Ignore all other no-op show/hide data 17760 } else { 17761 continue; 17762 } 17763 } 17764 orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); 17765 } 17766 } 17767 17768 // Bail out if this is a no-op like .hide().hide() 17769 propTween = !jQuery.isEmptyObject( props ); 17770 if ( !propTween && jQuery.isEmptyObject( orig ) ) { 17771 return; 17772 } 17773 17774 // Restrict "overflow" and "display" styles during box animations 17775 if ( isBox && elem.nodeType === 1 ) { 17776 17777 // Support: IE <=9 - 11, Edge 12 - 15 17778 // Record all 3 overflow attributes because IE does not infer the shorthand 17779 // from identically-valued overflowX and overflowY and Edge just mirrors 17780 // the overflowX value there. 17781 opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; 17782 17783 // Identify a display type, preferring old show/hide data over the CSS cascade 17784 restoreDisplay = dataShow && dataShow.display; 17785 if ( restoreDisplay == null ) { 17786 restoreDisplay = dataPriv.get( elem, "display" ); 17787 } 17788 display = jQuery.css( elem, "display" ); 17789 if ( display === "none" ) { 17790 if ( restoreDisplay ) { 17791 display = restoreDisplay; 17792 } else { 17793 17794 // Get nonempty value(s) by temporarily forcing visibility 17795 showHide( [ elem ], true ); 17796 restoreDisplay = elem.style.display || restoreDisplay; 17797 display = jQuery.css( elem, "display" ); 17798 showHide( [ elem ] ); 17799 } 17800 } 17801 17802 // Animate inline elements as inline-block 17803 if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { 17804 if ( jQuery.css( elem, "float" ) === "none" ) { 17805 17806 // Restore the original display value at the end of pure show/hide animations 17807 if ( !propTween ) { 17808 anim.done( function() { 17809 style.display = restoreDisplay; 17810 } ); 17811 if ( restoreDisplay == null ) { 17812 display = style.display; 17813 restoreDisplay = display === "none" ? "" : display; 17814 } 17815 } 17816 style.display = "inline-block"; 17817 } 17818 } 17819 } 17820 17821 if ( opts.overflow ) { 17822 style.overflow = "hidden"; 17823 anim.always( function() { 17824 style.overflow = opts.overflow[ 0 ]; 17825 style.overflowX = opts.overflow[ 1 ]; 17826 style.overflowY = opts.overflow[ 2 ]; 17827 } ); 17828 } 17829 17830 // Implement show/hide animations 17831 propTween = false; 17832 for ( prop in orig ) { 17833 17834 // General show/hide setup for this element animation 17835 if ( !propTween ) { 17836 if ( dataShow ) { 17837 if ( "hidden" in dataShow ) { 17838 hidden = dataShow.hidden; 17839 } 17840 } else { 17841 dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); 17842 } 17843 17844 // Store hidden/visible for toggle so `.stop().toggle()` "reverses" 17845 if ( toggle ) { 17846 dataShow.hidden = !hidden; 17847 } 17848 17849 // Show elements before animating them 17850 if ( hidden ) { 17851 showHide( [ elem ], true ); 17852 } 17853 17854 /* eslint-disable no-loop-func */ 17855 17856 anim.done( function() { 17857 17858 /* eslint-enable no-loop-func */ 17859 17860 // The final step of a "hide" animation is actually hiding the element 17861 if ( !hidden ) { 17862 showHide( [ elem ] ); 17863 } 17864 dataPriv.remove( elem, "fxshow" ); 17865 for ( prop in orig ) { 17866 jQuery.style( elem, prop, orig[ prop ] ); 17867 } 17868 } ); 17869 } 17870 17871 // Per-property setup 17872 propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); 17873 if ( !( prop in dataShow ) ) { 17874 dataShow[ prop ] = propTween.start; 17875 if ( hidden ) { 17876 propTween.end = propTween.start; 17877 propTween.start = 0; 17878 } 17879 } 17880 } 17881} 17882 17883function propFilter( props, specialEasing ) { 17884 var index, name, easing, value, hooks; 17885 17886 // camelCase, specialEasing and expand cssHook pass 17887 for ( index in props ) { 17888 name = camelCase( index ); 17889 easing = specialEasing[ name ]; 17890 value = props[ index ]; 17891 if ( Array.isArray( value ) ) { 17892 easing = value[ 1 ]; 17893 value = props[ index ] = value[ 0 ]; 17894 } 17895 17896 if ( index !== name ) { 17897 props[ name ] = value; 17898 delete props[ index ]; 17899 } 17900 17901 hooks = jQuery.cssHooks[ name ]; 17902 if ( hooks && "expand" in hooks ) { 17903 value = hooks.expand( value ); 17904 delete props[ name ]; 17905 17906 // Not quite $.extend, this won't overwrite existing keys. 17907 // Reusing 'index' because we have the correct "name" 17908 for ( index in value ) { 17909 if ( !( index in props ) ) { 17910 props[ index ] = value[ index ]; 17911 specialEasing[ index ] = easing; 17912 } 17913 } 17914 } else { 17915 specialEasing[ name ] = easing; 17916 } 17917 } 17918} 17919 17920function Animation( elem, properties, options ) { 17921 var result, 17922 stopped, 17923 index = 0, 17924 length = Animation.prefilters.length, 17925 deferred = jQuery.Deferred().always( function() { 17926 17927 // Don't match elem in the :animated selector 17928 delete tick.elem; 17929 } ), 17930 tick = function() { 17931 if ( stopped ) { 17932 return false; 17933 } 17934 var currentTime = fxNow || createFxNow(), 17935 remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), 17936 17937 // Support: Android 2.3 only 17938 // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) 17939 temp = remaining / animation.duration || 0, 17940 percent = 1 - temp, 17941 index = 0, 17942 length = animation.tweens.length; 17943 17944 for ( ; index < length; index++ ) { 17945 animation.tweens[ index ].run( percent ); 17946 } 17947 17948 deferred.notifyWith( elem, [ animation, percent, remaining ] ); 17949 17950 // If there's more to do, yield 17951 if ( percent < 1 && length ) { 17952 return remaining; 17953 } 17954 17955 // If this was an empty animation, synthesize a final progress notification 17956 if ( !length ) { 17957 deferred.notifyWith( elem, [ animation, 1, 0 ] ); 17958 } 17959 17960 // Resolve the animation and report its conclusion 17961 deferred.resolveWith( elem, [ animation ] ); 17962 return false; 17963 }, 17964 animation = deferred.promise( { 17965 elem: elem, 17966 props: jQuery.extend( {}, properties ), 17967 opts: jQuery.extend( true, { 17968 specialEasing: {}, 17969 easing: jQuery.easing._default 17970 }, options ), 17971 originalProperties: properties, 17972 originalOptions: options, 17973 startTime: fxNow || createFxNow(), 17974 duration: options.duration, 17975 tweens: [], 17976 createTween: function( prop, end ) { 17977 var tween = jQuery.Tween( elem, animation.opts, prop, end, 17978 animation.opts.specialEasing[ prop ] || animation.opts.easing ); 17979 animation.tweens.push( tween ); 17980 return tween; 17981 }, 17982 stop: function( gotoEnd ) { 17983 var index = 0, 17984 17985 // If we are going to the end, we want to run all the tweens 17986 // otherwise we skip this part 17987 length = gotoEnd ? animation.tweens.length : 0; 17988 if ( stopped ) { 17989 return this; 17990 } 17991 stopped = true; 17992 for ( ; index < length; index++ ) { 17993 animation.tweens[ index ].run( 1 ); 17994 } 17995 17996 // Resolve when we played the last frame; otherwise, reject 17997 if ( gotoEnd ) { 17998 deferred.notifyWith( elem, [ animation, 1, 0 ] ); 17999 deferred.resolveWith( elem, [ animation, gotoEnd ] ); 18000 } else { 18001 deferred.rejectWith( elem, [ animation, gotoEnd ] ); 18002 } 18003 return this; 18004 } 18005 } ), 18006 props = animation.props; 18007 18008 propFilter( props, animation.opts.specialEasing ); 18009 18010 for ( ; index < length; index++ ) { 18011 result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); 18012 if ( result ) { 18013 if ( isFunction( result.stop ) ) { 18014 jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = 18015 result.stop.bind( result ); 18016 } 18017 return result; 18018 } 18019 } 18020 18021 jQuery.map( props, createTween, animation ); 18022 18023 if ( isFunction( animation.opts.start ) ) { 18024 animation.opts.start.call( elem, animation ); 18025 } 18026 18027 // Attach callbacks from options 18028 animation 18029 .progress( animation.opts.progress ) 18030 .done( animation.opts.done, animation.opts.complete ) 18031 .fail( animation.opts.fail ) 18032 .always( animation.opts.always ); 18033 18034 jQuery.fx.timer( 18035 jQuery.extend( tick, { 18036 elem: elem, 18037 anim: animation, 18038 queue: animation.opts.queue 18039 } ) 18040 ); 18041 18042 return animation; 18043} 18044 18045jQuery.Animation = jQuery.extend( Animation, { 18046 18047 tweeners: { 18048 "*": [ function( prop, value ) { 18049 var tween = this.createTween( prop, value ); 18050 adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); 18051 return tween; 18052 } ] 18053 }, 18054 18055 tweener: function( props, callback ) { 18056 if ( isFunction( props ) ) { 18057 callback = props; 18058 props = [ "*" ]; 18059 } else { 18060 props = props.match( rnothtmlwhite ); 18061 } 18062 18063 var prop, 18064 index = 0, 18065 length = props.length; 18066 18067 for ( ; index < length; index++ ) { 18068 prop = props[ index ]; 18069 Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; 18070 Animation.tweeners[ prop ].unshift( callback ); 18071 } 18072 }, 18073 18074 prefilters: [ defaultPrefilter ], 18075 18076 prefilter: function( callback, prepend ) { 18077 if ( prepend ) { 18078 Animation.prefilters.unshift( callback ); 18079 } else { 18080 Animation.prefilters.push( callback ); 18081 } 18082 } 18083} ); 18084 18085jQuery.speed = function( speed, easing, fn ) { 18086 var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { 18087 complete: fn || !fn && easing || 18088 isFunction( speed ) && speed, 18089 duration: speed, 18090 easing: fn && easing || easing && !isFunction( easing ) && easing 18091 }; 18092 18093 // Go to the end state if fx are off 18094 if ( jQuery.fx.off ) { 18095 opt.duration = 0; 18096 18097 } else { 18098 if ( typeof opt.duration !== "number" ) { 18099 if ( opt.duration in jQuery.fx.speeds ) { 18100 opt.duration = jQuery.fx.speeds[ opt.duration ]; 18101 18102 } else { 18103 opt.duration = jQuery.fx.speeds._default; 18104 } 18105 } 18106 } 18107 18108 // Normalize opt.queue - true/undefined/null -> "fx" 18109 if ( opt.queue == null || opt.queue === true ) { 18110 opt.queue = "fx"; 18111 } 18112 18113 // Queueing 18114 opt.old = opt.complete; 18115 18116 opt.complete = function() { 18117 if ( isFunction( opt.old ) ) { 18118 opt.old.call( this ); 18119 } 18120 18121 if ( opt.queue ) { 18122 jQuery.dequeue( this, opt.queue ); 18123 } 18124 }; 18125 18126 return opt; 18127}; 18128 18129jQuery.fn.extend( { 18130 fadeTo: function( speed, to, easing, callback ) { 18131 18132 // Show any hidden elements after setting opacity to 0 18133 return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() 18134 18135 // Animate to the value specified 18136 .end().animate( { opacity: to }, speed, easing, callback ); 18137 }, 18138 animate: function( prop, speed, easing, callback ) { 18139 var empty = jQuery.isEmptyObject( prop ), 18140 optall = jQuery.speed( speed, easing, callback ), 18141 doAnimation = function() { 18142 18143 // Operate on a copy of prop so per-property easing won't be lost 18144 var anim = Animation( this, jQuery.extend( {}, prop ), optall ); 18145 18146 // Empty animations, or finishing resolves immediately 18147 if ( empty || dataPriv.get( this, "finish" ) ) { 18148 anim.stop( true ); 18149 } 18150 }; 18151 doAnimation.finish = doAnimation; 18152 18153 return empty || optall.queue === false ? 18154 this.each( doAnimation ) : 18155 this.queue( optall.queue, doAnimation ); 18156 }, 18157 stop: function( type, clearQueue, gotoEnd ) { 18158 var stopQueue = function( hooks ) { 18159 var stop = hooks.stop; 18160 delete hooks.stop; 18161 stop( gotoEnd ); 18162 }; 18163 18164 if ( typeof type !== "string" ) { 18165 gotoEnd = clearQueue; 18166 clearQueue = type; 18167 type = undefined; 18168 } 18169 if ( clearQueue && type !== false ) { 18170 this.queue( type || "fx", [] ); 18171 } 18172 18173 return this.each( function() { 18174 var dequeue = true, 18175 index = type != null && type + "queueHooks", 18176 timers = jQuery.timers, 18177 data = dataPriv.get( this ); 18178 18179 if ( index ) { 18180 if ( data[ index ] && data[ index ].stop ) { 18181 stopQueue( data[ index ] ); 18182 } 18183 } else { 18184 for ( index in data ) { 18185 if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { 18186 stopQueue( data[ index ] ); 18187 } 18188 } 18189 } 18190 18191 for ( index = timers.length; index--; ) { 18192 if ( timers[ index ].elem === this && 18193 ( type == null || timers[ index ].queue === type ) ) { 18194 18195 timers[ index ].anim.stop( gotoEnd ); 18196 dequeue = false; 18197 timers.splice( index, 1 ); 18198 } 18199 } 18200 18201 // Start the next in the queue if the last step wasn't forced. 18202 // Timers currently will call their complete callbacks, which 18203 // will dequeue but only if they were gotoEnd. 18204 if ( dequeue || !gotoEnd ) { 18205 jQuery.dequeue( this, type ); 18206 } 18207 } ); 18208 }, 18209 finish: function( type ) { 18210 if ( type !== false ) { 18211 type = type || "fx"; 18212 } 18213 return this.each( function() { 18214 var index, 18215 data = dataPriv.get( this ), 18216 queue = data[ type + "queue" ], 18217 hooks = data[ type + "queueHooks" ], 18218 timers = jQuery.timers, 18219 length = queue ? queue.length : 0; 18220 18221 // Enable finishing flag on private data 18222 data.finish = true; 18223 18224 // Empty the queue first 18225 jQuery.queue( this, type, [] ); 18226 18227 if ( hooks && hooks.stop ) { 18228 hooks.stop.call( this, true ); 18229 } 18230 18231 // Look for any active animations, and finish them 18232 for ( index = timers.length; index--; ) { 18233 if ( timers[ index ].elem === this && timers[ index ].queue === type ) { 18234 timers[ index ].anim.stop( true ); 18235 timers.splice( index, 1 ); 18236 } 18237 } 18238 18239 // Look for any animations in the old queue and finish them 18240 for ( index = 0; index < length; index++ ) { 18241 if ( queue[ index ] && queue[ index ].finish ) { 18242 queue[ index ].finish.call( this ); 18243 } 18244 } 18245 18246 // Turn off finishing flag 18247 delete data.finish; 18248 } ); 18249 } 18250} ); 18251 18252jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { 18253 var cssFn = jQuery.fn[ name ]; 18254 jQuery.fn[ name ] = function( speed, easing, callback ) { 18255 return speed == null || typeof speed === "boolean" ? 18256 cssFn.apply( this, arguments ) : 18257 this.animate( genFx( name, true ), speed, easing, callback ); 18258 }; 18259} ); 18260 18261// Generate shortcuts for custom animations 18262jQuery.each( { 18263 slideDown: genFx( "show" ), 18264 slideUp: genFx( "hide" ), 18265 slideToggle: genFx( "toggle" ), 18266 fadeIn: { opacity: "show" }, 18267 fadeOut: { opacity: "hide" }, 18268 fadeToggle: { opacity: "toggle" } 18269}, function( name, props ) { 18270 jQuery.fn[ name ] = function( speed, easing, callback ) { 18271 return this.animate( props, speed, easing, callback ); 18272 }; 18273} ); 18274 18275jQuery.timers = []; 18276jQuery.fx.tick = function() { 18277 var timer, 18278 i = 0, 18279 timers = jQuery.timers; 18280 18281 fxNow = Date.now(); 18282 18283 for ( ; i < timers.length; i++ ) { 18284 timer = timers[ i ]; 18285 18286 // Run the timer and safely remove it when done (allowing for external removal) 18287 if ( !timer() && timers[ i ] === timer ) { 18288 timers.splice( i--, 1 ); 18289 } 18290 } 18291 18292 if ( !timers.length ) { 18293 jQuery.fx.stop(); 18294 } 18295 fxNow = undefined; 18296}; 18297 18298jQuery.fx.timer = function( timer ) { 18299 jQuery.timers.push( timer ); 18300 jQuery.fx.start(); 18301}; 18302 18303jQuery.fx.interval = 13; 18304jQuery.fx.start = function() { 18305 if ( inProgress ) { 18306 return; 18307 } 18308 18309 inProgress = true; 18310 schedule(); 18311}; 18312 18313jQuery.fx.stop = function() { 18314 inProgress = null; 18315}; 18316 18317jQuery.fx.speeds = { 18318 slow: 600, 18319 fast: 200, 18320 18321 // Default speed 18322 _default: 400 18323}; 18324 18325 18326// Based off of the plugin by Clint Helfers, with permission. 18327// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ 18328jQuery.fn.delay = function( time, type ) { 18329 time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; 18330 type = type || "fx"; 18331 18332 return this.queue( type, function( next, hooks ) { 18333 var timeout = window.setTimeout( next, time ); 18334 hooks.stop = function() { 18335 window.clearTimeout( timeout ); 18336 }; 18337 } ); 18338}; 18339 18340 18341( function() { 18342 var input = document.createElement( "input" ), 18343 select = document.createElement( "select" ), 18344 opt = select.appendChild( document.createElement( "option" ) ); 18345 18346 input.type = "checkbox"; 18347 18348 // Support: Android <=4.3 only 18349 // Default value for a checkbox should be "on" 18350 support.checkOn = input.value !== ""; 18351 18352 // Support: IE <=11 only 18353 // Must access selectedIndex to make default options select 18354 support.optSelected = opt.selected; 18355 18356 // Support: IE <=11 only 18357 // An input loses its value after becoming a radio 18358 input = document.createElement( "input" ); 18359 input.value = "t"; 18360 input.type = "radio"; 18361 support.radioValue = input.value === "t"; 18362} )(); 18363 18364 18365var boolHook, 18366 attrHandle = jQuery.expr.attrHandle; 18367 18368jQuery.fn.extend( { 18369 attr: function( name, value ) { 18370 return access( this, jQuery.attr, name, value, arguments.length > 1 ); 18371 }, 18372 18373 removeAttr: function( name ) { 18374 return this.each( function() { 18375 jQuery.removeAttr( this, name ); 18376 } ); 18377 } 18378} ); 18379 18380jQuery.extend( { 18381 attr: function( elem, name, value ) { 18382 var ret, hooks, 18383 nType = elem.nodeType; 18384 18385 // Don't get/set attributes on text, comment and attribute nodes 18386 if ( nType === 3 || nType === 8 || nType === 2 ) { 18387 return; 18388 } 18389 18390 // Fallback to prop when attributes are not supported 18391 if ( typeof elem.getAttribute === "undefined" ) { 18392 return jQuery.prop( elem, name, value ); 18393 } 18394 18395 // Attribute hooks are determined by the lowercase version 18396 // Grab necessary hook if one is defined 18397 if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { 18398 hooks = jQuery.attrHooks[ name.toLowerCase() ] || 18399 ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); 18400 } 18401 18402 if ( value !== undefined ) { 18403 if ( value === null ) { 18404 jQuery.removeAttr( elem, name ); 18405 return; 18406 } 18407 18408 if ( hooks && "set" in hooks && 18409 ( ret = hooks.set( elem, value, name ) ) !== undefined ) { 18410 return ret; 18411 } 18412 18413 elem.setAttribute( name, value + "" ); 18414 return value; 18415 } 18416 18417 if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { 18418 return ret; 18419 } 18420 18421 ret = jQuery.find.attr( elem, name ); 18422 18423 // Non-existent attributes return null, we normalize to undefined 18424 return ret == null ? undefined : ret; 18425 }, 18426 18427 attrHooks: { 18428 type: { 18429 set: function( elem, value ) { 18430 if ( !support.radioValue && value === "radio" && 18431 nodeName( elem, "input" ) ) { 18432 var val = elem.value; 18433 elem.setAttribute( "type", value ); 18434 if ( val ) { 18435 elem.value = val; 18436 } 18437 return value; 18438 } 18439 } 18440 } 18441 }, 18442 18443 removeAttr: function( elem, value ) { 18444 var name, 18445 i = 0, 18446 18447 // Attribute names can contain non-HTML whitespace characters 18448 // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 18449 attrNames = value && value.match( rnothtmlwhite ); 18450 18451 if ( attrNames && elem.nodeType === 1 ) { 18452 while ( ( name = attrNames[ i++ ] ) ) { 18453 elem.removeAttribute( name ); 18454 } 18455 } 18456 } 18457} ); 18458 18459// Hooks for boolean attributes 18460boolHook = { 18461 set: function( elem, value, name ) { 18462 if ( value === false ) { 18463 18464 // Remove boolean attributes when set to false 18465 jQuery.removeAttr( elem, name ); 18466 } else { 18467 elem.setAttribute( name, name ); 18468 } 18469 return name; 18470 } 18471}; 18472 18473jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { 18474 var getter = attrHandle[ name ] || jQuery.find.attr; 18475 18476 attrHandle[ name ] = function( elem, name, isXML ) { 18477 var ret, handle, 18478 lowercaseName = name.toLowerCase(); 18479 18480 if ( !isXML ) { 18481 18482 // Avoid an infinite loop by temporarily removing this function from the getter 18483 handle = attrHandle[ lowercaseName ]; 18484 attrHandle[ lowercaseName ] = ret; 18485 ret = getter( elem, name, isXML ) != null ? 18486 lowercaseName : 18487 null; 18488 attrHandle[ lowercaseName ] = handle; 18489 } 18490 return ret; 18491 }; 18492} ); 18493 18494 18495 18496 18497var rfocusable = /^(?:input|select|textarea|button)$/i, 18498 rclickable = /^(?:a|area)$/i; 18499 18500jQuery.fn.extend( { 18501 prop: function( name, value ) { 18502 return access( this, jQuery.prop, name, value, arguments.length > 1 ); 18503 }, 18504 18505 removeProp: function( name ) { 18506 return this.each( function() { 18507 delete this[ jQuery.propFix[ name ] || name ]; 18508 } ); 18509 } 18510} ); 18511 18512jQuery.extend( { 18513 prop: function( elem, name, value ) { 18514 var ret, hooks, 18515 nType = elem.nodeType; 18516 18517 // Don't get/set properties on text, comment and attribute nodes 18518 if ( nType === 3 || nType === 8 || nType === 2 ) { 18519 return; 18520 } 18521 18522 if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { 18523 18524 // Fix name and attach hooks 18525 name = jQuery.propFix[ name ] || name; 18526 hooks = jQuery.propHooks[ name ]; 18527 } 18528 18529 if ( value !== undefined ) { 18530 if ( hooks && "set" in hooks && 18531 ( ret = hooks.set( elem, value, name ) ) !== undefined ) { 18532 return ret; 18533 } 18534 18535 return ( elem[ name ] = value ); 18536 } 18537 18538 if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { 18539 return ret; 18540 } 18541 18542 return elem[ name ]; 18543 }, 18544 18545 propHooks: { 18546 tabIndex: { 18547 get: function( elem ) { 18548 18549 // Support: IE <=9 - 11 only 18550 // elem.tabIndex doesn't always return the 18551 // correct value when it hasn't been explicitly set 18552 // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ 18553 // Use proper attribute retrieval(#12072) 18554 var tabindex = jQuery.find.attr( elem, "tabindex" ); 18555 18556 if ( tabindex ) { 18557 return parseInt( tabindex, 10 ); 18558 } 18559 18560 if ( 18561 rfocusable.test( elem.nodeName ) || 18562 rclickable.test( elem.nodeName ) && 18563 elem.href 18564 ) { 18565 return 0; 18566 } 18567 18568 return -1; 18569 } 18570 } 18571 }, 18572 18573 propFix: { 18574 "for": "htmlFor", 18575 "class": "className" 18576 } 18577} ); 18578 18579// Support: IE <=11 only 18580// Accessing the selectedIndex property 18581// forces the browser to respect setting selected 18582// on the option 18583// The getter ensures a default option is selected 18584// when in an optgroup 18585// eslint rule "no-unused-expressions" is disabled for this code 18586// since it considers such accessions noop 18587if ( !support.optSelected ) { 18588 jQuery.propHooks.selected = { 18589 get: function( elem ) { 18590 18591 /* eslint no-unused-expressions: "off" */ 18592 18593 var parent = elem.parentNode; 18594 if ( parent && parent.parentNode ) { 18595 parent.parentNode.selectedIndex; 18596 } 18597 return null; 18598 }, 18599 set: function( elem ) { 18600 18601 /* eslint no-unused-expressions: "off" */ 18602 18603 var parent = elem.parentNode; 18604 if ( parent ) { 18605 parent.selectedIndex; 18606 18607 if ( parent.parentNode ) { 18608 parent.parentNode.selectedIndex; 18609 } 18610 } 18611 } 18612 }; 18613} 18614 18615jQuery.each( [ 18616 "tabIndex", 18617 "readOnly", 18618 "maxLength", 18619 "cellSpacing", 18620 "cellPadding", 18621 "rowSpan", 18622 "colSpan", 18623 "useMap", 18624 "frameBorder", 18625 "contentEditable" 18626], function() { 18627 jQuery.propFix[ this.toLowerCase() ] = this; 18628} ); 18629 18630 18631 18632 18633 // Strip and collapse whitespace according to HTML spec 18634 // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace 18635 function stripAndCollapse( value ) { 18636 var tokens = value.match( rnothtmlwhite ) || []; 18637 return tokens.join( " " ); 18638 } 18639 18640 18641function getClass( elem ) { 18642 return elem.getAttribute && elem.getAttribute( "class" ) || ""; 18643} 18644 18645function classesToArray( value ) { 18646 if ( Array.isArray( value ) ) { 18647 return value; 18648 } 18649 if ( typeof value === "string" ) { 18650 return value.match( rnothtmlwhite ) || []; 18651 } 18652 return []; 18653} 18654 18655jQuery.fn.extend( { 18656 addClass: function( value ) { 18657 var classes, elem, cur, curValue, clazz, j, finalValue, 18658 i = 0; 18659 18660 if ( isFunction( value ) ) { 18661 return this.each( function( j ) { 18662 jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); 18663 } ); 18664 } 18665 18666 classes = classesToArray( value ); 18667 18668 if ( classes.length ) { 18669 while ( ( elem = this[ i++ ] ) ) { 18670 curValue = getClass( elem ); 18671 cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); 18672 18673 if ( cur ) { 18674 j = 0; 18675 while ( ( clazz = classes[ j++ ] ) ) { 18676 if ( cur.indexOf( " " + clazz + " " ) < 0 ) { 18677 cur += clazz + " "; 18678 } 18679 } 18680 18681 // Only assign if different to avoid unneeded rendering. 18682 finalValue = stripAndCollapse( cur ); 18683 if ( curValue !== finalValue ) { 18684 elem.setAttribute( "class", finalValue ); 18685 } 18686 } 18687 } 18688 } 18689 18690 return this; 18691 }, 18692 18693 removeClass: function( value ) { 18694 var classes, elem, cur, curValue, clazz, j, finalValue, 18695 i = 0; 18696 18697 if ( isFunction( value ) ) { 18698 return this.each( function( j ) { 18699 jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); 18700 } ); 18701 } 18702 18703 if ( !arguments.length ) { 18704 return this.attr( "class", "" ); 18705 } 18706 18707 classes = classesToArray( value ); 18708 18709 if ( classes.length ) { 18710 while ( ( elem = this[ i++ ] ) ) { 18711 curValue = getClass( elem ); 18712 18713 // This expression is here for better compressibility (see addClass) 18714 cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); 18715 18716 if ( cur ) { 18717 j = 0; 18718 while ( ( clazz = classes[ j++ ] ) ) { 18719 18720 // Remove *all* instances 18721 while ( cur.indexOf( " " + clazz + " " ) > -1 ) { 18722 cur = cur.replace( " " + clazz + " ", " " ); 18723 } 18724 } 18725 18726 // Only assign if different to avoid unneeded rendering. 18727 finalValue = stripAndCollapse( cur ); 18728 if ( curValue !== finalValue ) { 18729 elem.setAttribute( "class", finalValue ); 18730 } 18731 } 18732 } 18733 } 18734 18735 return this; 18736 }, 18737 18738 toggleClass: function( value, stateVal ) { 18739 var type = typeof value, 18740 isValidValue = type === "string" || Array.isArray( value ); 18741 18742 if ( typeof stateVal === "boolean" && isValidValue ) { 18743 return stateVal ? this.addClass( value ) : this.removeClass( value ); 18744 } 18745 18746 if ( isFunction( value ) ) { 18747 return this.each( function( i ) { 18748 jQuery( this ).toggleClass( 18749 value.call( this, i, getClass( this ), stateVal ), 18750 stateVal 18751 ); 18752 } ); 18753 } 18754 18755 return this.each( function() { 18756 var className, i, self, classNames; 18757 18758 if ( isValidValue ) { 18759 18760 // Toggle individual class names 18761 i = 0; 18762 self = jQuery( this ); 18763 classNames = classesToArray( value ); 18764 18765 while ( ( className = classNames[ i++ ] ) ) { 18766 18767 // Check each className given, space separated list 18768 if ( self.hasClass( className ) ) { 18769 self.removeClass( className ); 18770 } else { 18771 self.addClass( className ); 18772 } 18773 } 18774 18775 // Toggle whole class name 18776 } else if ( value === undefined || type === "boolean" ) { 18777 className = getClass( this ); 18778 if ( className ) { 18779 18780 // Store className if set 18781 dataPriv.set( this, "__className__", className ); 18782 } 18783 18784 // If the element has a class name or if we're passed `false`, 18785 // then remove the whole classname (if there was one, the above saved it). 18786 // Otherwise bring back whatever was previously saved (if anything), 18787 // falling back to the empty string if nothing was stored. 18788 if ( this.setAttribute ) { 18789 this.setAttribute( "class", 18790 className || value === false ? 18791 "" : 18792 dataPriv.get( this, "__className__" ) || "" 18793 ); 18794 } 18795 } 18796 } ); 18797 }, 18798 18799 hasClass: function( selector ) { 18800 var className, elem, 18801 i = 0; 18802 18803 className = " " + selector + " "; 18804 while ( ( elem = this[ i++ ] ) ) { 18805 if ( elem.nodeType === 1 && 18806 ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { 18807 return true; 18808 } 18809 } 18810 18811 return false; 18812 } 18813} ); 18814 18815 18816 18817 18818var rreturn = /\r/g; 18819 18820jQuery.fn.extend( { 18821 val: function( value ) { 18822 var hooks, ret, valueIsFunction, 18823 elem = this[ 0 ]; 18824 18825 if ( !arguments.length ) { 18826 if ( elem ) { 18827 hooks = jQuery.valHooks[ elem.type ] || 18828 jQuery.valHooks[ elem.nodeName.toLowerCase() ]; 18829 18830 if ( hooks && 18831 "get" in hooks && 18832 ( ret = hooks.get( elem, "value" ) ) !== undefined 18833 ) { 18834 return ret; 18835 } 18836 18837 ret = elem.value; 18838 18839 // Handle most common string cases 18840 if ( typeof ret === "string" ) { 18841 return ret.replace( rreturn, "" ); 18842 } 18843 18844 // Handle cases where value is null/undef or number 18845 return ret == null ? "" : ret; 18846 } 18847 18848 return; 18849 } 18850 18851 valueIsFunction = isFunction( value ); 18852 18853 return this.each( function( i ) { 18854 var val; 18855 18856 if ( this.nodeType !== 1 ) { 18857 return; 18858 } 18859 18860 if ( valueIsFunction ) { 18861 val = value.call( this, i, jQuery( this ).val() ); 18862 } else { 18863 val = value; 18864 } 18865 18866 // Treat null/undefined as ""; convert numbers to string 18867 if ( val == null ) { 18868 val = ""; 18869 18870 } else if ( typeof val === "number" ) { 18871 val += ""; 18872 18873 } else if ( Array.isArray( val ) ) { 18874 val = jQuery.map( val, function( value ) { 18875 return value == null ? "" : value + ""; 18876 } ); 18877 } 18878 18879 hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; 18880 18881 // If set returns undefined, fall back to normal setting 18882 if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { 18883 this.value = val; 18884 } 18885 } ); 18886 } 18887} ); 18888 18889jQuery.extend( { 18890 valHooks: { 18891 option: { 18892 get: function( elem ) { 18893 18894 var val = jQuery.find.attr( elem, "value" ); 18895 return val != null ? 18896 val : 18897 18898 // Support: IE <=10 - 11 only 18899 // option.text throws exceptions (#14686, #14858) 18900 // Strip and collapse whitespace 18901 // https://html.spec.whatwg.org/#strip-and-collapse-whitespace 18902 stripAndCollapse( jQuery.text( elem ) ); 18903 } 18904 }, 18905 select: { 18906 get: function( elem ) { 18907 var value, option, i, 18908 options = elem.options, 18909 index = elem.selectedIndex, 18910 one = elem.type === "select-one", 18911 values = one ? null : [], 18912 max = one ? index + 1 : options.length; 18913 18914 if ( index < 0 ) { 18915 i = max; 18916 18917 } else { 18918 i = one ? index : 0; 18919 } 18920 18921 // Loop through all the selected options 18922 for ( ; i < max; i++ ) { 18923 option = options[ i ]; 18924 18925 // Support: IE <=9 only 18926 // IE8-9 doesn't update selected after form reset (#2551) 18927 if ( ( option.selected || i === index ) && 18928 18929 // Don't return options that are disabled or in a disabled optgroup 18930 !option.disabled && 18931 ( !option.parentNode.disabled || 18932 !nodeName( option.parentNode, "optgroup" ) ) ) { 18933 18934 // Get the specific value for the option 18935 value = jQuery( option ).val(); 18936 18937 // We don't need an array for one selects 18938 if ( one ) { 18939 return value; 18940 } 18941 18942 // Multi-Selects return an array 18943 values.push( value ); 18944 } 18945 } 18946 18947 return values; 18948 }, 18949 18950 set: function( elem, value ) { 18951 var optionSet, option, 18952 options = elem.options, 18953 values = jQuery.makeArray( value ), 18954 i = options.length; 18955 18956 while ( i-- ) { 18957 option = options[ i ]; 18958 18959 /* eslint-disable no-cond-assign */ 18960 18961 if ( option.selected = 18962 jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 18963 ) { 18964 optionSet = true; 18965 } 18966 18967 /* eslint-enable no-cond-assign */ 18968 } 18969 18970 // Force browsers to behave consistently when non-matching value is set 18971 if ( !optionSet ) { 18972 elem.selectedIndex = -1; 18973 } 18974 return values; 18975 } 18976 } 18977 } 18978} ); 18979 18980// Radios and checkboxes getter/setter 18981jQuery.each( [ "radio", "checkbox" ], function() { 18982 jQuery.valHooks[ this ] = { 18983 set: function( elem, value ) { 18984 if ( Array.isArray( value ) ) { 18985 return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); 18986 } 18987 } 18988 }; 18989 if ( !support.checkOn ) { 18990 jQuery.valHooks[ this ].get = function( elem ) { 18991 return elem.getAttribute( "value" ) === null ? "on" : elem.value; 18992 }; 18993 } 18994} ); 18995 18996 18997 18998 18999// Return jQuery for attributes-only inclusion 19000 19001 19002support.focusin = "onfocusin" in window; 19003 19004 19005var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, 19006 stopPropagationCallback = function( e ) { 19007 e.stopPropagation(); 19008 }; 19009 19010jQuery.extend( jQuery.event, { 19011 19012 trigger: function( event, data, elem, onlyHandlers ) { 19013 19014 var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, 19015 eventPath = [ elem || document ], 19016 type = hasOwn.call( event, "type" ) ? event.type : event, 19017 namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; 19018 19019 cur = lastElement = tmp = elem = elem || document; 19020 19021 // Don't do events on text and comment nodes 19022 if ( elem.nodeType === 3 || elem.nodeType === 8 ) { 19023 return; 19024 } 19025 19026 // focus/blur morphs to focusin/out; ensure we're not firing them right now 19027 if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { 19028 return; 19029 } 19030 19031 if ( type.indexOf( "." ) > -1 ) { 19032 19033 // Namespaced trigger; create a regexp to match event type in handle() 19034 namespaces = type.split( "." ); 19035 type = namespaces.shift(); 19036 namespaces.sort(); 19037 } 19038 ontype = type.indexOf( ":" ) < 0 && "on" + type; 19039 19040 // Caller can pass in a jQuery.Event object, Object, or just an event type string 19041 event = event[ jQuery.expando ] ? 19042 event : 19043 new jQuery.Event( type, typeof event === "object" && event ); 19044 19045 // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) 19046 event.isTrigger = onlyHandlers ? 2 : 3; 19047 event.namespace = namespaces.join( "." ); 19048 event.rnamespace = event.namespace ? 19049 new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : 19050 null; 19051 19052 // Clean up the event in case it is being reused 19053 event.result = undefined; 19054 if ( !event.target ) { 19055 event.target = elem; 19056 } 19057 19058 // Clone any incoming data and prepend the event, creating the handler arg list 19059 data = data == null ? 19060 [ event ] : 19061 jQuery.makeArray( data, [ event ] ); 19062 19063 // Allow special events to draw outside the lines 19064 special = jQuery.event.special[ type ] || {}; 19065 if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { 19066 return; 19067 } 19068 19069 // Determine event propagation path in advance, per W3C events spec (#9951) 19070 // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) 19071 if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { 19072 19073 bubbleType = special.delegateType || type; 19074 if ( !rfocusMorph.test( bubbleType + type ) ) { 19075 cur = cur.parentNode; 19076 } 19077 for ( ; cur; cur = cur.parentNode ) { 19078 eventPath.push( cur ); 19079 tmp = cur; 19080 } 19081 19082 // Only add window if we got to document (e.g., not plain obj or detached DOM) 19083 if ( tmp === ( elem.ownerDocument || document ) ) { 19084 eventPath.push( tmp.defaultView || tmp.parentWindow || window ); 19085 } 19086 } 19087 19088 // Fire handlers on the event path 19089 i = 0; 19090 while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { 19091 lastElement = cur; 19092 event.type = i > 1 ? 19093 bubbleType : 19094 special.bindType || type; 19095 19096 // jQuery handler 19097 handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && 19098 dataPriv.get( cur, "handle" ); 19099 if ( handle ) { 19100 handle.apply( cur, data ); 19101 } 19102 19103 // Native handler 19104 handle = ontype && cur[ ontype ]; 19105 if ( handle && handle.apply && acceptData( cur ) ) { 19106 event.result = handle.apply( cur, data ); 19107 if ( event.result === false ) { 19108 event.preventDefault(); 19109 } 19110 } 19111 } 19112 event.type = type; 19113 19114 // If nobody prevented the default action, do it now 19115 if ( !onlyHandlers && !event.isDefaultPrevented() ) { 19116 19117 if ( ( !special._default || 19118 special._default.apply( eventPath.pop(), data ) === false ) && 19119 acceptData( elem ) ) { 19120 19121 // Call a native DOM method on the target with the same name as the event. 19122 // Don't do default actions on window, that's where global variables be (#6170) 19123 if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { 19124 19125 // Don't re-trigger an onFOO event when we call its FOO() method 19126 tmp = elem[ ontype ]; 19127 19128 if ( tmp ) { 19129 elem[ ontype ] = null; 19130 } 19131 19132 // Prevent re-triggering of the same event, since we already bubbled it above 19133 jQuery.event.triggered = type; 19134 19135 if ( event.isPropagationStopped() ) { 19136 lastElement.addEventListener( type, stopPropagationCallback ); 19137 } 19138 19139 elem[ type ](); 19140 19141 if ( event.isPropagationStopped() ) { 19142 lastElement.removeEventListener( type, stopPropagationCallback ); 19143 } 19144 19145 jQuery.event.triggered = undefined; 19146 19147 if ( tmp ) { 19148 elem[ ontype ] = tmp; 19149 } 19150 } 19151 } 19152 } 19153 19154 return event.result; 19155 }, 19156 19157 // Piggyback on a donor event to simulate a different one 19158 // Used only for `focus(in | out)` events 19159 simulate: function( type, elem, event ) { 19160 var e = jQuery.extend( 19161 new jQuery.Event(), 19162 event, 19163 { 19164 type: type, 19165 isSimulated: true 19166 } 19167 ); 19168 19169 jQuery.event.trigger( e, null, elem ); 19170 } 19171 19172} ); 19173 19174jQuery.fn.extend( { 19175 19176 trigger: function( type, data ) { 19177 return this.each( function() { 19178 jQuery.event.trigger( type, data, this ); 19179 } ); 19180 }, 19181 triggerHandler: function( type, data ) { 19182 var elem = this[ 0 ]; 19183 if ( elem ) { 19184 return jQuery.event.trigger( type, data, elem, true ); 19185 } 19186 } 19187} ); 19188 19189 19190// Support: Firefox <=44 19191// Firefox doesn't have focus(in | out) events 19192// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 19193// 19194// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 19195// focus(in | out) events fire after focus & blur events, 19196// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order 19197// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 19198if ( !support.focusin ) { 19199 jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { 19200 19201 // Attach a single capturing handler on the document while someone wants focusin/focusout 19202 var handler = function( event ) { 19203 jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); 19204 }; 19205 19206 jQuery.event.special[ fix ] = { 19207 setup: function() { 19208 var doc = this.ownerDocument || this, 19209 attaches = dataPriv.access( doc, fix ); 19210 19211 if ( !attaches ) { 19212 doc.addEventListener( orig, handler, true ); 19213 } 19214 dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); 19215 }, 19216 teardown: function() { 19217 var doc = this.ownerDocument || this, 19218 attaches = dataPriv.access( doc, fix ) - 1; 19219 19220 if ( !attaches ) { 19221 doc.removeEventListener( orig, handler, true ); 19222 dataPriv.remove( doc, fix ); 19223 19224 } else { 19225 dataPriv.access( doc, fix, attaches ); 19226 } 19227 } 19228 }; 19229 } ); 19230} 19231var location = window.location; 19232 19233var nonce = Date.now(); 19234 19235var rquery = ( /\?/ ); 19236 19237 19238 19239// Cross-browser xml parsing 19240jQuery.parseXML = function( data ) { 19241 var xml; 19242 if ( !data || typeof data !== "string" ) { 19243 return null; 19244 } 19245 19246 // Support: IE 9 - 11 only 19247 // IE throws on parseFromString with invalid input. 19248 try { 19249 xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); 19250 } catch ( e ) { 19251 xml = undefined; 19252 } 19253 19254 if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { 19255 jQuery.error( "Invalid XML: " + data ); 19256 } 19257 return xml; 19258}; 19259 19260 19261var 19262 rbracket = /\[\]$/, 19263 rCRLF = /\r?\n/g, 19264 rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, 19265 rsubmittable = /^(?:input|select|textarea|keygen)/i; 19266 19267function buildParams( prefix, obj, traditional, add ) { 19268 var name; 19269 19270 if ( Array.isArray( obj ) ) { 19271 19272 // Serialize array item. 19273 jQuery.each( obj, function( i, v ) { 19274 if ( traditional || rbracket.test( prefix ) ) { 19275 19276 // Treat each array item as a scalar. 19277 add( prefix, v ); 19278 19279 } else { 19280 19281 // Item is non-scalar (array or object), encode its numeric index. 19282 buildParams( 19283 prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", 19284 v, 19285 traditional, 19286 add 19287 ); 19288 } 19289 } ); 19290 19291 } else if ( !traditional && toType( obj ) === "object" ) { 19292 19293 // Serialize object item. 19294 for ( name in obj ) { 19295 buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); 19296 } 19297 19298 } else { 19299 19300 // Serialize scalar item. 19301 add( prefix, obj ); 19302 } 19303} 19304 19305// Serialize an array of form elements or a set of 19306// key/values into a query string 19307jQuery.param = function( a, traditional ) { 19308 var prefix, 19309 s = [], 19310 add = function( key, valueOrFunction ) { 19311 19312 // If value is a function, invoke it and use its return value 19313 var value = isFunction( valueOrFunction ) ? 19314 valueOrFunction() : 19315 valueOrFunction; 19316 19317 s[ s.length ] = encodeURIComponent( key ) + "=" + 19318 encodeURIComponent( value == null ? "" : value ); 19319 }; 19320 19321 // If an array was passed in, assume that it is an array of form elements. 19322 if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { 19323 19324 // Serialize the form elements 19325 jQuery.each( a, function() { 19326 add( this.name, this.value ); 19327 } ); 19328 19329 } else { 19330 19331 // If traditional, encode the "old" way (the way 1.3.2 or older 19332 // did it), otherwise encode params recursively. 19333 for ( prefix in a ) { 19334 buildParams( prefix, a[ prefix ], traditional, add ); 19335 } 19336 } 19337 19338 // Return the resulting serialization 19339 return s.join( "&" ); 19340}; 19341 19342jQuery.fn.extend( { 19343 serialize: function() { 19344 return jQuery.param( this.serializeArray() ); 19345 }, 19346 serializeArray: function() { 19347 return this.map( function() { 19348 19349 // Can add propHook for "elements" to filter or add form elements 19350 var elements = jQuery.prop( this, "elements" ); 19351 return elements ? jQuery.makeArray( elements ) : this; 19352 } ) 19353 .filter( function() { 19354 var type = this.type; 19355 19356 // Use .is( ":disabled" ) so that fieldset[disabled] works 19357 return this.name && !jQuery( this ).is( ":disabled" ) && 19358 rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && 19359 ( this.checked || !rcheckableType.test( type ) ); 19360 } ) 19361 .map( function( i, elem ) { 19362 var val = jQuery( this ).val(); 19363 19364 if ( val == null ) { 19365 return null; 19366 } 19367 19368 if ( Array.isArray( val ) ) { 19369 return jQuery.map( val, function( val ) { 19370 return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; 19371 } ); 19372 } 19373 19374 return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; 19375 } ).get(); 19376 } 19377} ); 19378 19379 19380var 19381 r20 = /%20/g, 19382 rhash = /#.*$/, 19383 rantiCache = /([?&])_=[^&]*/, 19384 rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, 19385 19386 // #7653, #8125, #8152: local protocol detection 19387 rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, 19388 rnoContent = /^(?:GET|HEAD)$/, 19389 rprotocol = /^\/\//, 19390 19391 /* Prefilters 19392 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) 19393 * 2) These are called: 19394 * - BEFORE asking for a transport 19395 * - AFTER param serialization (s.data is a string if s.processData is true) 19396 * 3) key is the dataType 19397 * 4) the catchall symbol "*" can be used 19398 * 5) execution will start with transport dataType and THEN continue down to "*" if needed 19399 */ 19400 prefilters = {}, 19401 19402 /* Transports bindings 19403 * 1) key is the dataType 19404 * 2) the catchall symbol "*" can be used 19405 * 3) selection will start with transport dataType and THEN go to "*" if needed 19406 */ 19407 transports = {}, 19408 19409 // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression 19410 allTypes = "*/".concat( "*" ), 19411 19412 // Anchor tag for parsing the document origin 19413 originAnchor = document.createElement( "a" ); 19414 originAnchor.href = location.href; 19415 19416// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport 19417function addToPrefiltersOrTransports( structure ) { 19418 19419 // dataTypeExpression is optional and defaults to "*" 19420 return function( dataTypeExpression, func ) { 19421 19422 if ( typeof dataTypeExpression !== "string" ) { 19423 func = dataTypeExpression; 19424 dataTypeExpression = "*"; 19425 } 19426 19427 var dataType, 19428 i = 0, 19429 dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; 19430 19431 if ( isFunction( func ) ) { 19432 19433 // For each dataType in the dataTypeExpression 19434 while ( ( dataType = dataTypes[ i++ ] ) ) { 19435 19436 // Prepend if requested 19437 if ( dataType[ 0 ] === "+" ) { 19438 dataType = dataType.slice( 1 ) || "*"; 19439 ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); 19440 19441 // Otherwise append 19442 } else { 19443 ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); 19444 } 19445 } 19446 } 19447 }; 19448} 19449 19450// Base inspection function for prefilters and transports 19451function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { 19452 19453 var inspected = {}, 19454 seekingTransport = ( structure === transports ); 19455 19456 function inspect( dataType ) { 19457 var selected; 19458 inspected[ dataType ] = true; 19459 jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { 19460 var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); 19461 if ( typeof dataTypeOrTransport === "string" && 19462 !seekingTransport && !inspected[ dataTypeOrTransport ] ) { 19463 19464 options.dataTypes.unshift( dataTypeOrTransport ); 19465 inspect( dataTypeOrTransport ); 19466 return false; 19467 } else if ( seekingTransport ) { 19468 return !( selected = dataTypeOrTransport ); 19469 } 19470 } ); 19471 return selected; 19472 } 19473 19474 return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); 19475} 19476 19477// A special extend for ajax options 19478// that takes "flat" options (not to be deep extended) 19479// Fixes #9887 19480function ajaxExtend( target, src ) { 19481 var key, deep, 19482 flatOptions = jQuery.ajaxSettings.flatOptions || {}; 19483 19484 for ( key in src ) { 19485 if ( src[ key ] !== undefined ) { 19486 ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; 19487 } 19488 } 19489 if ( deep ) { 19490 jQuery.extend( true, target, deep ); 19491 } 19492 19493 return target; 19494} 19495 19496/* Handles responses to an ajax request: 19497 * - finds the right dataType (mediates between content-type and expected dataType) 19498 * - returns the corresponding response 19499 */ 19500function ajaxHandleResponses( s, jqXHR, responses ) { 19501 19502 var ct, type, finalDataType, firstDataType, 19503 contents = s.contents, 19504 dataTypes = s.dataTypes; 19505 19506 // Remove auto dataType and get content-type in the process 19507 while ( dataTypes[ 0 ] === "*" ) { 19508 dataTypes.shift(); 19509 if ( ct === undefined ) { 19510 ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); 19511 } 19512 } 19513 19514 // Check if we're dealing with a known content-type 19515 if ( ct ) { 19516 for ( type in contents ) { 19517 if ( contents[ type ] && contents[ type ].test( ct ) ) { 19518 dataTypes.unshift( type ); 19519 break; 19520 } 19521 } 19522 } 19523 19524 // Check to see if we have a response for the expected dataType 19525 if ( dataTypes[ 0 ] in responses ) { 19526 finalDataType = dataTypes[ 0 ]; 19527 } else { 19528 19529 // Try convertible dataTypes 19530 for ( type in responses ) { 19531 if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { 19532 finalDataType = type; 19533 break; 19534 } 19535 if ( !firstDataType ) { 19536 firstDataType = type; 19537 } 19538 } 19539 19540 // Or just use first one 19541 finalDataType = finalDataType || firstDataType; 19542 } 19543 19544 // If we found a dataType 19545 // We add the dataType to the list if needed 19546 // and return the corresponding response 19547 if ( finalDataType ) { 19548 if ( finalDataType !== dataTypes[ 0 ] ) { 19549 dataTypes.unshift( finalDataType ); 19550 } 19551 return responses[ finalDataType ]; 19552 } 19553} 19554 19555/* Chain conversions given the request and the original response 19556 * Also sets the responseXXX fields on the jqXHR instance 19557 */ 19558function ajaxConvert( s, response, jqXHR, isSuccess ) { 19559 var conv2, current, conv, tmp, prev, 19560 converters = {}, 19561 19562 // Work with a copy of dataTypes in case we need to modify it for conversion 19563 dataTypes = s.dataTypes.slice(); 19564 19565 // Create converters map with lowercased keys 19566 if ( dataTypes[ 1 ] ) { 19567 for ( conv in s.converters ) { 19568 converters[ conv.toLowerCase() ] = s.converters[ conv ]; 19569 } 19570 } 19571 19572 current = dataTypes.shift(); 19573 19574 // Convert to each sequential dataType 19575 while ( current ) { 19576 19577 if ( s.responseFields[ current ] ) { 19578 jqXHR[ s.responseFields[ current ] ] = response; 19579 } 19580 19581 // Apply the dataFilter if provided 19582 if ( !prev && isSuccess && s.dataFilter ) { 19583 response = s.dataFilter( response, s.dataType ); 19584 } 19585 19586 prev = current; 19587 current = dataTypes.shift(); 19588 19589 if ( current ) { 19590 19591 // There's only work to do if current dataType is non-auto 19592 if ( current === "*" ) { 19593 19594 current = prev; 19595 19596 // Convert response if prev dataType is non-auto and differs from current 19597 } else if ( prev !== "*" && prev !== current ) { 19598 19599 // Seek a direct converter 19600 conv = converters[ prev + " " + current ] || converters[ "* " + current ]; 19601 19602 // If none found, seek a pair 19603 if ( !conv ) { 19604 for ( conv2 in converters ) { 19605 19606 // If conv2 outputs current 19607 tmp = conv2.split( " " ); 19608 if ( tmp[ 1 ] === current ) { 19609 19610 // If prev can be converted to accepted input 19611 conv = converters[ prev + " " + tmp[ 0 ] ] || 19612 converters[ "* " + tmp[ 0 ] ]; 19613 if ( conv ) { 19614 19615 // Condense equivalence converters 19616 if ( conv === true ) { 19617 conv = converters[ conv2 ]; 19618 19619 // Otherwise, insert the intermediate dataType 19620 } else if ( converters[ conv2 ] !== true ) { 19621 current = tmp[ 0 ]; 19622 dataTypes.unshift( tmp[ 1 ] ); 19623 } 19624 break; 19625 } 19626 } 19627 } 19628 } 19629 19630 // Apply converter (if not an equivalence) 19631 if ( conv !== true ) { 19632 19633 // Unless errors are allowed to bubble, catch and return them 19634 if ( conv && s.throws ) { 19635 response = conv( response ); 19636 } else { 19637 try { 19638 response = conv( response ); 19639 } catch ( e ) { 19640 return { 19641 state: "parsererror", 19642 error: conv ? e : "No conversion from " + prev + " to " + current 19643 }; 19644 } 19645 } 19646 } 19647 } 19648 } 19649 } 19650 19651 return { state: "success", data: response }; 19652} 19653 19654jQuery.extend( { 19655 19656 // Counter for holding the number of active queries 19657 active: 0, 19658 19659 // Last-Modified header cache for next request 19660 lastModified: {}, 19661 etag: {}, 19662 19663 ajaxSettings: { 19664 url: location.href, 19665 type: "GET", 19666 isLocal: rlocalProtocol.test( location.protocol ), 19667 global: true, 19668 processData: true, 19669 async: true, 19670 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 19671 19672 /* 19673 timeout: 0, 19674 data: null, 19675 dataType: null, 19676 username: null, 19677 password: null, 19678 cache: null, 19679 throws: false, 19680 traditional: false, 19681 headers: {}, 19682 */ 19683 19684 accepts: { 19685 "*": allTypes, 19686 text: "text/plain", 19687 html: "text/html", 19688 xml: "application/xml, text/xml", 19689 json: "application/json, text/javascript" 19690 }, 19691 19692 contents: { 19693 xml: /\bxml\b/, 19694 html: /\bhtml/, 19695 json: /\bjson\b/ 19696 }, 19697 19698 responseFields: { 19699 xml: "responseXML", 19700 text: "responseText", 19701 json: "responseJSON" 19702 }, 19703 19704 // Data converters 19705 // Keys separate source (or catchall "*") and destination types with a single space 19706 converters: { 19707 19708 // Convert anything to text 19709 "* text": String, 19710 19711 // Text to html (true = no transformation) 19712 "text html": true, 19713 19714 // Evaluate text as a json expression 19715 "text json": JSON.parse, 19716 19717 // Parse text as xml 19718 "text xml": jQuery.parseXML 19719 }, 19720 19721 // For options that shouldn't be deep extended: 19722 // you can add your own custom options here if 19723 // and when you create one that shouldn't be 19724 // deep extended (see ajaxExtend) 19725 flatOptions: { 19726 url: true, 19727 context: true 19728 } 19729 }, 19730 19731 // Creates a full fledged settings object into target 19732 // with both ajaxSettings and settings fields. 19733 // If target is omitted, writes into ajaxSettings. 19734 ajaxSetup: function( target, settings ) { 19735 return settings ? 19736 19737 // Building a settings object 19738 ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : 19739 19740 // Extending ajaxSettings 19741 ajaxExtend( jQuery.ajaxSettings, target ); 19742 }, 19743 19744 ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), 19745 ajaxTransport: addToPrefiltersOrTransports( transports ), 19746 19747 // Main method 19748 ajax: function( url, options ) { 19749 19750 // If url is an object, simulate pre-1.5 signature 19751 if ( typeof url === "object" ) { 19752 options = url; 19753 url = undefined; 19754 } 19755 19756 // Force options to be an object 19757 options = options || {}; 19758 19759 var transport, 19760 19761 // URL without anti-cache param 19762 cacheURL, 19763 19764 // Response headers 19765 responseHeadersString, 19766 responseHeaders, 19767 19768 // timeout handle 19769 timeoutTimer, 19770 19771 // Url cleanup var 19772 urlAnchor, 19773 19774 // Request state (becomes false upon send and true upon completion) 19775 completed, 19776 19777 // To know if global events are to be dispatched 19778 fireGlobals, 19779 19780 // Loop variable 19781 i, 19782 19783 // uncached part of the url 19784 uncached, 19785 19786 // Create the final options object 19787 s = jQuery.ajaxSetup( {}, options ), 19788 19789 // Callbacks context 19790 callbackContext = s.context || s, 19791 19792 // Context for global events is callbackContext if it is a DOM node or jQuery collection 19793 globalEventContext = s.context && 19794 ( callbackContext.nodeType || callbackContext.jquery ) ? 19795 jQuery( callbackContext ) : 19796 jQuery.event, 19797 19798 // Deferreds 19799 deferred = jQuery.Deferred(), 19800 completeDeferred = jQuery.Callbacks( "once memory" ), 19801 19802 // Status-dependent callbacks 19803 statusCode = s.statusCode || {}, 19804 19805 // Headers (they are sent all at once) 19806 requestHeaders = {}, 19807 requestHeadersNames = {}, 19808 19809 // Default abort message 19810 strAbort = "canceled", 19811 19812 // Fake xhr 19813 jqXHR = { 19814 readyState: 0, 19815 19816 // Builds headers hashtable if needed 19817 getResponseHeader: function( key ) { 19818 var match; 19819 if ( completed ) { 19820 if ( !responseHeaders ) { 19821 responseHeaders = {}; 19822 while ( ( match = rheaders.exec( responseHeadersString ) ) ) { 19823 responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; 19824 } 19825 } 19826 match = responseHeaders[ key.toLowerCase() ]; 19827 } 19828 return match == null ? null : match; 19829 }, 19830 19831 // Raw string 19832 getAllResponseHeaders: function() { 19833 return completed ? responseHeadersString : null; 19834 }, 19835 19836 // Caches the header 19837 setRequestHeader: function( name, value ) { 19838 if ( completed == null ) { 19839 name = requestHeadersNames[ name.toLowerCase() ] = 19840 requestHeadersNames[ name.toLowerCase() ] || name; 19841 requestHeaders[ name ] = value; 19842 } 19843 return this; 19844 }, 19845 19846 // Overrides response content-type header 19847 overrideMimeType: function( type ) { 19848 if ( completed == null ) { 19849 s.mimeType = type; 19850 } 19851 return this; 19852 }, 19853 19854 // Status-dependent callbacks 19855 statusCode: function( map ) { 19856 var code; 19857 if ( map ) { 19858 if ( completed ) { 19859 19860 // Execute the appropriate callbacks 19861 jqXHR.always( map[ jqXHR.status ] ); 19862 } else { 19863 19864 // Lazy-add the new callbacks in a way that preserves old ones 19865 for ( code in map ) { 19866 statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; 19867 } 19868 } 19869 } 19870 return this; 19871 }, 19872 19873 // Cancel the request 19874 abort: function( statusText ) { 19875 var finalText = statusText || strAbort; 19876 if ( transport ) { 19877 transport.abort( finalText ); 19878 } 19879 done( 0, finalText ); 19880 return this; 19881 } 19882 }; 19883 19884 // Attach deferreds 19885 deferred.promise( jqXHR ); 19886 19887 // Add protocol if not provided (prefilters might expect it) 19888 // Handle falsy url in the settings object (#10093: consistency with old signature) 19889 // We also use the url parameter if available 19890 s.url = ( ( url || s.url || location.href ) + "" ) 19891 .replace( rprotocol, location.protocol + "//" ); 19892 19893 // Alias method option to type as per ticket #12004 19894 s.type = options.method || options.type || s.method || s.type; 19895 19896 // Extract dataTypes list 19897 s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; 19898 19899 // A cross-domain request is in order when the origin doesn't match the current origin. 19900 if ( s.crossDomain == null ) { 19901 urlAnchor = document.createElement( "a" ); 19902 19903 // Support: IE <=8 - 11, Edge 12 - 15 19904 // IE throws exception on accessing the href property if url is malformed, 19905 // e.g. http://example.com:80x/ 19906 try { 19907 urlAnchor.href = s.url; 19908 19909 // Support: IE <=8 - 11 only 19910 // Anchor's host property isn't correctly set when s.url is relative 19911 urlAnchor.href = urlAnchor.href; 19912 s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== 19913 urlAnchor.protocol + "//" + urlAnchor.host; 19914 } catch ( e ) { 19915 19916 // If there is an error parsing the URL, assume it is crossDomain, 19917 // it can be rejected by the transport if it is invalid 19918 s.crossDomain = true; 19919 } 19920 } 19921 19922 // Convert data if not already a string 19923 if ( s.data && s.processData && typeof s.data !== "string" ) { 19924 s.data = jQuery.param( s.data, s.traditional ); 19925 } 19926 19927 // Apply prefilters 19928 inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); 19929 19930 // If request was aborted inside a prefilter, stop there 19931 if ( completed ) { 19932 return jqXHR; 19933 } 19934 19935 // We can fire global events as of now if asked to 19936 // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) 19937 fireGlobals = jQuery.event && s.global; 19938 19939 // Watch for a new set of requests 19940 if ( fireGlobals && jQuery.active++ === 0 ) { 19941 jQuery.event.trigger( "ajaxStart" ); 19942 } 19943 19944 // Uppercase the type 19945 s.type = s.type.toUpperCase(); 19946 19947 // Determine if request has content 19948 s.hasContent = !rnoContent.test( s.type ); 19949 19950 // Save the URL in case we're toying with the If-Modified-Since 19951 // and/or If-None-Match header later on 19952 // Remove hash to simplify url manipulation 19953 cacheURL = s.url.replace( rhash, "" ); 19954 19955 // More options handling for requests with no content 19956 if ( !s.hasContent ) { 19957 19958 // Remember the hash so we can put it back 19959 uncached = s.url.slice( cacheURL.length ); 19960 19961 // If data is available and should be processed, append data to url 19962 if ( s.data && ( s.processData || typeof s.data === "string" ) ) { 19963 cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; 19964 19965 // #9682: remove data so that it's not used in an eventual retry 19966 delete s.data; 19967 } 19968 19969 // Add or update anti-cache param if needed 19970 if ( s.cache === false ) { 19971 cacheURL = cacheURL.replace( rantiCache, "$1" ); 19972 uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; 19973 } 19974 19975 // Put hash and anti-cache on the URL that will be requested (gh-1732) 19976 s.url = cacheURL + uncached; 19977 19978 // Change '%20' to '+' if this is encoded form body content (gh-2658) 19979 } else if ( s.data && s.processData && 19980 ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { 19981 s.data = s.data.replace( r20, "+" ); 19982 } 19983 19984 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 19985 if ( s.ifModified ) { 19986 if ( jQuery.lastModified[ cacheURL ] ) { 19987 jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); 19988 } 19989 if ( jQuery.etag[ cacheURL ] ) { 19990 jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); 19991 } 19992 } 19993 19994 // Set the correct header, if data is being sent 19995 if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { 19996 jqXHR.setRequestHeader( "Content-Type", s.contentType ); 19997 } 19998 19999 // Set the Accepts header for the server, depending on the dataType 20000 jqXHR.setRequestHeader( 20001 "Accept", 20002 s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? 20003 s.accepts[ s.dataTypes[ 0 ] ] + 20004 ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : 20005 s.accepts[ "*" ] 20006 ); 20007 20008 // Check for headers option 20009 for ( i in s.headers ) { 20010 jqXHR.setRequestHeader( i, s.headers[ i ] ); 20011 } 20012 20013 // Allow custom headers/mimetypes and early abort 20014 if ( s.beforeSend && 20015 ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { 20016 20017 // Abort if not done already and return 20018 return jqXHR.abort(); 20019 } 20020 20021 // Aborting is no longer a cancellation 20022 strAbort = "abort"; 20023 20024 // Install callbacks on deferreds 20025 completeDeferred.add( s.complete ); 20026 jqXHR.done( s.success ); 20027 jqXHR.fail( s.error ); 20028 20029 // Get transport 20030 transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); 20031 20032 // If no transport, we auto-abort 20033 if ( !transport ) { 20034 done( -1, "No Transport" ); 20035 } else { 20036 jqXHR.readyState = 1; 20037 20038 // Send global event 20039 if ( fireGlobals ) { 20040 globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); 20041 } 20042 20043 // If request was aborted inside ajaxSend, stop there 20044 if ( completed ) { 20045 return jqXHR; 20046 } 20047 20048 // Timeout 20049 if ( s.async && s.timeout > 0 ) { 20050 timeoutTimer = window.setTimeout( function() { 20051 jqXHR.abort( "timeout" ); 20052 }, s.timeout ); 20053 } 20054 20055 try { 20056 completed = false; 20057 transport.send( requestHeaders, done ); 20058 } catch ( e ) { 20059 20060 // Rethrow post-completion exceptions 20061 if ( completed ) { 20062 throw e; 20063 } 20064 20065 // Propagate others as results 20066 done( -1, e ); 20067 } 20068 } 20069 20070 // Callback for when everything is done 20071 function done( status, nativeStatusText, responses, headers ) { 20072 var isSuccess, success, error, response, modified, 20073 statusText = nativeStatusText; 20074 20075 // Ignore repeat invocations 20076 if ( completed ) { 20077 return; 20078 } 20079 20080 completed = true; 20081 20082 // Clear timeout if it exists 20083 if ( timeoutTimer ) { 20084 window.clearTimeout( timeoutTimer ); 20085 } 20086 20087 // Dereference transport for early garbage collection 20088 // (no matter how long the jqXHR object will be used) 20089 transport = undefined; 20090 20091 // Cache response headers 20092 responseHeadersString = headers || ""; 20093 20094 // Set readyState 20095 jqXHR.readyState = status > 0 ? 4 : 0; 20096 20097 // Determine if successful 20098 isSuccess = status >= 200 && status < 300 || status === 304; 20099 20100 // Get response data 20101 if ( responses ) { 20102 response = ajaxHandleResponses( s, jqXHR, responses ); 20103 } 20104 20105 // Convert no matter what (that way responseXXX fields are always set) 20106 response = ajaxConvert( s, response, jqXHR, isSuccess ); 20107 20108 // If successful, handle type chaining 20109 if ( isSuccess ) { 20110 20111 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 20112 if ( s.ifModified ) { 20113 modified = jqXHR.getResponseHeader( "Last-Modified" ); 20114 if ( modified ) { 20115 jQuery.lastModified[ cacheURL ] = modified; 20116 } 20117 modified = jqXHR.getResponseHeader( "etag" ); 20118 if ( modified ) { 20119 jQuery.etag[ cacheURL ] = modified; 20120 } 20121 } 20122 20123 // if no content 20124 if ( status === 204 || s.type === "HEAD" ) { 20125 statusText = "nocontent"; 20126 20127 // if not modified 20128 } else if ( status === 304 ) { 20129 statusText = "notmodified"; 20130 20131 // If we have data, let's convert it 20132 } else { 20133 statusText = response.state; 20134 success = response.data; 20135 error = response.error; 20136 isSuccess = !error; 20137 } 20138 } else { 20139 20140 // Extract error from statusText and normalize for non-aborts 20141 error = statusText; 20142 if ( status || !statusText ) { 20143 statusText = "error"; 20144 if ( status < 0 ) { 20145 status = 0; 20146 } 20147 } 20148 } 20149 20150 // Set data for the fake xhr object 20151 jqXHR.status = status; 20152 jqXHR.statusText = ( nativeStatusText || statusText ) + ""; 20153 20154 // Success/Error 20155 if ( isSuccess ) { 20156 deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); 20157 } else { 20158 deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); 20159 } 20160 20161 // Status-dependent callbacks 20162 jqXHR.statusCode( statusCode ); 20163 statusCode = undefined; 20164 20165 if ( fireGlobals ) { 20166 globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", 20167 [ jqXHR, s, isSuccess ? success : error ] ); 20168 } 20169 20170 // Complete 20171 completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); 20172 20173 if ( fireGlobals ) { 20174 globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); 20175 20176 // Handle the global AJAX counter 20177 if ( !( --jQuery.active ) ) { 20178 jQuery.event.trigger( "ajaxStop" ); 20179 } 20180 } 20181 } 20182 20183 return jqXHR; 20184 }, 20185 20186 getJSON: function( url, data, callback ) { 20187 return jQuery.get( url, data, callback, "json" ); 20188 }, 20189 20190 getScript: function( url, callback ) { 20191 return jQuery.get( url, undefined, callback, "script" ); 20192 } 20193} ); 20194 20195jQuery.each( [ "get", "post" ], function( i, method ) { 20196 jQuery[ method ] = function( url, data, callback, type ) { 20197 20198 // Shift arguments if data argument was omitted 20199 if ( isFunction( data ) ) { 20200 type = type || callback; 20201 callback = data; 20202 data = undefined; 20203 } 20204 20205 // The url can be an options object (which then must have .url) 20206 return jQuery.ajax( jQuery.extend( { 20207 url: url, 20208 type: method, 20209 dataType: type, 20210 data: data, 20211 success: callback 20212 }, jQuery.isPlainObject( url ) && url ) ); 20213 }; 20214} ); 20215 20216 20217jQuery._evalUrl = function( url ) { 20218 return jQuery.ajax( { 20219 url: url, 20220 20221 // Make this explicit, since user can override this through ajaxSetup (#11264) 20222 type: "GET", 20223 dataType: "script", 20224 cache: true, 20225 async: false, 20226 global: false, 20227 "throws": true 20228 } ); 20229}; 20230 20231 20232jQuery.fn.extend( { 20233 wrapAll: function( html ) { 20234 var wrap; 20235 20236 if ( this[ 0 ] ) { 20237 if ( isFunction( html ) ) { 20238 html = html.call( this[ 0 ] ); 20239 } 20240 20241 // The elements to wrap the target around 20242 wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); 20243 20244 if ( this[ 0 ].parentNode ) { 20245 wrap.insertBefore( this[ 0 ] ); 20246 } 20247 20248 wrap.map( function() { 20249 var elem = this; 20250 20251 while ( elem.firstElementChild ) { 20252 elem = elem.firstElementChild; 20253 } 20254 20255 return elem; 20256 } ).append( this ); 20257 } 20258 20259 return this; 20260 }, 20261 20262 wrapInner: function( html ) { 20263 if ( isFunction( html ) ) { 20264 return this.each( function( i ) { 20265 jQuery( this ).wrapInner( html.call( this, i ) ); 20266 } ); 20267 } 20268 20269 return this.each( function() { 20270 var self = jQuery( this ), 20271 contents = self.contents(); 20272 20273 if ( contents.length ) { 20274 contents.wrapAll( html ); 20275 20276 } else { 20277 self.append( html ); 20278 } 20279 } ); 20280 }, 20281 20282 wrap: function( html ) { 20283 var htmlIsFunction = isFunction( html ); 20284 20285 return this.each( function( i ) { 20286 jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); 20287 } ); 20288 }, 20289 20290 unwrap: function( selector ) { 20291 this.parent( selector ).not( "body" ).each( function() { 20292 jQuery( this ).replaceWith( this.childNodes ); 20293 } ); 20294 return this; 20295 } 20296} ); 20297 20298 20299jQuery.expr.pseudos.hidden = function( elem ) { 20300 return !jQuery.expr.pseudos.visible( elem ); 20301}; 20302jQuery.expr.pseudos.visible = function( elem ) { 20303 return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); 20304}; 20305 20306 20307 20308 20309jQuery.ajaxSettings.xhr = function() { 20310 try { 20311 return new window.XMLHttpRequest(); 20312 } catch ( e ) {} 20313}; 20314 20315var xhrSuccessStatus = { 20316 20317 // File protocol always yields status code 0, assume 200 20318 0: 200, 20319 20320 // Support: IE <=9 only 20321 // #1450: sometimes IE returns 1223 when it should be 204 20322 1223: 204 20323 }, 20324 xhrSupported = jQuery.ajaxSettings.xhr(); 20325 20326support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); 20327support.ajax = xhrSupported = !!xhrSupported; 20328 20329jQuery.ajaxTransport( function( options ) { 20330 var callback, errorCallback; 20331 20332 // Cross domain only allowed if supported through XMLHttpRequest 20333 if ( support.cors || xhrSupported && !options.crossDomain ) { 20334 return { 20335 send: function( headers, complete ) { 20336 var i, 20337 xhr = options.xhr(); 20338 20339 xhr.open( 20340 options.type, 20341 options.url, 20342 options.async, 20343 options.username, 20344 options.password 20345 ); 20346 20347 // Apply custom fields if provided 20348 if ( options.xhrFields ) { 20349 for ( i in options.xhrFields ) { 20350 xhr[ i ] = options.xhrFields[ i ]; 20351 } 20352 } 20353 20354 // Override mime type if needed 20355 if ( options.mimeType && xhr.overrideMimeType ) { 20356 xhr.overrideMimeType( options.mimeType ); 20357 } 20358 20359 // X-Requested-With header 20360 // For cross-domain requests, seeing as conditions for a preflight are 20361 // akin to a jigsaw puzzle, we simply never set it to be sure. 20362 // (it can always be set on a per-request basis or even using ajaxSetup) 20363 // For same-domain requests, won't change header if already provided. 20364 if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { 20365 headers[ "X-Requested-With" ] = "XMLHttpRequest"; 20366 } 20367 20368 // Set headers 20369 for ( i in headers ) { 20370 xhr.setRequestHeader( i, headers[ i ] ); 20371 } 20372 20373 // Callback 20374 callback = function( type ) { 20375 return function() { 20376 if ( callback ) { 20377 callback = errorCallback = xhr.onload = 20378 xhr.onerror = xhr.onabort = xhr.ontimeout = 20379 xhr.onreadystatechange = null; 20380 20381 if ( type === "abort" ) { 20382 xhr.abort(); 20383 } else if ( type === "error" ) { 20384 20385 // Support: IE <=9 only 20386 // On a manual native abort, IE9 throws 20387 // errors on any property access that is not readyState 20388 if ( typeof xhr.status !== "number" ) { 20389 complete( 0, "error" ); 20390 } else { 20391 complete( 20392 20393 // File: protocol always yields status 0; see #8605, #14207 20394 xhr.status, 20395 xhr.statusText 20396 ); 20397 } 20398 } else { 20399 complete( 20400 xhrSuccessStatus[ xhr.status ] || xhr.status, 20401 xhr.statusText, 20402 20403 // Support: IE <=9 only 20404 // IE9 has no XHR2 but throws on binary (trac-11426) 20405 // For XHR2 non-text, let the caller handle it (gh-2498) 20406 ( xhr.responseType || "text" ) !== "text" || 20407 typeof xhr.responseText !== "string" ? 20408 { binary: xhr.response } : 20409 { text: xhr.responseText }, 20410 xhr.getAllResponseHeaders() 20411 ); 20412 } 20413 } 20414 }; 20415 }; 20416 20417 // Listen to events 20418 xhr.onload = callback(); 20419 errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); 20420 20421 // Support: IE 9 only 20422 // Use onreadystatechange to replace onabort 20423 // to handle uncaught aborts 20424 if ( xhr.onabort !== undefined ) { 20425 xhr.onabort = errorCallback; 20426 } else { 20427 xhr.onreadystatechange = function() { 20428 20429 // Check readyState before timeout as it changes 20430 if ( xhr.readyState === 4 ) { 20431 20432 // Allow onerror to be called first, 20433 // but that will not handle a native abort 20434 // Also, save errorCallback to a variable 20435 // as xhr.onerror cannot be accessed 20436 window.setTimeout( function() { 20437 if ( callback ) { 20438 errorCallback(); 20439 } 20440 } ); 20441 } 20442 }; 20443 } 20444 20445 // Create the abort callback 20446 callback = callback( "abort" ); 20447 20448 try { 20449 20450 // Do send the request (this may raise an exception) 20451 xhr.send( options.hasContent && options.data || null ); 20452 } catch ( e ) { 20453 20454 // #14683: Only rethrow if this hasn't been notified as an error yet 20455 if ( callback ) { 20456 throw e; 20457 } 20458 } 20459 }, 20460 20461 abort: function() { 20462 if ( callback ) { 20463 callback(); 20464 } 20465 } 20466 }; 20467 } 20468} ); 20469 20470 20471 20472 20473// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) 20474jQuery.ajaxPrefilter( function( s ) { 20475 if ( s.crossDomain ) { 20476 s.contents.script = false; 20477 } 20478} ); 20479 20480// Install script dataType 20481jQuery.ajaxSetup( { 20482 accepts: { 20483 script: "text/javascript, application/javascript, " + 20484 "application/ecmascript, application/x-ecmascript" 20485 }, 20486 contents: { 20487 script: /\b(?:java|ecma)script\b/ 20488 }, 20489 converters: { 20490 "text script": function( text ) { 20491 jQuery.globalEval( text ); 20492 return text; 20493 } 20494 } 20495} ); 20496 20497// Handle cache's special case and crossDomain 20498jQuery.ajaxPrefilter( "script", function( s ) { 20499 if ( s.cache === undefined ) { 20500 s.cache = false; 20501 } 20502 if ( s.crossDomain ) { 20503 s.type = "GET"; 20504 } 20505} ); 20506 20507// Bind script tag hack transport 20508jQuery.ajaxTransport( "script", function( s ) { 20509 20510 // This transport only deals with cross domain requests 20511 if ( s.crossDomain ) { 20512 var script, callback; 20513 return { 20514 send: function( _, complete ) { 20515 script = jQuery( "<script>" ).prop( { 20516 charset: s.scriptCharset, 20517 src: s.url 20518 } ).on( 20519 "load error", 20520 callback = function( evt ) { 20521 script.remove(); 20522 callback = null; 20523 if ( evt ) { 20524 complete( evt.type === "error" ? 404 : 200, evt.type ); 20525 } 20526 } 20527 ); 20528 20529 // Use native DOM manipulation to avoid our domManip AJAX trickery 20530 document.head.appendChild( script[ 0 ] ); 20531 }, 20532 abort: function() { 20533 if ( callback ) { 20534 callback(); 20535 } 20536 } 20537 }; 20538 } 20539} ); 20540 20541 20542 20543 20544var oldCallbacks = [], 20545 rjsonp = /(=)\?(?=&|$)|\?\?/; 20546 20547// Default jsonp settings 20548jQuery.ajaxSetup( { 20549 jsonp: "callback", 20550 jsonpCallback: function() { 20551 var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) ); 20552 this[ callback ] = true; 20553 return callback; 20554 } 20555} ); 20556 20557// Detect, normalize options and install callbacks for jsonp requests 20558jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) { 20559 20560 var callbackName, overwritten, responseContainer, 20561 jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ? 20562 "url" : 20563 typeof s.data === "string" && 20564 ( s.contentType || "" ) 20565 .indexOf( "application/x-www-form-urlencoded" ) === 0 && 20566 rjsonp.test( s.data ) && "data" 20567 ); 20568 20569 // Handle iff the expected data type is "jsonp" or we have a parameter to set 20570 if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) { 20571 20572 // Get callback name, remembering preexisting value associated with it 20573 callbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ? 20574 s.jsonpCallback() : 20575 s.jsonpCallback; 20576 20577 // Insert callback into url or form data 20578 if ( jsonProp ) { 20579 s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName ); 20580 } else if ( s.jsonp !== false ) { 20581 s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName; 20582 } 20583 20584 // Use data converter to retrieve json after script execution 20585 s.converters[ "script json" ] = function() { 20586 if ( !responseContainer ) { 20587 jQuery.error( callbackName + " was not called" ); 20588 } 20589 return responseContainer[ 0 ]; 20590 }; 20591 20592 // Force json dataType 20593 s.dataTypes[ 0 ] = "json"; 20594 20595 // Install callback 20596 overwritten = window[ callbackName ]; 20597 window[ callbackName ] = function() { 20598 responseContainer = arguments; 20599 }; 20600 20601 // Clean-up function (fires after converters) 20602 jqXHR.always( function() { 20603 20604 // If previous value didn't exist - remove it 20605 if ( overwritten === undefined ) { 20606 jQuery( window ).removeProp( callbackName ); 20607 20608 // Otherwise restore preexisting value 20609 } else { 20610 window[ callbackName ] = overwritten; 20611 } 20612 20613 // Save back as free 20614 if ( s[ callbackName ] ) { 20615 20616 // Make sure that re-using the options doesn't screw things around 20617 s.jsonpCallback = originalSettings.jsonpCallback; 20618 20619 // Save the callback name for future use 20620 oldCallbacks.push( callbackName ); 20621 } 20622 20623 // Call if it was a function and we have a response 20624 if ( responseContainer && isFunction( overwritten ) ) { 20625 overwritten( responseContainer[ 0 ] ); 20626 } 20627 20628 responseContainer = overwritten = undefined; 20629 } ); 20630 20631 // Delegate to script 20632 return "script"; 20633 } 20634} ); 20635 20636 20637 20638 20639// Support: Safari 8 only 20640// In Safari 8 documents created via document.implementation.createHTMLDocument 20641// collapse sibling forms: the second one becomes a child of the first one. 20642// Because of that, this security measure has to be disabled in Safari 8. 20643// https://bugs.webkit.org/show_bug.cgi?id=137337 20644support.createHTMLDocument = ( function() { 20645 var body = document.implementation.createHTMLDocument( "" ).body; 20646 body.innerHTML = "<form></form><form></form>"; 20647 return body.childNodes.length === 2; 20648} )(); 20649 20650 20651// Argument "data" should be string of html 20652// context (optional): If specified, the fragment will be created in this context, 20653// defaults to document 20654// keepScripts (optional): If true, will include scripts passed in the html string 20655jQuery.parseHTML = function( data, context, keepScripts ) { 20656 if ( typeof data !== "string" ) { 20657 return []; 20658 } 20659 if ( typeof context === "boolean" ) { 20660 keepScripts = context; 20661 context = false; 20662 } 20663 20664 var base, parsed, scripts; 20665 20666 if ( !context ) { 20667 20668 // Stop scripts or inline event handlers from being executed immediately 20669 // by using document.implementation 20670 if ( support.createHTMLDocument ) { 20671 context = document.implementation.createHTMLDocument( "" ); 20672 20673 // Set the base href for the created document 20674 // so any parsed elements with URLs 20675 // are based on the document's URL (gh-2965) 20676 base = context.createElement( "base" ); 20677 base.href = document.location.href; 20678 context.head.appendChild( base ); 20679 } else { 20680 context = document; 20681 } 20682 } 20683 20684 parsed = rsingleTag.exec( data ); 20685 scripts = !keepScripts && []; 20686 20687 // Single tag 20688 if ( parsed ) { 20689 return [ context.createElement( parsed[ 1 ] ) ]; 20690 } 20691 20692 parsed = buildFragment( [ data ], context, scripts ); 20693 20694 if ( scripts && scripts.length ) { 20695 jQuery( scripts ).remove(); 20696 } 20697 20698 return jQuery.merge( [], parsed.childNodes ); 20699}; 20700 20701 20702/** 20703 * Load a url into a page 20704 */ 20705jQuery.fn.load = function( url, params, callback ) { 20706 var selector, type, response, 20707 self = this, 20708 off = url.indexOf( " " ); 20709 20710 if ( off > -1 ) { 20711 selector = stripAndCollapse( url.slice( off ) ); 20712 url = url.slice( 0, off ); 20713 } 20714 20715 // If it's a function 20716 if ( isFunction( params ) ) { 20717 20718 // We assume that it's the callback 20719 callback = params; 20720 params = undefined; 20721 20722 // Otherwise, build a param string 20723 } else if ( params && typeof params === "object" ) { 20724 type = "POST"; 20725 } 20726 20727 // If we have elements to modify, make the request 20728 if ( self.length > 0 ) { 20729 jQuery.ajax( { 20730 url: url, 20731 20732 // If "type" variable is undefined, then "GET" method will be used. 20733 // Make value of this field explicit since 20734 // user can override it through ajaxSetup method 20735 type: type || "GET", 20736 dataType: "html", 20737 data: params 20738 } ).done( function( responseText ) { 20739 20740 // Save response for use in complete callback 20741 response = arguments; 20742 20743 self.html( selector ? 20744 20745 // If a selector was specified, locate the right elements in a dummy div 20746 // Exclude scripts to avoid IE 'Permission Denied' errors 20747 jQuery( "<div>" ).append( jQuery.parseHTML( responseText ) ).find( selector ) : 20748 20749 // Otherwise use the full result 20750 responseText ); 20751 20752 // If the request succeeds, this function gets "data", "status", "jqXHR" 20753 // but they are ignored because response was set above. 20754 // If it fails, this function gets "jqXHR", "status", "error" 20755 } ).always( callback && function( jqXHR, status ) { 20756 self.each( function() { 20757 callback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] ); 20758 } ); 20759 } ); 20760 } 20761 20762 return this; 20763}; 20764 20765 20766 20767 20768// Attach a bunch of functions for handling common AJAX events 20769jQuery.each( [ 20770 "ajaxStart", 20771 "ajaxStop", 20772 "ajaxComplete", 20773 "ajaxError", 20774 "ajaxSuccess", 20775 "ajaxSend" 20776], function( i, type ) { 20777 jQuery.fn[ type ] = function( fn ) { 20778 return this.on( type, fn ); 20779 }; 20780} ); 20781 20782 20783 20784 20785jQuery.expr.pseudos.animated = function( elem ) { 20786 return jQuery.grep( jQuery.timers, function( fn ) { 20787 return elem === fn.elem; 20788 } ).length; 20789}; 20790 20791 20792 20793 20794jQuery.offset = { 20795 setOffset: function( elem, options, i ) { 20796 var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, 20797 position = jQuery.css( elem, "position" ), 20798 curElem = jQuery( elem ), 20799 props = {}; 20800 20801 // Set position first, in-case top/left are set even on static elem 20802 if ( position === "static" ) { 20803 elem.style.position = "relative"; 20804 } 20805 20806 curOffset = curElem.offset(); 20807 curCSSTop = jQuery.css( elem, "top" ); 20808 curCSSLeft = jQuery.css( elem, "left" ); 20809 calculatePosition = ( position === "absolute" || position === "fixed" ) && 20810 ( curCSSTop + curCSSLeft ).indexOf( "auto" ) > -1; 20811 20812 // Need to be able to calculate position if either 20813 // top or left is auto and position is either absolute or fixed 20814 if ( calculatePosition ) { 20815 curPosition = curElem.position(); 20816 curTop = curPosition.top; 20817 curLeft = curPosition.left; 20818 20819 } else { 20820 curTop = parseFloat( curCSSTop ) || 0; 20821 curLeft = parseFloat( curCSSLeft ) || 0; 20822 } 20823 20824 if ( isFunction( options ) ) { 20825 20826 // Use jQuery.extend here to allow modification of coordinates argument (gh-1848) 20827 options = options.call( elem, i, jQuery.extend( {}, curOffset ) ); 20828 } 20829 20830 if ( options.top != null ) { 20831 props.top = ( options.top - curOffset.top ) + curTop; 20832 } 20833 if ( options.left != null ) { 20834 props.left = ( options.left - curOffset.left ) + curLeft; 20835 } 20836 20837 if ( "using" in options ) { 20838 options.using.call( elem, props ); 20839 20840 } else { 20841 curElem.css( props ); 20842 } 20843 } 20844}; 20845 20846jQuery.fn.extend( { 20847 20848 // offset() relates an element's border box to the document origin 20849 offset: function( options ) { 20850 20851 // Preserve chaining for setter 20852 if ( arguments.length ) { 20853 return options === undefined ? 20854 this : 20855 this.each( function( i ) { 20856 jQuery.offset.setOffset( this, options, i ); 20857 } ); 20858 } 20859 20860 var rect, win, 20861 elem = this[ 0 ]; 20862 20863 if ( !elem ) { 20864 return; 20865 } 20866 20867 // Return zeros for disconnected and hidden (display: none) elements (gh-2310) 20868 // Support: IE <=11 only 20869 // Running getBoundingClientRect on a 20870 // disconnected node in IE throws an error 20871 if ( !elem.getClientRects().length ) { 20872 return { top: 0, left: 0 }; 20873 } 20874 20875 // Get document-relative position by adding viewport scroll to viewport-relative gBCR 20876 rect = elem.getBoundingClientRect(); 20877 win = elem.ownerDocument.defaultView; 20878 return { 20879 top: rect.top + win.pageYOffset, 20880 left: rect.left + win.pageXOffset 20881 }; 20882 }, 20883 20884 // position() relates an element's margin box to its offset parent's padding box 20885 // This corresponds to the behavior of CSS absolute positioning 20886 position: function() { 20887 if ( !this[ 0 ] ) { 20888 return; 20889 } 20890 20891 var offsetParent, offset, doc, 20892 elem = this[ 0 ], 20893 parentOffset = { top: 0, left: 0 }; 20894 20895 // position:fixed elements are offset from the viewport, which itself always has zero offset 20896 if ( jQuery.css( elem, "position" ) === "fixed" ) { 20897 20898 // Assume position:fixed implies availability of getBoundingClientRect 20899 offset = elem.getBoundingClientRect(); 20900 20901 } else { 20902 offset = this.offset(); 20903 20904 // Account for the *real* offset parent, which can be the document or its root element 20905 // when a statically positioned element is identified 20906 doc = elem.ownerDocument; 20907 offsetParent = elem.offsetParent || doc.documentElement; 20908 while ( offsetParent && 20909 ( offsetParent === doc.body || offsetParent === doc.documentElement ) && 20910 jQuery.css( offsetParent, "position" ) === "static" ) { 20911 20912 offsetParent = offsetParent.parentNode; 20913 } 20914 if ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) { 20915 20916 // Incorporate borders into its offset, since they are outside its content origin 20917 parentOffset = jQuery( offsetParent ).offset(); 20918 parentOffset.top += jQuery.css( offsetParent, "borderTopWidth", true ); 20919 parentOffset.left += jQuery.css( offsetParent, "borderLeftWidth", true ); 20920 } 20921 } 20922 20923 // Subtract parent offsets and element margins 20924 return { 20925 top: offset.top - parentOffset.top - jQuery.css( elem, "marginTop", true ), 20926 left: offset.left - parentOffset.left - jQuery.css( elem, "marginLeft", true ) 20927 }; 20928 }, 20929 20930 // This method will return documentElement in the following cases: 20931 // 1) For the element inside the iframe without offsetParent, this method will return 20932 // documentElement of the parent window 20933 // 2) For the hidden or detached element 20934 // 3) For body or html element, i.e. in case of the html node - it will return itself 20935 // 20936 // but those exceptions were never presented as a real life use-cases 20937 // and might be considered as more preferable results. 20938 // 20939 // This logic, however, is not guaranteed and can change at any point in the future 20940 offsetParent: function() { 20941 return this.map( function() { 20942 var offsetParent = this.offsetParent; 20943 20944 while ( offsetParent && jQuery.css( offsetParent, "position" ) === "static" ) { 20945 offsetParent = offsetParent.offsetParent; 20946 } 20947 20948 return offsetParent || documentElement; 20949 } ); 20950 } 20951} ); 20952 20953// Create scrollLeft and scrollTop methods 20954jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function( method, prop ) { 20955 var top = "pageYOffset" === prop; 20956 20957 jQuery.fn[ method ] = function( val ) { 20958 return access( this, function( elem, method, val ) { 20959 20960 // Coalesce documents and windows 20961 var win; 20962 if ( isWindow( elem ) ) { 20963 win = elem; 20964 } else if ( elem.nodeType === 9 ) { 20965 win = elem.defaultView; 20966 } 20967 20968 if ( val === undefined ) { 20969 return win ? win[ prop ] : elem[ method ]; 20970 } 20971 20972 if ( win ) { 20973 win.scrollTo( 20974 !top ? val : win.pageXOffset, 20975 top ? val : win.pageYOffset 20976 ); 20977 20978 } else { 20979 elem[ method ] = val; 20980 } 20981 }, method, val, arguments.length ); 20982 }; 20983} ); 20984 20985// Support: Safari <=7 - 9.1, Chrome <=37 - 49 20986// Add the top/left cssHooks using jQuery.fn.position 20987// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 20988// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 20989// getComputedStyle returns percent when specified for top/left/bottom/right; 20990// rather than make the css module depend on the offset module, just check for it here 20991jQuery.each( [ "top", "left" ], function( i, prop ) { 20992 jQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition, 20993 function( elem, computed ) { 20994 if ( computed ) { 20995 computed = curCSS( elem, prop ); 20996 20997 // If curCSS returns percentage, fallback to offset 20998 return rnumnonpx.test( computed ) ? 20999 jQuery( elem ).position()[ prop ] + "px" : 21000 computed; 21001 } 21002 } 21003 ); 21004} ); 21005 21006 21007// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods 21008jQuery.each( { Height: "height", Width: "width" }, function( name, type ) { 21009 jQuery.each( { padding: "inner" + name, content: type, "": "outer" + name }, 21010 function( defaultExtra, funcName ) { 21011 21012 // Margin is only for outerHeight, outerWidth 21013 jQuery.fn[ funcName ] = function( margin, value ) { 21014 var chainable = arguments.length && ( defaultExtra || typeof margin !== "boolean" ), 21015 extra = defaultExtra || ( margin === true || value === true ? "margin" : "border" ); 21016 21017 return access( this, function( elem, type, value ) { 21018 var doc; 21019 21020 if ( isWindow( elem ) ) { 21021 21022 // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729) 21023 return funcName.indexOf( "outer" ) === 0 ? 21024 elem[ "inner" + name ] : 21025 elem.document.documentElement[ "client" + name ]; 21026 } 21027 21028 // Get document width or height 21029 if ( elem.nodeType === 9 ) { 21030 doc = elem.documentElement; 21031 21032 // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], 21033 // whichever is greatest 21034 return Math.max( 21035 elem.body[ "scroll" + name ], doc[ "scroll" + name ], 21036 elem.body[ "offset" + name ], doc[ "offset" + name ], 21037 doc[ "client" + name ] 21038 ); 21039 } 21040 21041 return value === undefined ? 21042 21043 // Get width or height on the element, requesting but not forcing parseFloat 21044 jQuery.css( elem, type, extra ) : 21045 21046 // Set width or height on the element 21047 jQuery.style( elem, type, value, extra ); 21048 }, type, chainable ? margin : undefined, chainable ); 21049 }; 21050 } ); 21051} ); 21052 21053 21054jQuery.each( ( "blur focus focusin focusout resize scroll click dblclick " + 21055 "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + 21056 "change select submit keydown keypress keyup contextmenu" ).split( " " ), 21057 function( i, name ) { 21058 21059 // Handle event binding 21060 jQuery.fn[ name ] = function( data, fn ) { 21061 return arguments.length > 0 ? 21062 this.on( name, null, data, fn ) : 21063 this.trigger( name ); 21064 }; 21065} ); 21066 21067jQuery.fn.extend( { 21068 hover: function( fnOver, fnOut ) { 21069 return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver ); 21070 } 21071} ); 21072 21073 21074 21075 21076jQuery.fn.extend( { 21077 21078 bind: function( types, data, fn ) { 21079 return this.on( types, null, data, fn ); 21080 }, 21081 unbind: function( types, fn ) { 21082 return this.off( types, null, fn ); 21083 }, 21084 21085 delegate: function( selector, types, data, fn ) { 21086 return this.on( types, selector, data, fn ); 21087 }, 21088 undelegate: function( selector, types, fn ) { 21089 21090 // ( namespace ) or ( selector, types [, fn] ) 21091 return arguments.length === 1 ? 21092 this.off( selector, "**" ) : 21093 this.off( types, selector || "**", fn ); 21094 } 21095} ); 21096 21097// Bind a function to a context, optionally partially applying any 21098// arguments. 21099// jQuery.proxy is deprecated to promote standards (specifically Function#bind) 21100// However, it is not slated for removal any time soon 21101jQuery.proxy = function( fn, context ) { 21102 var tmp, args, proxy; 21103 21104 if ( typeof context === "string" ) { 21105 tmp = fn[ context ]; 21106 context = fn; 21107 fn = tmp; 21108 } 21109 21110 // Quick check to determine if target is callable, in the spec 21111 // this throws a TypeError, but we will just return undefined. 21112 if ( !isFunction( fn ) ) { 21113 return undefined; 21114 } 21115 21116 // Simulated bind 21117 args = slice.call( arguments, 2 ); 21118 proxy = function() { 21119 return fn.apply( context || this, args.concat( slice.call( arguments ) ) ); 21120 }; 21121 21122 // Set the guid of unique handler to the same of original handler, so it can be removed 21123 proxy.guid = fn.guid = fn.guid || jQuery.guid++; 21124 21125 return proxy; 21126}; 21127 21128jQuery.holdReady = function( hold ) { 21129 if ( hold ) { 21130 jQuery.readyWait++; 21131 } else { 21132 jQuery.ready( true ); 21133 } 21134}; 21135jQuery.isArray = Array.isArray; 21136jQuery.parseJSON = JSON.parse; 21137jQuery.nodeName = nodeName; 21138jQuery.isFunction = isFunction; 21139jQuery.isWindow = isWindow; 21140jQuery.camelCase = camelCase; 21141jQuery.type = toType; 21142 21143jQuery.now = Date.now; 21144 21145jQuery.isNumeric = function( obj ) { 21146 21147 // As of jQuery 3.0, isNumeric is limited to 21148 // strings and numbers (primitives or objects) 21149 // that can be coerced to finite numbers (gh-2662) 21150 var type = jQuery.type( obj ); 21151 return ( type === "number" || type === "string" ) && 21152 21153 // parseFloat NaNs numeric-cast false positives ("") 21154 // ...but misinterprets leading-number strings, particularly hex literals ("0x...") 21155 // subtraction forces infinities to NaN 21156 !isNaN( obj - parseFloat( obj ) ); 21157}; 21158 21159 21160 21161 21162// Register as a named AMD module, since jQuery can be concatenated with other 21163// files that may use define, but not via a proper concatenation script that 21164// understands anonymous AMD modules. A named AMD is safest and most robust 21165// way to register. Lowercase jquery is used because AMD module names are 21166// derived from file names, and jQuery is normally delivered in a lowercase 21167// file name. Do this after creating the global so that if an AMD module wants 21168// to call noConflict to hide this version of jQuery, it will work. 21169 21170// Note that for maximum portability, libraries that are not jQuery should 21171// declare themselves as anonymous modules, and avoid setting a global if an 21172// AMD loader is present. jQuery is a special case. For more information, see 21173// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 21174 21175if ( true ) { 21176 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() { 21177 return jQuery; 21178 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 21179 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 21180} 21181 21182 21183 21184 21185var 21186 21187 // Map over jQuery in case of overwrite 21188 _jQuery = window.jQuery, 21189 21190 // Map over the $ in case of overwrite 21191 _$ = window.$; 21192 21193jQuery.noConflict = function( deep ) { 21194 if ( window.$ === jQuery ) { 21195 window.$ = _$; 21196 } 21197 21198 if ( deep && window.jQuery === jQuery ) { 21199 window.jQuery = _jQuery; 21200 } 21201 21202 return jQuery; 21203}; 21204 21205// Expose jQuery and $ identifiers, even in AMD 21206// (#7102#comment:10, https://github.com/jquery/jquery/pull/557) 21207// and CommonJS for browser emulators (#13566) 21208if ( !noGlobal ) { 21209 window.jQuery = window.$ = jQuery; 21210} 21211 21212 21213 21214 21215return jQuery; 21216} ); 21217 21218 21219/***/ }), 21220
vendor: 5,961 bytes, lines 21221-21408
21221/***/ "./node_modules/lazyload/lazyload.js": 21222/*!*******************************************!*\ 21223 !*** ./node_modules/lazyload/lazyload.js ***! 21224 \*******************************************/ 21225/*! no static exports found */ 21226/***/ (function(module, exports, __webpack_require__) { 21227 21228/* WEBPACK VAR INJECTION */(function(global) {/*! 21229 * Lazy Load - JavaScript plugin for lazy loading images 21230 * 21231 * Copyright (c) 2007-2019 Mika Tuupola 21232 * 21233 * Licensed under the MIT license: 21234 * http://www.opensource.org/licenses/mit-license.php 21235 * 21236 * Project home: 21237 * https://appelsiini.net/projects/lazyload 21238 * 21239 * Version: 2.0.0-rc.2 21240 * 21241 */ 21242 21243(function (root, factory) { 21244 if (true) { 21245 module.exports = factory(root); 21246 } else {} 21247}) (typeof global !== "undefined" ? global : this.window || this.global, function (root) { 21248 21249 "use strict"; 21250 21251 if (true){ 21252 root = window; 21253 } 21254 21255 const defaults = { 21256 src: "data-src", 21257 srcset: "data-srcset", 21258 selector: ".lazyload", 21259 root: null, 21260 rootMargin: "0px", 21261 threshold: 0 21262 }; 21263 21264 /** 21265 * Merge two or more objects. Returns a new object. 21266 * @private 21267 * @param {Boolean} deep If true, do a deep (or recursive) merge [optional] 21268 * @param {Object} objects The objects to merge together 21269 * @returns {Object} Merged values of defaults and options 21270 */ 21271 const extend = function () { 21272 21273 let extended = {}; 21274 let deep = false; 21275 let i = 0; 21276 let length = arguments.length; 21277 21278 /* Check if a deep merge */ 21279 if (Object.prototype.toString.call(arguments[0]) === "[object Boolean]") { 21280 deep = arguments[0]; 21281 i++; 21282 } 21283 21284 /* Merge the object into the extended object */ 21285 let merge = function (obj) { 21286 for (let prop in obj) { 21287 if (Object.prototype.hasOwnProperty.call(obj, prop)) { 21288 /* If deep merge and property is an object, merge properties */ 21289 if (deep && Object.prototype.toString.call(obj[prop]) === "[object Object]") { 21290 extended[prop] = extend(true, extended[prop], obj[prop]); 21291 } else { 21292 extended[prop] = obj[prop]; 21293 } 21294 } 21295 } 21296 }; 21297 21298 /* Loop through each object and conduct a merge */ 21299 for (; i < length; i++) { 21300 let obj = arguments[i]; 21301 merge(obj); 21302 } 21303 21304 return extended; 21305 }; 21306 21307 function LazyLoad(images, options) { 21308 this.settings = extend(defaults, options || {}); 21309 this.images = images || document.querySelectorAll(this.settings.selector); 21310 this.observer = null; 21311 this.init(); 21312 } 21313 21314 LazyLoad.prototype = { 21315 init: function() { 21316 21317 /* Without observers load everything and bail out early. */ 21318 if (!root.IntersectionObserver) { 21319 this.loadImages(); 21320 return; 21321 } 21322 21323 let self = this; 21324 let observerConfig = { 21325 root: this.settings.root, 21326 rootMargin: this.settings.rootMargin, 21327 threshold: [this.settings.threshold] 21328 }; 21329 21330 this.observer = new IntersectionObserver(function(entries) { 21331 Array.prototype.forEach.call(entries, function (entry) { 21332 if (entry.isIntersecting) { 21333 self.observer.unobserve(entry.target); 21334 let src = entry.target.getAttribute(self.settings.src); 21335 let srcset = entry.target.getAttribute(self.settings.srcset); 21336 if ("img" === entry.target.tagName.toLowerCase()) { 21337 if (src) { 21338 entry.target.src = src; 21339 } 21340 if (srcset) { 21341 entry.target.srcset = srcset; 21342 } 21343 } else { 21344 entry.target.style.backgroundImage = "url(" + src + ")"; 21345 } 21346 } 21347 }); 21348 }, observerConfig); 21349 21350 Array.prototype.forEach.call(this.images, function (image) { 21351 self.observer.observe(image); 21352 }); 21353 }, 21354 21355 loadAndDestroy: function () { 21356 if (!this.settings) { return; } 21357 this.loadImages(); 21358 this.destroy(); 21359 }, 21360 21361 loadImages: function () { 21362 if (!this.settings) { return; } 21363 21364 let self = this; 21365 Array.prototype.forEach.call(this.images, function (image) { 21366 let src = image.getAttribute(self.settings.src); 21367 let srcset = image.getAttribute(self.settings.srcset); 21368 if ("img" === image.tagName.toLowerCase()) { 21369 if (src) { 21370 image.src = src; 21371 } 21372 if (srcset) { 21373 image.srcset = srcset; 21374 } 21375 } else { 21376 image.style.backgroundImage = "url('" + src + "')"; 21377 } 21378 }); 21379 }, 21380 21381 destroy: function () { 21382 if (!this.settings) { return; } 21383 this.observer.disconnect(); 21384 this.settings = null; 21385 } 21386 }; 21387 21388 root.lazyload = function(images, options) { 21389 return new LazyLoad(images, options); 21390 }; 21391 21392 if (root.jQuery) { 21393 const $ = root.jQuery; 21394 $.fn.lazyload = function (options) { 21395 options = options || {}; 21396 options.attribute = options.attribute || "data-src"; 21397 new LazyLoad($.makeArray(this), options); 21398 return this; 21399 }; 21400 } 21401 21402 return LazyLoad; 21403}); 21404 21405/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) 21406 21407/***/ }), 21408
vendor: 603 bytes, lines 21409-21427
21409/***/ "./node_modules/nodelist-foreach-polyfill/index.js": 21410/*!*********************************************************!*\ 21411 !*** ./node_modules/nodelist-foreach-polyfill/index.js ***! 21412 \*********************************************************/ 21413/*! no static exports found */ 21414/***/ (function(module, exports) { 21415 21416if (window.NodeList && !NodeList.prototype.forEach) { 21417 NodeList.prototype.forEach = function (callback, thisArg) { 21418 thisArg = thisArg || window; 21419 for (var i = 0; i < this.length; i++) { 21420 callback.call(thisArg, this[i], i, this); 21421 } 21422 }; 21423} 21424 21425 21426/***/ }), 21427
vendor: 7,136 bytes, lines 21428-21670
21428/***/ "./node_modules/object-fit-images/dist/ofi.common-js.js": 21429/*!**************************************************************!*\ 21430 !*** ./node_modules/object-fit-images/dist/ofi.common-js.js ***! 21431 \**************************************************************/ 21432/*! no static exports found */ 21433/***/ (function(module, exports, __webpack_require__) { 21434 21435"use strict"; 21436/*! npm.im/object-fit-images 3.2.3 */ 21437 21438 21439var OFI = 'bfred-it:object-fit-images'; 21440var propRegex = /(object-fit|object-position)\s*:\s*([-\w\s%]+)/g; 21441var testImg = typeof Image === 'undefined' ? {style: {'object-position': 1}} : new Image(); 21442var supportsObjectFit = 'object-fit' in testImg.style; 21443var supportsObjectPosition = 'object-position' in testImg.style; 21444var supportsOFI = 'background-size' in testImg.style; 21445var supportsCurrentSrc = typeof testImg.currentSrc === 'string'; 21446var nativeGetAttribute = testImg.getAttribute; 21447var nativeSetAttribute = testImg.setAttribute; 21448var autoModeEnabled = false; 21449 21450function createPlaceholder(w, h) { 21451 return ("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='" + w + "' height='" + h + "'%3E%3C/svg%3E"); 21452} 21453 21454function polyfillCurrentSrc(el) { 21455 if (el.srcset && !supportsCurrentSrc && window.picturefill) { 21456 var pf = window.picturefill._; 21457 // parse srcset with picturefill where currentSrc isn't available 21458 if (!el[pf.ns] || !el[pf.ns].evaled) { 21459 // force synchronous srcset parsing 21460 pf.fillImg(el, {reselect: true}); 21461 } 21462 21463 if (!el[pf.ns].curSrc) { 21464 // force picturefill to parse srcset 21465 el[pf.ns].supported = false; 21466 pf.fillImg(el, {reselect: true}); 21467 } 21468 21469 // retrieve parsed currentSrc, if any 21470 el.currentSrc = el[pf.ns].curSrc || el.src; 21471 } 21472} 21473 21474function getStyle(el) { 21475 var style = getComputedStyle(el).fontFamily; 21476 var parsed; 21477 var props = {}; 21478 while ((parsed = propRegex.exec(style)) !== null) { 21479 props[parsed[1]] = parsed[2]; 21480 } 21481 return props; 21482} 21483 21484function setPlaceholder(img, width, height) { 21485 // Default: fill width, no height 21486 var placeholder = createPlaceholder(width || 1, height || 0); 21487 21488 // Only set placeholder if it's different 21489 if (nativeGetAttribute.call(img, 'src') !== placeholder) { 21490 nativeSetAttribute.call(img, 'src', placeholder); 21491 } 21492} 21493 21494function onImageReady(img, callback) { 21495 // naturalWidth is only available when the image headers are loaded, 21496 // this loop will poll it every 100ms. 21497 if (img.naturalWidth) { 21498 callback(img); 21499 } else { 21500 setTimeout(onImageReady, 100, img, callback); 21501 } 21502} 21503 21504function fixOne(el) { 21505 var style = getStyle(el); 21506 var ofi = el[OFI]; 21507 style['object-fit'] = style['object-fit'] || 'fill'; // default value 21508 21509 // Avoid running where unnecessary, unless OFI had already done its deed 21510 if (!ofi.img) { 21511 // fill is the default behavior so no action is necessary 21512 if (style['object-fit'] === 'fill') { 21513 return; 21514 } 21515 21516 // Where object-fit is supported and object-position isn't (Safari < 10) 21517 if ( 21518 !ofi.skipTest && // unless user wants to apply regardless of browser support 21519 supportsObjectFit && // if browser already supports object-fit 21520 !style['object-position'] // unless object-position is used 21521 ) { 21522 return; 21523 } 21524 } 21525 21526 // keep a clone in memory while resetting the original to a blank 21527 if (!ofi.img) { 21528 ofi.img = new Image(el.width, el.height); 21529 ofi.img.srcset = nativeGetAttribute.call(el, "data-ofi-srcset") || el.srcset; 21530 ofi.img.src = nativeGetAttribute.call(el, "data-ofi-src") || el.src; 21531 21532 // preserve for any future cloneNode calls 21533 // https://github.com/bfred-it/object-fit-images/issues/53 21534 nativeSetAttribute.call(el, "data-ofi-src", el.src); 21535 if (el.srcset) { 21536 nativeSetAttribute.call(el, "data-ofi-srcset", el.srcset); 21537 } 21538 21539 setPlaceholder(el, el.naturalWidth || el.width, el.naturalHeight || el.height); 21540 21541 // remove srcset because it overrides src 21542 if (el.srcset) { 21543 el.srcset = ''; 21544 } 21545 try { 21546 keepSrcUsable(el); 21547 } catch (err) { 21548 if (window.console) { 21549 console.warn('https://bit.ly/ofi-old-browser'); 21550 } 21551 } 21552 } 21553 21554 polyfillCurrentSrc(ofi.img); 21555 21556 el.style.backgroundImage = "url(\"" + ((ofi.img.currentSrc || ofi.img.src).replace(/"/g, '\\"')) + "\")"; 21557 el.style.backgroundPosition = style['object-position'] || 'center'; 21558 el.style.backgroundRepeat = 'no-repeat'; 21559 el.style.backgroundOrigin = 'content-box'; 21560 21561 if (/scale-down/.test(style['object-fit'])) { 21562 onImageReady(ofi.img, function () { 21563 if (ofi.img.naturalWidth > el.width || ofi.img.naturalHeight > el.height) { 21564 el.style.backgroundSize = 'contain'; 21565 } else { 21566 el.style.backgroundSize = 'auto'; 21567 } 21568 }); 21569 } else { 21570 el.style.backgroundSize = style['object-fit'].replace('none', 'auto').replace('fill', '100% 100%'); 21571 } 21572 21573 onImageReady(ofi.img, function (img) { 21574 setPlaceholder(el, img.naturalWidth, img.naturalHeight); 21575 }); 21576} 21577 21578function keepSrcUsable(el) { 21579 var descriptors = { 21580 get: function get(prop) { 21581 return el[OFI].img[prop ? prop : 'src']; 21582 }, 21583 set: function set(value, prop) { 21584 el[OFI].img[prop ? prop : 'src'] = value; 21585 nativeSetAttribute.call(el, ("data-ofi-" + prop), value); // preserve for any future cloneNode 21586 fixOne(el); 21587 return value; 21588 } 21589 }; 21590 Object.defineProperty(el, 'src', descriptors); 21591 Object.defineProperty(el, 'currentSrc', { 21592 get: function () { return descriptors.get('currentSrc'); } 21593 }); 21594 Object.defineProperty(el, 'srcset', { 21595 get: function () { return descriptors.get('srcset'); }, 21596 set: function (ss) { return descriptors.set(ss, 'srcset'); } 21597 }); 21598} 21599 21600function hijackAttributes() { 21601 function getOfiImageMaybe(el, name) { 21602 return el[OFI] && el[OFI].img && (name === 'src' || name === 'srcset') ? el[OFI].img : el; 21603 } 21604 if (!supportsObjectPosition) { 21605 HTMLImageElement.prototype.getAttribute = function (name) { 21606 return nativeGetAttribute.call(getOfiImageMaybe(this, name), name); 21607 }; 21608 21609 HTMLImageElement.prototype.setAttribute = function (name, value) { 21610 return nativeSetAttribute.call(getOfiImageMaybe(this, name), name, String(value)); 21611 }; 21612 } 21613} 21614 21615function fix(imgs, opts) { 21616 var startAutoMode = !autoModeEnabled && !imgs; 21617 opts = opts || {}; 21618 imgs = imgs || 'img'; 21619 21620 if ((supportsObjectPosition && !opts.skipTest) || !supportsOFI) { 21621 return false; 21622 } 21623 21624 // use imgs as a selector or just select all images 21625 if (imgs === 'img') { 21626 imgs = document.getElementsByTagName('img'); 21627 } else if (typeof imgs === 'string') { 21628 imgs = document.querySelectorAll(imgs); 21629 } else if (!('length' in imgs)) { 21630 imgs = [imgs]; 21631 } 21632 21633 // apply fix to all 21634 for (var i = 0; i < imgs.length; i++) { 21635 imgs[i][OFI] = imgs[i][OFI] || { 21636 skipTest: opts.skipTest 21637 }; 21638 fixOne(imgs[i]); 21639 } 21640 21641 if (startAutoMode) { 21642 document.body.addEventListener('load', function (e) { 21643 if (e.target.tagName === 'IMG') { 21644 fix(e.target, { 21645 skipTest: opts.skipTest 21646 }); 21647 } 21648 }, true); 21649 autoModeEnabled = true; 21650 imgs = 'img'; // reset to a generic selector for watchMQ 21651 } 21652 21653 // if requested, watch media queries for object-fit change 21654 if (opts.watchMQ) { 21655 window.addEventListener('resize', fix.bind(null, imgs, { 21656 skipTest: opts.skipTest 21657 })); 21658 } 21659} 21660 21661fix.supportsObjectFit = supportsObjectFit; 21662fix.supportsObjectPosition = supportsObjectPosition; 21663 21664hijackAttributes(); 21665 21666module.exports = fix; 21667 21668 21669/***/ }), 21670
vendor: 36,395 bytes, lines 21671-23024
21671/***/ "./node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js": 21672/*!**********************************************************************!*\ 21673 !*** ./node_modules/perfect-scrollbar/dist/perfect-scrollbar.esm.js ***! 21674 \**********************************************************************/ 21675/*! exports provided: default */ 21676/***/ (function(module, __webpack_exports__, __webpack_require__) { 21677 21678"use strict"; 21679__webpack_require__.r(__webpack_exports__); 21680/*! 21681 * perfect-scrollbar v1.5.0 21682 * Copyright 2020 Hyunje Jun, MDBootstrap and Contributors 21683 * Licensed under MIT 21684 */ 21685 21686function get(element) { 21687 return getComputedStyle(element); 21688} 21689 21690function set(element, obj) { 21691 for (var key in obj) { 21692 var val = obj[key]; 21693 if (typeof val === 'number') { 21694 val = val + "px"; 21695 } 21696 element.style[key] = val; 21697 } 21698 return element; 21699} 21700 21701function div(className) { 21702 var div = document.createElement('div'); 21703 div.className = className; 21704 return div; 21705} 21706 21707var elMatches = 21708 typeof Element !== 'undefined' && 21709 (Element.prototype.matches || 21710 Element.prototype.webkitMatchesSelector || 21711 Element.prototype.mozMatchesSelector || 21712 Element.prototype.msMatchesSelector); 21713 21714function matches(element, query) { 21715 if (!elMatches) { 21716 throw new Error('No element matching method supported'); 21717 } 21718 21719 return elMatches.call(element, query); 21720} 21721 21722function remove(element) { 21723 if (element.remove) { 21724 element.remove(); 21725 } else { 21726 if (element.parentNode) { 21727 element.parentNode.removeChild(element); 21728 } 21729 } 21730} 21731 21732function queryChildren(element, selector) { 21733 return Array.prototype.filter.call(element.children, function (child) { return matches(child, selector); } 21734 ); 21735} 21736 21737var cls = { 21738 main: 'ps', 21739 rtl: 'ps__rtl', 21740 element: { 21741 thumb: function (x) { return ("ps__thumb-" + x); }, 21742 rail: function (x) { return ("ps__rail-" + x); }, 21743 consuming: 'ps__child--consume', 21744 }, 21745 state: { 21746 focus: 'ps--focus', 21747 clicking: 'ps--clicking', 21748 active: function (x) { return ("ps--active-" + x); }, 21749 scrolling: function (x) { return ("ps--scrolling-" + x); }, 21750 }, 21751}; 21752 21753/* 21754 * Helper methods 21755 */ 21756var scrollingClassTimeout = { x: null, y: null }; 21757 21758function addScrollingClass(i, x) { 21759 var classList = i.element.classList; 21760 var className = cls.state.scrolling(x); 21761 21762 if (classList.contains(className)) { 21763 clearTimeout(scrollingClassTimeout[x]); 21764 } else { 21765 classList.add(className); 21766 } 21767} 21768 21769function removeScrollingClass(i, x) { 21770 scrollingClassTimeout[x] = setTimeout( 21771 function () { return i.isAlive && i.element.classList.remove(cls.state.scrolling(x)); }, 21772 i.settings.scrollingThreshold 21773 ); 21774} 21775 21776function setScrollingClassInstantly(i, x) { 21777 addScrollingClass(i, x); 21778 removeScrollingClass(i, x); 21779} 21780 21781var EventElement = function EventElement(element) { 21782 this.element = element; 21783 this.handlers = {}; 21784}; 21785 21786var prototypeAccessors = { isEmpty: { configurable: true } }; 21787 21788EventElement.prototype.bind = function bind (eventName, handler) { 21789 if (typeof this.handlers[eventName] === 'undefined') { 21790 this.handlers[eventName] = []; 21791 } 21792 this.handlers[eventName].push(handler); 21793 this.element.addEventListener(eventName, handler, false); 21794}; 21795 21796EventElement.prototype.unbind = function unbind (eventName, target) { 21797 var this$1 = this; 21798 21799 this.handlers[eventName] = this.handlers[eventName].filter(function (handler) { 21800 if (target && handler !== target) { 21801 return true; 21802 } 21803 this$1.element.removeEventListener(eventName, handler, false); 21804 return false; 21805 }); 21806}; 21807 21808EventElement.prototype.unbindAll = function unbindAll () { 21809 for (var name in this.handlers) { 21810 this.unbind(name); 21811 } 21812}; 21813 21814prototypeAccessors.isEmpty.get = function () { 21815 var this$1 = this; 21816 21817 return Object.keys(this.handlers).every( 21818 function (key) { return this$1.handlers[key].length === 0; } 21819 ); 21820}; 21821 21822Object.defineProperties( EventElement.prototype, prototypeAccessors ); 21823 21824var EventManager = function EventManager() { 21825 this.eventElements = []; 21826}; 21827 21828EventManager.prototype.eventElement = function eventElement (element) { 21829 var ee = this.eventElements.filter(function (ee) { return ee.element === element; })[0]; 21830 if (!ee) { 21831 ee = new EventElement(element); 21832 this.eventElements.push(ee); 21833 } 21834 return ee; 21835}; 21836 21837EventManager.prototype.bind = function bind (element, eventName, handler) { 21838 this.eventElement(element).bind(eventName, handler); 21839}; 21840 21841EventManager.prototype.unbind = function unbind (element, eventName, handler) { 21842 var ee = this.eventElement(element); 21843 ee.unbind(eventName, handler); 21844 21845 if (ee.isEmpty) { 21846 // remove 21847 this.eventElements.splice(this.eventElements.indexOf(ee), 1); 21848 } 21849}; 21850 21851EventManager.prototype.unbindAll = function unbindAll () { 21852 this.eventElements.forEach(function (e) { return e.unbindAll(); }); 21853 this.eventElements = []; 21854}; 21855 21856EventManager.prototype.once = function once (element, eventName, handler) { 21857 var ee = this.eventElement(element); 21858 var onceHandler = function (evt) { 21859 ee.unbind(eventName, onceHandler); 21860 handler(evt); 21861 }; 21862 ee.bind(eventName, onceHandler); 21863}; 21864 21865function createEvent(name) { 21866 if (typeof window.CustomEvent === 'function') { 21867 return new CustomEvent(name); 21868 } else { 21869 var evt = document.createEvent('CustomEvent'); 21870 evt.initCustomEvent(name, false, false, undefined); 21871 return evt; 21872 } 21873} 21874 21875function processScrollDiff( 21876 i, 21877 axis, 21878 diff, 21879 useScrollingClass, 21880 forceFireReachEvent 21881) { 21882 if ( useScrollingClass === void 0 ) useScrollingClass = true; 21883 if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false; 21884 21885 var fields; 21886 if (axis === 'top') { 21887 fields = [ 21888 'contentHeight', 21889 'containerHeight', 21890 'scrollTop', 21891 'y', 21892 'up', 21893 'down' ]; 21894 } else if (axis === 'left') { 21895 fields = [ 21896 'contentWidth', 21897 'containerWidth', 21898 'scrollLeft', 21899 'x', 21900 'left', 21901 'right' ]; 21902 } else { 21903 throw new Error('A proper axis should be provided'); 21904 } 21905 21906 processScrollDiff$1(i, diff, fields, useScrollingClass, forceFireReachEvent); 21907} 21908 21909function processScrollDiff$1( 21910 i, 21911 diff, 21912 ref, 21913 useScrollingClass, 21914 forceFireReachEvent 21915) { 21916 var contentHeight = ref[0]; 21917 var containerHeight = ref[1]; 21918 var scrollTop = ref[2]; 21919 var y = ref[3]; 21920 var up = ref[4]; 21921 var down = ref[5]; 21922 if ( useScrollingClass === void 0 ) useScrollingClass = true; 21923 if ( forceFireReachEvent === void 0 ) forceFireReachEvent = false; 21924 21925 var element = i.element; 21926 21927 // reset reach 21928 i.reach[y] = null; 21929 21930 // 1 for subpixel rounding 21931 if (element[scrollTop] < 1) { 21932 i.reach[y] = 'start'; 21933 } 21934 21935 // 1 for subpixel rounding 21936 if (element[scrollTop] > i[contentHeight] - i[containerHeight] - 1) { 21937 i.reach[y] = 'end'; 21938 } 21939 21940 if (diff) { 21941 element.dispatchEvent(createEvent(("ps-scroll-" + y))); 21942 21943 if (diff < 0) { 21944 element.dispatchEvent(createEvent(("ps-scroll-" + up))); 21945 } else if (diff > 0) { 21946 element.dispatchEvent(createEvent(("ps-scroll-" + down))); 21947 } 21948 21949 if (useScrollingClass) { 21950 setScrollingClassInstantly(i, y); 21951 } 21952 } 21953 21954 if (i.reach[y] && (diff || forceFireReachEvent)) { 21955 element.dispatchEvent(createEvent(("ps-" + y + "-reach-" + (i.reach[y])))); 21956 } 21957} 21958 21959function toInt(x) { 21960 return parseInt(x, 10) || 0; 21961} 21962 21963function isEditable(el) { 21964 return ( 21965 matches(el, 'input,[contenteditable]') || 21966 matches(el, 'select,[contenteditable]') || 21967 matches(el, 'textarea,[contenteditable]') || 21968 matches(el, 'button,[contenteditable]') 21969 ); 21970} 21971 21972function outerWidth(element) { 21973 var styles = get(element); 21974 return ( 21975 toInt(styles.width) + 21976 toInt(styles.paddingLeft) + 21977 toInt(styles.paddingRight) + 21978 toInt(styles.borderLeftWidth) + 21979 toInt(styles.borderRightWidth) 21980 ); 21981} 21982 21983var env = { 21984 isWebKit: 21985 typeof document !== 'undefined' && 21986 'WebkitAppearance' in document.documentElement.style, 21987 supportsTouch: 21988 typeof window !== 'undefined' && 21989 ('ontouchstart' in window || 21990 ('maxTouchPoints' in window.navigator && 21991 window.navigator.maxTouchPoints > 0) || 21992 (window.DocumentTouch && document instanceof window.DocumentTouch)), 21993 supportsIePointer: 21994 typeof navigator !== 'undefined' && navigator.msMaxTouchPoints, 21995 isChrome: 21996 typeof navigator !== 'undefined' && 21997 /Chrome/i.test(navigator && navigator.userAgent), 21998}; 21999 22000function updateGeometry(i) { 22001 var element = i.element; 22002 var roundedScrollTop = Math.floor(element.scrollTop); 22003 var rect = element.getBoundingClientRect(); 22004 22005 i.containerWidth = Math.ceil(rect.width); 22006 i.containerHeight = Math.ceil(rect.height); 22007 i.contentWidth = element.scrollWidth; 22008 i.contentHeight = element.scrollHeight; 22009 22010 if (!element.contains(i.scrollbarXRail)) { 22011 // clean up and append 22012 queryChildren(element, cls.element.rail('x')).forEach(function (el) { return remove(el); } 22013 ); 22014 element.appendChild(i.scrollbarXRail); 22015 } 22016 if (!element.contains(i.scrollbarYRail)) { 22017 // clean up and append 22018 queryChildren(element, cls.element.rail('y')).forEach(function (el) { return remove(el); } 22019 ); 22020 element.appendChild(i.scrollbarYRail); 22021 } 22022 22023 if ( 22024 !i.settings.suppressScrollX && 22025 i.containerWidth + i.settings.scrollXMarginOffset < i.contentWidth 22026 ) { 22027 i.scrollbarXActive = true; 22028 i.railXWidth = i.containerWidth - i.railXMarginWidth; 22029 i.railXRatio = i.containerWidth / i.railXWidth; 22030 i.scrollbarXWidth = getThumbSize( 22031 i, 22032 toInt((i.railXWidth * i.containerWidth) / i.contentWidth) 22033 ); 22034 i.scrollbarXLeft = toInt( 22035 ((i.negativeScrollAdjustment + element.scrollLeft) * 22036 (i.railXWidth - i.scrollbarXWidth)) / 22037 (i.contentWidth - i.containerWidth) 22038 ); 22039 } else { 22040 i.scrollbarXActive = false; 22041 } 22042 22043 if ( 22044 !i.settings.suppressScrollY && 22045 i.containerHeight + i.settings.scrollYMarginOffset < i.contentHeight 22046 ) { 22047 i.scrollbarYActive = true; 22048 i.railYHeight = i.containerHeight - i.railYMarginHeight; 22049 i.railYRatio = i.containerHeight / i.railYHeight; 22050 i.scrollbarYHeight = getThumbSize( 22051 i, 22052 toInt((i.railYHeight * i.containerHeight) / i.contentHeight) 22053 ); 22054 i.scrollbarYTop = toInt( 22055 (roundedScrollTop * (i.railYHeight - i.scrollbarYHeight)) / 22056 (i.contentHeight - i.containerHeight) 22057 ); 22058 } else { 22059 i.scrollbarYActive = false; 22060 } 22061 22062 if (i.scrollbarXLeft >= i.railXWidth - i.scrollbarXWidth) { 22063 i.scrollbarXLeft = i.railXWidth - i.scrollbarXWidth; 22064 } 22065 if (i.scrollbarYTop >= i.railYHeight - i.scrollbarYHeight) { 22066 i.scrollbarYTop = i.railYHeight - i.scrollbarYHeight; 22067 } 22068 22069 updateCss(element, i); 22070 22071 if (i.scrollbarXActive) { 22072 element.classList.add(cls.state.active('x')); 22073 } else { 22074 element.classList.remove(cls.state.active('x')); 22075 i.scrollbarXWidth = 0; 22076 i.scrollbarXLeft = 0; 22077 element.scrollLeft = i.isRtl === true ? i.contentWidth : 0; 22078 } 22079 if (i.scrollbarYActive) { 22080 element.classList.add(cls.state.active('y')); 22081 } else { 22082 element.classList.remove(cls.state.active('y')); 22083 i.scrollbarYHeight = 0; 22084 i.scrollbarYTop = 0; 22085 element.scrollTop = 0; 22086 } 22087} 22088 22089function getThumbSize(i, thumbSize) { 22090 if (i.settings.minScrollbarLength) { 22091 thumbSize = Math.max(thumbSize, i.settings.minScrollbarLength); 22092 } 22093 if (i.settings.maxScrollbarLength) { 22094 thumbSize = Math.min(thumbSize, i.settings.maxScrollbarLength); 22095 } 22096 return thumbSize; 22097} 22098 22099function updateCss(element, i) { 22100 var xRailOffset = { width: i.railXWidth }; 22101 var roundedScrollTop = Math.floor(element.scrollTop); 22102 22103 if (i.isRtl) { 22104 xRailOffset.left = 22105 i.negativeScrollAdjustment + 22106 element.scrollLeft + 22107 i.containerWidth - 22108 i.contentWidth; 22109 } else { 22110 xRailOffset.left = element.scrollLeft; 22111 } 22112 if (i.isScrollbarXUsingBottom) { 22113 xRailOffset.bottom = i.scrollbarXBottom - roundedScrollTop; 22114 } else { 22115 xRailOffset.top = i.scrollbarXTop + roundedScrollTop; 22116 } 22117 set(i.scrollbarXRail, xRailOffset); 22118 22119 var yRailOffset = { top: roundedScrollTop, height: i.railYHeight }; 22120 if (i.isScrollbarYUsingRight) { 22121 if (i.isRtl) { 22122 yRailOffset.right = 22123 i.contentWidth - 22124 (i.negativeScrollAdjustment + element.scrollLeft) - 22125 i.scrollbarYRight - 22126 i.scrollbarYOuterWidth - 22127 9; 22128 } else { 22129 yRailOffset.right = i.scrollbarYRight - element.scrollLeft; 22130 } 22131 } else { 22132 if (i.isRtl) { 22133 yRailOffset.left = 22134 i.negativeScrollAdjustment + 22135 element.scrollLeft + 22136 i.containerWidth * 2 - 22137 i.contentWidth - 22138 i.scrollbarYLeft - 22139 i.scrollbarYOuterWidth; 22140 } else { 22141 yRailOffset.left = i.scrollbarYLeft + element.scrollLeft; 22142 } 22143 } 22144 set(i.scrollbarYRail, yRailOffset); 22145 22146 set(i.scrollbarX, { 22147 left: i.scrollbarXLeft, 22148 width: i.scrollbarXWidth - i.railBorderXWidth, 22149 }); 22150 set(i.scrollbarY, { 22151 top: i.scrollbarYTop, 22152 height: i.scrollbarYHeight - i.railBorderYWidth, 22153 }); 22154} 22155 22156function clickRail(i) { 22157 var element = i.element; 22158 22159 i.event.bind(i.scrollbarY, 'mousedown', function (e) { return e.stopPropagation(); }); 22160 i.event.bind(i.scrollbarYRail, 'mousedown', function (e) { 22161 var positionTop = 22162 e.pageY - 22163 window.pageYOffset - 22164 i.scrollbarYRail.getBoundingClientRect().top; 22165 var direction = positionTop > i.scrollbarYTop ? 1 : -1; 22166 22167 i.element.scrollTop += direction * i.containerHeight; 22168 updateGeometry(i); 22169 22170 e.stopPropagation(); 22171 }); 22172 22173 i.event.bind(i.scrollbarX, 'mousedown', function (e) { return e.stopPropagation(); }); 22174 i.event.bind(i.scrollbarXRail, 'mousedown', function (e) { 22175 var positionLeft = 22176 e.pageX - 22177 window.pageXOffset - 22178 i.scrollbarXRail.getBoundingClientRect().left; 22179 var direction = positionLeft > i.scrollbarXLeft ? 1 : -1; 22180 22181 i.element.scrollLeft += direction * i.containerWidth; 22182 updateGeometry(i); 22183 22184 e.stopPropagation(); 22185 }); 22186} 22187 22188function dragThumb(i) { 22189 bindMouseScrollHandler(i, [ 22190 'containerWidth', 22191 'contentWidth', 22192 'pageX', 22193 'railXWidth', 22194 'scrollbarX', 22195 'scrollbarXWidth', 22196 'scrollLeft', 22197 'x', 22198 'scrollbarXRail' ]); 22199 bindMouseScrollHandler(i, [ 22200 'containerHeight', 22201 'contentHeight', 22202 'pageY', 22203 'railYHeight', 22204 'scrollbarY', 22205 'scrollbarYHeight', 22206 'scrollTop', 22207 'y', 22208 'scrollbarYRail' ]); 22209} 22210 22211function bindMouseScrollHandler( 22212 i, 22213 ref 22214) { 22215 var containerHeight = ref[0]; 22216 var contentHeight = ref[1]; 22217 var pageY = ref[2]; 22218 var railYHeight = ref[3]; 22219 var scrollbarY = ref[4]; 22220 var scrollbarYHeight = ref[5]; 22221 var scrollTop = ref[6]; 22222 var y = ref[7]; 22223 var scrollbarYRail = ref[8]; 22224 22225 var element = i.element; 22226 22227 var startingScrollTop = null; 22228 var startingMousePageY = null; 22229 var scrollBy = null; 22230 22231 function mouseMoveHandler(e) { 22232 if (e.touches && e.touches[0]) { 22233 e[pageY] = e.touches[0].pageY; 22234 } 22235 element[scrollTop] = 22236 startingScrollTop + scrollBy * (e[pageY] - startingMousePageY); 22237 addScrollingClass(i, y); 22238 updateGeometry(i); 22239 22240 e.stopPropagation(); 22241 e.preventDefault(); 22242 } 22243 22244 function mouseUpHandler() { 22245 removeScrollingClass(i, y); 22246 i[scrollbarYRail].classList.remove(cls.state.clicking); 22247 i.event.unbind(i.ownerDocument, 'mousemove', mouseMoveHandler); 22248 } 22249 22250 function bindMoves(e, touchMode) { 22251 startingScrollTop = element[scrollTop]; 22252 if (touchMode && e.touches) { 22253 e[pageY] = e.touches[0].pageY; 22254 } 22255 startingMousePageY = e[pageY]; 22256 scrollBy = 22257 (i[contentHeight] - i[containerHeight]) / 22258 (i[railYHeight] - i[scrollbarYHeight]); 22259 if (!touchMode) { 22260 i.event.bind(i.ownerDocument, 'mousemove', mouseMoveHandler); 22261 i.event.once(i.ownerDocument, 'mouseup', mouseUpHandler); 22262 e.preventDefault(); 22263 } else { 22264 i.event.bind(i.ownerDocument, 'touchmove', mouseMoveHandler); 22265 } 22266 22267 i[scrollbarYRail].classList.add(cls.state.clicking); 22268 22269 e.stopPropagation(); 22270 } 22271 22272 i.event.bind(i[scrollbarY], 'mousedown', function (e) { 22273 bindMoves(e); 22274 }); 22275 i.event.bind(i[scrollbarY], 'touchstart', function (e) { 22276 bindMoves(e, true); 22277 }); 22278} 22279 22280function keyboard(i) { 22281 var element = i.element; 22282 22283 var elementHovered = function () { return matches(element, ':hover'); }; 22284 var scrollbarFocused = function () { return matches(i.scrollbarX, ':focus') || matches(i.scrollbarY, ':focus'); }; 22285 22286 function shouldPreventDefault(deltaX, deltaY) { 22287 var scrollTop = Math.floor(element.scrollTop); 22288 if (deltaX === 0) { 22289 if (!i.scrollbarYActive) { 22290 return false; 22291 } 22292 if ( 22293 (scrollTop === 0 && deltaY > 0) || 22294 (scrollTop >= i.contentHeight - i.containerHeight && deltaY < 0) 22295 ) { 22296 return !i.settings.wheelPropagation; 22297 } 22298 } 22299 22300 var scrollLeft = element.scrollLeft; 22301 if (deltaY === 0) { 22302 if (!i.scrollbarXActive) { 22303 return false; 22304 } 22305 if ( 22306 (scrollLeft === 0 && deltaX < 0) || 22307 (scrollLeft >= i.contentWidth - i.containerWidth && deltaX > 0) 22308 ) { 22309 return !i.settings.wheelPropagation; 22310 } 22311 } 22312 return true; 22313 } 22314 22315 i.event.bind(i.ownerDocument, 'keydown', function (e) { 22316 if ( 22317 (e.isDefaultPrevented && e.isDefaultPrevented()) || 22318 e.defaultPrevented 22319 ) { 22320 return; 22321 } 22322 22323 if (!elementHovered() && !scrollbarFocused()) { 22324 return; 22325 } 22326 22327 var activeElement = document.activeElement 22328 ? document.activeElement 22329 : i.ownerDocument.activeElement; 22330 if (activeElement) { 22331 if (activeElement.tagName === 'IFRAME') { 22332 activeElement = activeElement.contentDocument.activeElement; 22333 } else { 22334 // go deeper if element is a webcomponent 22335 while (activeElement.shadowRoot) { 22336 activeElement = activeElement.shadowRoot.activeElement; 22337 } 22338 } 22339 if (isEditable(activeElement)) { 22340 return; 22341 } 22342 } 22343 22344 var deltaX = 0; 22345 var deltaY = 0; 22346 22347 switch (e.which) { 22348 case 37: // left 22349 if (e.metaKey) { 22350 deltaX = -i.contentWidth; 22351 } else if (e.altKey) { 22352 deltaX = -i.containerWidth; 22353 } else { 22354 deltaX = -30; 22355 } 22356 break; 22357 case 38: // up 22358 if (e.metaKey) { 22359 deltaY = i.contentHeight; 22360 } else if (e.altKey) { 22361 deltaY = i.containerHeight; 22362 } else { 22363 deltaY = 30; 22364 } 22365 break; 22366 case 39: // right 22367 if (e.metaKey) { 22368 deltaX = i.contentWidth; 22369 } else if (e.altKey) { 22370 deltaX = i.containerWidth; 22371 } else { 22372 deltaX = 30; 22373 } 22374 break; 22375 case 40: // down 22376 if (e.metaKey) { 22377 deltaY = -i.contentHeight; 22378 } else if (e.altKey) { 22379 deltaY = -i.containerHeight; 22380 } else { 22381 deltaY = -30; 22382 } 22383 break; 22384 case 32: // space bar 22385 if (e.shiftKey) { 22386 deltaY = i.containerHeight; 22387 } else { 22388 deltaY = -i.containerHeight; 22389 } 22390 break; 22391 case 33: // page up 22392 deltaY = i.containerHeight; 22393 break; 22394 case 34: // page down 22395 deltaY = -i.containerHeight; 22396 break; 22397 case 36: // home 22398 deltaY = i.contentHeight; 22399 break; 22400 case 35: // end 22401 deltaY = -i.contentHeight; 22402 break; 22403 default: 22404 return; 22405 } 22406 22407 if (i.settings.suppressScrollX && deltaX !== 0) { 22408 return; 22409 } 22410 if (i.settings.suppressScrollY && deltaY !== 0) { 22411 return; 22412 } 22413 22414 element.scrollTop -= deltaY; 22415 element.scrollLeft += deltaX; 22416 updateGeometry(i); 22417 22418 if (shouldPreventDefault(deltaX, deltaY)) { 22419 e.preventDefault(); 22420 } 22421 }); 22422} 22423 22424function wheel(i) { 22425 var element = i.element; 22426 22427 function shouldPreventDefault(deltaX, deltaY) { 22428 var roundedScrollTop = Math.floor(element.scrollTop); 22429 var isTop = element.scrollTop === 0; 22430 var isBottom = 22431 roundedScrollTop + element.offsetHeight === element.scrollHeight; 22432 var isLeft = element.scrollLeft === 0; 22433 var isRight = 22434 element.scrollLeft + element.offsetWidth === element.scrollWidth; 22435 22436 var hitsBound; 22437 22438 // pick axis with primary direction 22439 if (Math.abs(deltaY) > Math.abs(deltaX)) { 22440 hitsBound = isTop || isBottom; 22441 } else { 22442 hitsBound = isLeft || isRight; 22443 } 22444 22445 return hitsBound ? !i.settings.wheelPropagation : true; 22446 } 22447 22448 function getDeltaFromEvent(e) { 22449 var deltaX = e.deltaX; 22450 var deltaY = -1 * e.deltaY; 22451 22452 if (typeof deltaX === 'undefined' || typeof deltaY === 'undefined') { 22453 // OS X Safari 22454 deltaX = (-1 * e.wheelDeltaX) / 6; 22455 deltaY = e.wheelDeltaY / 6; 22456 } 22457 22458 if (e.deltaMode && e.deltaMode === 1) { 22459 // Firefox in deltaMode 1: Line scrolling 22460 deltaX *= 10; 22461 deltaY *= 10; 22462 } 22463 22464 if (deltaX !== deltaX && deltaY !== deltaY /* NaN checks */) { 22465 // IE in some mouse drivers 22466 deltaX = 0; 22467 deltaY = e.wheelDelta; 22468 } 22469 22470 if (e.shiftKey) { 22471 // reverse axis with shift key 22472 return [-deltaY, -deltaX]; 22473 } 22474 return [deltaX, deltaY]; 22475 } 22476 22477 function shouldBeConsumedByChild(target, deltaX, deltaY) { 22478 // FIXME: this is a workaround for <select> issue in FF and IE #571 22479 if (!env.isWebKit && element.querySelector('select:focus')) { 22480 return true; 22481 } 22482 22483 if (!element.contains(target)) { 22484 return false; 22485 } 22486 22487 var cursor = target; 22488 22489 while (cursor && cursor !== element) { 22490 if (cursor.classList.contains(cls.element.consuming)) { 22491 return true; 22492 } 22493 22494 var style = get(cursor); 22495 22496 // if deltaY && vertical scrollable 22497 if (deltaY && style.overflowY.match(/(scroll|auto)/)) { 22498 var maxScrollTop = cursor.scrollHeight - cursor.clientHeight; 22499 if (maxScrollTop > 0) { 22500 if ( 22501 (cursor.scrollTop > 0 && deltaY < 0) || 22502 (cursor.scrollTop < maxScrollTop && deltaY > 0) 22503 ) { 22504 return true; 22505 } 22506 } 22507 } 22508 // if deltaX && horizontal scrollable 22509 if (deltaX && style.overflowX.match(/(scroll|auto)/)) { 22510 var maxScrollLeft = cursor.scrollWidth - cursor.clientWidth; 22511 if (maxScrollLeft > 0) { 22512 if ( 22513 (cursor.scrollLeft > 0 && deltaX < 0) || 22514 (cursor.scrollLeft < maxScrollLeft && deltaX > 0) 22515 ) { 22516 return true; 22517 } 22518 } 22519 } 22520 22521 cursor = cursor.parentNode; 22522 } 22523 22524 return false; 22525 } 22526 22527 function mousewheelHandler(e) { 22528 var ref = getDeltaFromEvent(e); 22529 var deltaX = ref[0]; 22530 var deltaY = ref[1]; 22531 22532 if (shouldBeConsumedByChild(e.target, deltaX, deltaY)) { 22533 return; 22534 } 22535 22536 var shouldPrevent = false; 22537 if (!i.settings.useBothWheelAxes) { 22538 // deltaX will only be used for horizontal scrolling and deltaY will 22539 // only be used for vertical scrolling - this is the default 22540 element.scrollTop -= deltaY * i.settings.wheelSpeed; 22541 element.scrollLeft += deltaX * i.settings.wheelSpeed; 22542 } else if (i.scrollbarYActive && !i.scrollbarXActive) { 22543 // only vertical scrollbar is active and useBothWheelAxes option is 22544 // active, so let's scroll vertical bar using both mouse wheel axes 22545 if (deltaY) { 22546 element.scrollTop -= deltaY * i.settings.wheelSpeed; 22547 } else { 22548 element.scrollTop += deltaX * i.settings.wheelSpeed; 22549 } 22550 shouldPrevent = true; 22551 } else if (i.scrollbarXActive && !i.scrollbarYActive) { 22552 // useBothWheelAxes and only horizontal bar is active, so use both 22553 // wheel axes for horizontal bar 22554 if (deltaX) { 22555 element.scrollLeft += deltaX * i.settings.wheelSpeed; 22556 } else { 22557 element.scrollLeft -= deltaY * i.settings.wheelSpeed; 22558 } 22559 shouldPrevent = true; 22560 } 22561 22562 updateGeometry(i); 22563 22564 shouldPrevent = shouldPrevent || shouldPreventDefault(deltaX, deltaY); 22565 if (shouldPrevent && !e.ctrlKey) { 22566 e.stopPropagation(); 22567 e.preventDefault(); 22568 } 22569 } 22570 22571 if (typeof window.onwheel !== 'undefined') { 22572 i.event.bind(element, 'wheel', mousewheelHandler); 22573 } else if (typeof window.onmousewheel !== 'undefined') { 22574 i.event.bind(element, 'mousewheel', mousewheelHandler); 22575 } 22576} 22577 22578function touch(i) { 22579 if (!env.supportsTouch && !env.supportsIePointer) { 22580 return; 22581 } 22582 22583 var element = i.element; 22584 22585 function shouldPrevent(deltaX, deltaY) { 22586 var scrollTop = Math.floor(element.scrollTop); 22587 var scrollLeft = element.scrollLeft; 22588 var magnitudeX = Math.abs(deltaX); 22589 var magnitudeY = Math.abs(deltaY); 22590 22591 if (magnitudeY > magnitudeX) { 22592 // user is perhaps trying to swipe up/down the page 22593 22594 if ( 22595 (deltaY < 0 && scrollTop === i.contentHeight - i.containerHeight) || 22596 (deltaY > 0 && scrollTop === 0) 22597 ) { 22598 // set prevent for mobile Chrome refresh 22599 return window.scrollY === 0 && deltaY > 0 && env.isChrome; 22600 } 22601 } else if (magnitudeX > magnitudeY) { 22602 // user is perhaps trying to swipe left/right across the page 22603 22604 if ( 22605 (deltaX < 0 && scrollLeft === i.contentWidth - i.containerWidth) || 22606 (deltaX > 0 && scrollLeft === 0) 22607 ) { 22608 return true; 22609 } 22610 } 22611 22612 return true; 22613 } 22614 22615 function applyTouchMove(differenceX, differenceY) { 22616 element.scrollTop -= differenceY; 22617 element.scrollLeft -= differenceX; 22618 22619 updateGeometry(i); 22620 } 22621 22622 var startOffset = {}; 22623 var startTime = 0; 22624 var speed = {}; 22625 var easingLoop = null; 22626 22627 function getTouch(e) { 22628 if (e.targetTouches) { 22629 return e.targetTouches[0]; 22630 } else { 22631 // Maybe IE pointer 22632 return e; 22633 } 22634 } 22635 22636 function shouldHandle(e) { 22637 if (e.pointerType && e.pointerType === 'pen' && e.buttons === 0) { 22638 return false; 22639 } 22640 if (e.targetTouches && e.targetTouches.length === 1) { 22641 return true; 22642 } 22643 if ( 22644 e.pointerType && 22645 e.pointerType !== 'mouse' && 22646 e.pointerType !== e.MSPOINTER_TYPE_MOUSE 22647 ) { 22648 return true; 22649 } 22650 return false; 22651 } 22652 22653 function touchStart(e) { 22654 if (!shouldHandle(e)) { 22655 return; 22656 } 22657 22658 var touch = getTouch(e); 22659 22660 startOffset.pageX = touch.pageX; 22661 startOffset.pageY = touch.pageY; 22662 22663 startTime = new Date().getTime(); 22664 22665 if (easingLoop !== null) { 22666 clearInterval(easingLoop); 22667 } 22668 } 22669 22670 function shouldBeConsumedByChild(target, deltaX, deltaY) { 22671 if (!element.contains(target)) { 22672 return false; 22673 } 22674 22675 var cursor = target; 22676 22677 while (cursor && cursor !== element) { 22678 if (cursor.classList.contains(cls.element.consuming)) { 22679 return true; 22680 } 22681 22682 var style = get(cursor); 22683 22684 // if deltaY && vertical scrollable 22685 if (deltaY && style.overflowY.match(/(scroll|auto)/)) { 22686 var maxScrollTop = cursor.scrollHeight - cursor.clientHeight; 22687 if (maxScrollTop > 0) { 22688 if ( 22689 (cursor.scrollTop > 0 && deltaY < 0) || 22690 (cursor.scrollTop < maxScrollTop && deltaY > 0) 22691 ) { 22692 return true; 22693 } 22694 } 22695 } 22696 // if deltaX && horizontal scrollable 22697 if (deltaX && style.overflowX.match(/(scroll|auto)/)) { 22698 var maxScrollLeft = cursor.scrollWidth - cursor.clientWidth; 22699 if (maxScrollLeft > 0) { 22700 if ( 22701 (cursor.scrollLeft > 0 && deltaX < 0) || 22702 (cursor.scrollLeft < maxScrollLeft && deltaX > 0) 22703 ) { 22704 return true; 22705 } 22706 } 22707 } 22708 22709 cursor = cursor.parentNode; 22710 } 22711 22712 return false; 22713 } 22714 22715 function touchMove(e) { 22716 if (shouldHandle(e)) { 22717 var touch = getTouch(e); 22718 22719 var currentOffset = { pageX: touch.pageX, pageY: touch.pageY }; 22720 22721 var differenceX = currentOffset.pageX - startOffset.pageX; 22722 var differenceY = currentOffset.pageY - startOffset.pageY; 22723 22724 if (shouldBeConsumedByChild(e.target, differenceX, differenceY)) { 22725 return; 22726 } 22727 22728 applyTouchMove(differenceX, differenceY); 22729 startOffset = currentOffset; 22730 22731 var currentTime = new Date().getTime(); 22732 22733 var timeGap = currentTime - startTime; 22734 if (timeGap > 0) { 22735 speed.x = differenceX / timeGap; 22736 speed.y = differenceY / timeGap; 22737 startTime = currentTime; 22738 } 22739 22740 if (shouldPrevent(differenceX, differenceY)) { 22741 e.preventDefault(); 22742 } 22743 } 22744 } 22745 function touchEnd() { 22746 if (i.settings.swipeEasing) { 22747 clearInterval(easingLoop); 22748 easingLoop = setInterval(function() { 22749 if (i.isInitialized) { 22750 clearInterval(easingLoop); 22751 return; 22752 } 22753 22754 if (!speed.x && !speed.y) { 22755 clearInterval(easingLoop); 22756 return; 22757 } 22758 22759 if (Math.abs(speed.x) < 0.01 && Math.abs(speed.y) < 0.01) { 22760 clearInterval(easingLoop); 22761 return; 22762 } 22763 22764 applyTouchMove(speed.x * 30, speed.y * 30); 22765 22766 speed.x *= 0.8; 22767 speed.y *= 0.8; 22768 }, 10); 22769 } 22770 } 22771 22772 if (env.supportsTouch) { 22773 i.event.bind(element, 'touchstart', touchStart); 22774 i.event.bind(element, 'touchmove', touchMove); 22775 i.event.bind(element, 'touchend', touchEnd); 22776 } else if (env.supportsIePointer) { 22777 if (window.PointerEvent) { 22778 i.event.bind(element, 'pointerdown', touchStart); 22779 i.event.bind(element, 'pointermove', touchMove); 22780 i.event.bind(element, 'pointerup', touchEnd); 22781 } else if (window.MSPointerEvent) { 22782 i.event.bind(element, 'MSPointerDown', touchStart); 22783 i.event.bind(element, 'MSPointerMove', touchMove); 22784 i.event.bind(element, 'MSPointerUp', touchEnd); 22785 } 22786 } 22787} 22788 22789var defaultSettings = function () { return ({ 22790 handlers: ['click-rail', 'drag-thumb', 'keyboard', 'wheel', 'touch'], 22791 maxScrollbarLength: null, 22792 minScrollbarLength: null, 22793 scrollingThreshold: 1000, 22794 scrollXMarginOffset: 0, 22795 scrollYMarginOffset: 0, 22796 suppressScrollX: false, 22797 suppressScrollY: false, 22798 swipeEasing: true, 22799 useBothWheelAxes: false, 22800 wheelPropagation: true, 22801 wheelSpeed: 1, 22802}); }; 22803 22804var handlers = { 22805 'click-rail': clickRail, 22806 'drag-thumb': dragThumb, 22807 keyboard: keyboard, 22808 wheel: wheel, 22809 touch: touch, 22810}; 22811 22812var PerfectScrollbar = function PerfectScrollbar(element, userSettings) { 22813 var this$1 = this; 22814 if ( userSettings === void 0 ) userSettings = {}; 22815 22816 if (typeof element === 'string') { 22817 element = document.querySelector(element); 22818 } 22819 22820 if (!element || !element.nodeName) { 22821 throw new Error('no element is specified to initialize PerfectScrollbar'); 22822 } 22823 22824 this.element = element; 22825 22826 element.classList.add(cls.main); 22827 22828 this.settings = defaultSettings(); 22829 for (var key in userSettings) { 22830 this.settings[key] = userSettings[key]; 22831 } 22832 22833 this.containerWidth = null; 22834 this.containerHeight = null; 22835 this.contentWidth = null; 22836 this.contentHeight = null; 22837 22838 var focus = function () { return element.classList.add(cls.state.focus); }; 22839 var blur = function () { return element.classList.remove(cls.state.focus); }; 22840 22841 this.isRtl = get(element).direction === 'rtl'; 22842 if (this.isRtl === true) { 22843 element.classList.add(cls.rtl); 22844 } 22845 this.isNegativeScroll = (function () { 22846 var originalScrollLeft = element.scrollLeft; 22847 var result = null; 22848 element.scrollLeft = -1; 22849 result = element.scrollLeft < 0; 22850 element.scrollLeft = originalScrollLeft; 22851 return result; 22852 })(); 22853 this.negativeScrollAdjustment = this.isNegativeScroll 22854 ? element.scrollWidth - element.clientWidth 22855 : 0; 22856 this.event = new EventManager(); 22857 this.ownerDocument = element.ownerDocument || document; 22858 22859 this.scrollbarXRail = div(cls.element.rail('x')); 22860 element.appendChild(this.scrollbarXRail); 22861 this.scrollbarX = div(cls.element.thumb('x')); 22862 this.scrollbarXRail.appendChild(this.scrollbarX); 22863 this.scrollbarX.setAttribute('tabindex', 0); 22864 this.event.bind(this.scrollbarX, 'focus', focus); 22865 this.event.bind(this.scrollbarX, 'blur', blur); 22866 this.scrollbarXActive = null; 22867 this.scrollbarXWidth = null; 22868 this.scrollbarXLeft = null; 22869 var railXStyle = get(this.scrollbarXRail); 22870 this.scrollbarXBottom = parseInt(railXStyle.bottom, 10); 22871 if (isNaN(this.scrollbarXBottom)) { 22872 this.isScrollbarXUsingBottom = false; 22873 this.scrollbarXTop = toInt(railXStyle.top); 22874 } else { 22875 this.isScrollbarXUsingBottom = true; 22876 } 22877 this.railBorderXWidth = 22878 toInt(railXStyle.borderLeftWidth) + toInt(railXStyle.borderRightWidth); 22879 // Set rail to display:block to calculate margins 22880 set(this.scrollbarXRail, { display: 'block' }); 22881 this.railXMarginWidth = 22882 toInt(railXStyle.marginLeft) + toInt(railXStyle.marginRight); 22883 set(this.scrollbarXRail, { display: '' }); 22884 this.railXWidth = null; 22885 this.railXRatio = null; 22886 22887 this.scrollbarYRail = div(cls.element.rail('y')); 22888 element.appendChild(this.scrollbarYRail); 22889 this.scrollbarY = div(cls.element.thumb('y')); 22890 this.scrollbarYRail.appendChild(this.scrollbarY); 22891 this.scrollbarY.setAttribute('tabindex', 0); 22892 this.event.bind(this.scrollbarY, 'focus', focus); 22893 this.event.bind(this.scrollbarY, 'blur', blur); 22894 this.scrollbarYActive = null; 22895 this.scrollbarYHeight = null; 22896 this.scrollbarYTop = null; 22897 var railYStyle = get(this.scrollbarYRail); 22898 this.scrollbarYRight = parseInt(railYStyle.right, 10); 22899 if (isNaN(this.scrollbarYRight)) { 22900 this.isScrollbarYUsingRight = false; 22901 this.scrollbarYLeft = toInt(railYStyle.left); 22902 } else { 22903 this.isScrollbarYUsingRight = true; 22904 } 22905 this.scrollbarYOuterWidth = this.isRtl ? outerWidth(this.scrollbarY) : null; 22906 this.railBorderYWidth = 22907 toInt(railYStyle.borderTopWidth) + toInt(railYStyle.borderBottomWidth); 22908 set(this.scrollbarYRail, { display: 'block' }); 22909 this.railYMarginHeight = 22910 toInt(railYStyle.marginTop) + toInt(railYStyle.marginBottom); 22911 set(this.scrollbarYRail, { display: '' }); 22912 this.railYHeight = null; 22913 this.railYRatio = null; 22914 22915 this.reach = { 22916 x: 22917 element.scrollLeft <= 0 22918 ? 'start' 22919 : element.scrollLeft >= this.contentWidth - this.containerWidth 22920 ? 'end' 22921 : null, 22922 y: 22923 element.scrollTop <= 0 22924 ? 'start' 22925 : element.scrollTop >= this.contentHeight - this.containerHeight 22926 ? 'end' 22927 : null, 22928 }; 22929 22930 this.isAlive = true; 22931 22932 this.settings.handlers.forEach(function (handlerName) { return handlers[handlerName](this$1); }); 22933 22934 this.lastScrollTop = Math.floor(element.scrollTop); // for onScroll only 22935 this.lastScrollLeft = element.scrollLeft; // for onScroll only 22936 this.event.bind(this.element, 'scroll', function (e) { return this$1.onScroll(e); }); 22937 updateGeometry(this); 22938}; 22939 22940PerfectScrollbar.prototype.update = function update () { 22941 if (!this.isAlive) { 22942 return; 22943 } 22944 22945 // Recalcuate negative scrollLeft adjustment 22946 this.negativeScrollAdjustment = this.isNegativeScroll 22947 ? this.element.scrollWidth - this.element.clientWidth 22948 : 0; 22949 22950 // Recalculate rail margins 22951 set(this.scrollbarXRail, { display: 'block' }); 22952 set(this.scrollbarYRail, { display: 'block' }); 22953 this.railXMarginWidth = 22954 toInt(get(this.scrollbarXRail).marginLeft) + 22955 toInt(get(this.scrollbarXRail).marginRight); 22956 this.railYMarginHeight = 22957 toInt(get(this.scrollbarYRail).marginTop) + 22958 toInt(get(this.scrollbarYRail).marginBottom); 22959 22960 // Hide scrollbars not to affect scrollWidth and scrollHeight 22961 set(this.scrollbarXRail, { display: 'none' }); 22962 set(this.scrollbarYRail, { display: 'none' }); 22963 22964 updateGeometry(this); 22965 22966 processScrollDiff(this, 'top', 0, false, true); 22967 processScrollDiff(this, 'left', 0, false, true); 22968 22969 set(this.scrollbarXRail, { display: '' }); 22970 set(this.scrollbarYRail, { display: '' }); 22971}; 22972 22973PerfectScrollbar.prototype.onScroll = function onScroll (e) { 22974 if (!this.isAlive) { 22975 return; 22976 } 22977 22978 updateGeometry(this); 22979 processScrollDiff(this, 'top', this.element.scrollTop - this.lastScrollTop); 22980 processScrollDiff( 22981 this, 22982 'left', 22983 this.element.scrollLeft - this.lastScrollLeft 22984 ); 22985 22986 this.lastScrollTop = Math.floor(this.element.scrollTop); 22987 this.lastScrollLeft = this.element.scrollLeft; 22988}; 22989 22990PerfectScrollbar.prototype.destroy = function destroy () { 22991 if (!this.isAlive) { 22992 return; 22993 } 22994 22995 this.event.unbindAll(); 22996 remove(this.scrollbarX); 22997 remove(this.scrollbarY); 22998 remove(this.scrollbarXRail); 22999 remove(this.scrollbarYRail); 23000 this.removePsClasses(); 23001 23002 // unset elements 23003 this.element = null; 23004 this.scrollbarX = null; 23005 this.scrollbarY = null; 23006 this.scrollbarXRail = null; 23007 this.scrollbarYRail = null; 23008 23009 this.isAlive = false; 23010}; 23011 23012PerfectScrollbar.prototype.removePsClasses = function removePsClasses () { 23013 this.element.className = this.element.className 23014 .split(' ') 23015 .filter(function (name) { return !name.match(/^ps([-_].+|)$/); }) 23016 .join(' '); 23017}; 23018 23019/* harmony default export */ __webpack_exports__["default"] = (PerfectScrollbar); 23020//# sourceMappingURL=perfect-scrollbar.esm.js.map 23021 23022 23023/***/ }), 23024
vendor: 24,435 bytes, lines 23025-23762
23025/***/ "./node_modules/regenerator-runtime/runtime.js": 23026/*!*****************************************************!*\ 23027 !*** ./node_modules/regenerator-runtime/runtime.js ***! 23028 \*****************************************************/ 23029/*! no static exports found */ 23030/***/ (function(module, exports) { 23031 23032/** 23033 * Copyright (c) 2014-present, Facebook, Inc. 23034 * 23035 * This source code is licensed under the MIT license found in the 23036 * LICENSE file in the root directory of this source tree. 23037 */ 23038 23039!(function(global) { 23040 "use strict"; 23041 23042 var Op = Object.prototype; 23043 var hasOwn = Op.hasOwnProperty; 23044 var undefined; // More compressible than void 0. 23045 var $Symbol = typeof Symbol === "function" ? Symbol : {}; 23046 var iteratorSymbol = $Symbol.iterator || "@@iterator"; 23047 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; 23048 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; 23049 23050 var inModule = typeof module === "object"; 23051 var runtime = global.regeneratorRuntime; 23052 if (runtime) { 23053 if (inModule) { 23054 // If regeneratorRuntime is defined globally and we're in a module, 23055 // make the exports object identical to regeneratorRuntime. 23056 module.exports = runtime; 23057 } 23058 // Don't bother evaluating the rest of this file if the runtime was 23059 // already defined globally. 23060 return; 23061 } 23062 23063 // Define the runtime globally (as expected by generated code) as either 23064 // module.exports (if we're in a module) or a new, empty object. 23065 runtime = global.regeneratorRuntime = inModule ? module.exports : {}; 23066 23067 function wrap(innerFn, outerFn, self, tryLocsList) { 23068 // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. 23069 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; 23070 var generator = Object.create(protoGenerator.prototype); 23071 var context = new Context(tryLocsList || []); 23072 23073 // The ._invoke method unifies the implementations of the .next, 23074 // .throw, and .return methods. 23075 generator._invoke = makeInvokeMethod(innerFn, self, context); 23076 23077 return generator; 23078 } 23079 runtime.wrap = wrap; 23080 23081 // Try/catch helper to minimize deoptimizations. Returns a completion 23082 // record like context.tryEntries[i].completion. This interface could 23083 // have been (and was previously) designed to take a closure to be 23084 // invoked without arguments, but in all the cases we care about we 23085 // already have an existing method we want to call, so there's no need 23086 // to create a new function object. We can even get away with assuming 23087 // the method takes exactly one argument, since that happens to be true 23088 // in every case, so we don't have to touch the arguments object. The 23089 // only additional allocation required is the completion record, which 23090 // has a stable shape and so hopefully should be cheap to allocate. 23091 function tryCatch(fn, obj, arg) { 23092 try { 23093 return { type: "normal", arg: fn.call(obj, arg) }; 23094 } catch (err) { 23095 return { type: "throw", arg: err }; 23096 } 23097 } 23098 23099 var GenStateSuspendedStart = "suspendedStart"; 23100 var GenStateSuspendedYield = "suspendedYield"; 23101 var GenStateExecuting = "executing"; 23102 var GenStateCompleted = "completed"; 23103 23104 // Returning this object from the innerFn has the same effect as 23105 // breaking out of the dispatch switch statement. 23106 var ContinueSentinel = {}; 23107 23108 // Dummy constructor functions that we use as the .constructor and 23109 // .constructor.prototype properties for functions that return Generator 23110 // objects. For full spec compliance, you may wish to configure your 23111 // minifier not to mangle the names of these two functions. 23112 function Generator() {} 23113 function GeneratorFunction() {} 23114 function GeneratorFunctionPrototype() {} 23115 23116 // This is a polyfill for %IteratorPrototype% for environments that 23117 // don't natively support it. 23118 var IteratorPrototype = {}; 23119 IteratorPrototype[iteratorSymbol] = function () { 23120 return this; 23121 }; 23122 23123 var getProto = Object.getPrototypeOf; 23124 var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); 23125 if (NativeIteratorPrototype && 23126 NativeIteratorPrototype !== Op && 23127 hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { 23128 // This environment has a native %IteratorPrototype%; use it instead 23129 // of the polyfill. 23130 IteratorPrototype = NativeIteratorPrototype; 23131 } 23132 23133 var Gp = GeneratorFunctionPrototype.prototype = 23134 Generator.prototype = Object.create(IteratorPrototype); 23135 GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; 23136 GeneratorFunctionPrototype.constructor = GeneratorFunction; 23137 GeneratorFunctionPrototype[toStringTagSymbol] = 23138 GeneratorFunction.displayName = "GeneratorFunction"; 23139 23140 // Helper for defining the .next, .throw, and .return methods of the 23141 // Iterator interface in terms of a single ._invoke method. 23142 function defineIteratorMethods(prototype) { 23143 ["next", "throw", "return"].forEach(function(method) { 23144 prototype[method] = function(arg) { 23145 return this._invoke(method, arg); 23146 }; 23147 }); 23148 } 23149 23150 runtime.isGeneratorFunction = function(genFun) { 23151 var ctor = typeof genFun === "function" && genFun.constructor; 23152 return ctor 23153 ? ctor === GeneratorFunction || 23154 // For the native GeneratorFunction constructor, the best we can 23155 // do is to check its .name property. 23156 (ctor.displayName || ctor.name) === "GeneratorFunction" 23157 : false; 23158 }; 23159 23160 runtime.mark = function(genFun) { 23161 if (Object.setPrototypeOf) { 23162 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); 23163 } else { 23164 genFun.__proto__ = GeneratorFunctionPrototype; 23165 if (!(toStringTagSymbol in genFun)) { 23166 genFun[toStringTagSymbol] = "GeneratorFunction"; 23167 } 23168 } 23169 genFun.prototype = Object.create(Gp); 23170 return genFun; 23171 }; 23172 23173 // Within the body of any async function, `await x` is transformed to 23174 // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test 23175 // `hasOwn.call(value, "__await")` to determine if the yielded value is 23176 // meant to be awaited. 23177 runtime.awrap = function(arg) { 23178 return { __await: arg }; 23179 }; 23180 23181 function AsyncIterator(generator) { 23182 function invoke(method, arg, resolve, reject) { 23183 var record = tryCatch(generator[method], generator, arg); 23184 if (record.type === "throw") { 23185 reject(record.arg); 23186 } else { 23187 var result = record.arg; 23188 var value = result.value; 23189 if (value && 23190 typeof value === "object" && 23191 hasOwn.call(value, "__await")) { 23192 return Promise.resolve(value.__await).then(function(value) { 23193 invoke("next", value, resolve, reject); 23194 }, function(err) { 23195 invoke("throw", err, resolve, reject); 23196 }); 23197 } 23198 23199 return Promise.resolve(value).then(function(unwrapped) { 23200 // When a yielded Promise is resolved, its final value becomes 23201 // the .value of the Promise<{value,done}> result for the 23202 // current iteration. If the Promise is rejected, however, the 23203 // result for this iteration will be rejected with the same 23204 // reason. Note that rejections of yielded Promises are not 23205 // thrown back into the generator function, as is the case 23206 // when an awaited Promise is rejected. This difference in 23207 // behavior between yield and await is important, because it 23208 // allows the consumer to decide what to do with the yielded 23209 // rejection (swallow it and continue, manually .throw it back 23210 // into the generator, abandon iteration, whatever). With 23211 // await, by contrast, there is no opportunity to examine the 23212 // rejection reason outside the generator function, so the 23213 // only option is to throw it from the await expression, and 23214 // let the generator function handle the exception. 23215 result.value = unwrapped; 23216 resolve(result); 23217 }, reject); 23218 } 23219 } 23220 23221 var previousPromise; 23222 23223 function enqueue(method, arg) { 23224 function callInvokeWithMethodAndArg() { 23225 return new Promise(function(resolve, reject) { 23226 invoke(method, arg, resolve, reject); 23227 }); 23228 } 23229 23230 return previousPromise = 23231 // If enqueue has been called before, then we want to wait until 23232 // all previous Promises have been resolved before calling invoke, 23233 // so that results are always delivered in the correct order. If 23234 // enqueue has not been called before, then it is important to 23235 // call invoke immediately, without waiting on a callback to fire, 23236 // so that the async generator function has the opportunity to do 23237 // any necessary setup in a predictable way. This predictability 23238 // is why the Promise constructor synchronously invokes its 23239 // executor callback, and why async functions synchronously 23240 // execute code before the first await. Since we implement simple 23241 // async functions in terms of async generators, it is especially 23242 // important to get this right, even though it requires care. 23243 previousPromise ? previousPromise.then( 23244 callInvokeWithMethodAndArg, 23245 // Avoid propagating failures to Promises returned by later 23246 // invocations of the iterator. 23247 callInvokeWithMethodAndArg 23248 ) : callInvokeWithMethodAndArg(); 23249 } 23250 23251 // Define the unified helper method that is used to implement .next, 23252 // .throw, and .return (see defineIteratorMethods). 23253 this._invoke = enqueue; 23254 } 23255 23256 defineIteratorMethods(AsyncIterator.prototype); 23257 AsyncIterator.prototype[asyncIteratorSymbol] = function () { 23258 return this; 23259 }; 23260 runtime.AsyncIterator = AsyncIterator; 23261 23262 // Note that simple async functions are implemented on top of 23263 // AsyncIterator objects; they just return a Promise for the value of 23264 // the final result produced by the iterator. 23265 runtime.async = function(innerFn, outerFn, self, tryLocsList) { 23266 var iter = new AsyncIterator( 23267 wrap(innerFn, outerFn, self, tryLocsList) 23268 ); 23269 23270 return runtime.isGeneratorFunction(outerFn) 23271 ? iter // If outerFn is a generator, return the full iterator. 23272 : iter.next().then(function(result) { 23273 return result.done ? result.value : iter.next(); 23274 }); 23275 }; 23276 23277 function makeInvokeMethod(innerFn, self, context) { 23278 var state = GenStateSuspendedStart; 23279 23280 return function invoke(method, arg) { 23281 if (state === GenStateExecuting) { 23282 throw new Error("Generator is already running"); 23283 } 23284 23285 if (state === GenStateCompleted) { 23286 if (method === "throw") { 23287 throw arg; 23288 } 23289 23290 // Be forgiving, per 25.3.3.3.3 of the spec: 23291 // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume 23292 return doneResult(); 23293 } 23294 23295 context.method = method; 23296 context.arg = arg; 23297 23298 while (true) { 23299 var delegate = context.delegate; 23300 if (delegate) { 23301 var delegateResult = maybeInvokeDelegate(delegate, context); 23302 if (delegateResult) { 23303 if (delegateResult === ContinueSentinel) continue; 23304 return delegateResult; 23305 } 23306 } 23307 23308 if (context.method === "next") { 23309 // Setting context._sent for legacy support of Babel's 23310 // function.sent implementation. 23311 context.sent = context._sent = context.arg; 23312 23313 } else if (context.method === "throw") { 23314 if (state === GenStateSuspendedStart) { 23315 state = GenStateCompleted; 23316 throw context.arg; 23317 } 23318 23319 context.dispatchException(context.arg); 23320 23321 } else if (context.method === "return") { 23322 context.abrupt("return", context.arg); 23323 } 23324 23325 state = GenStateExecuting; 23326 23327 var record = tryCatch(innerFn, self, context); 23328 if (record.type === "normal") { 23329 // If an exception is thrown from innerFn, we leave state === 23330 // GenStateExecuting and loop back for another invocation. 23331 state = context.done 23332 ? GenStateCompleted 23333 : GenStateSuspendedYield; 23334 23335 if (record.arg === ContinueSentinel) { 23336 continue; 23337 } 23338 23339 return { 23340 value: record.arg, 23341 done: context.done 23342 }; 23343 23344 } else if (record.type === "throw") { 23345 state = GenStateCompleted; 23346 // Dispatch the exception by looping back around to the 23347 // context.dispatchException(context.arg) call above. 23348 context.method = "throw"; 23349 context.arg = record.arg; 23350 } 23351 } 23352 }; 23353 } 23354 23355 // Call delegate.iterator[context.method](context.arg) and handle the 23356 // result, either by returning a { value, done } result from the 23357 // delegate iterator, or by modifying context.method and context.arg, 23358 // setting context.delegate to null, and returning the ContinueSentinel. 23359 function maybeInvokeDelegate(delegate, context) { 23360 var method = delegate.iterator[context.method]; 23361 if (method === undefined) { 23362 // A .throw or .return when the delegate iterator has no .throw 23363 // method always terminates the yield* loop. 23364 context.delegate = null; 23365 23366 if (context.method === "throw") { 23367 if (delegate.iterator.return) { 23368 // If the delegate iterator has a return method, give it a 23369 // chance to clean up. 23370 context.method = "return"; 23371 context.arg = undefined; 23372 maybeInvokeDelegate(delegate, context); 23373 23374 if (context.method === "throw") { 23375 // If maybeInvokeDelegate(context) changed context.method from 23376 // "return" to "throw", let that override the TypeError below. 23377 return ContinueSentinel; 23378 } 23379 } 23380 23381 context.method = "throw"; 23382 context.arg = new TypeError( 23383 "The iterator does not provide a 'throw' method"); 23384 } 23385 23386 return ContinueSentinel; 23387 } 23388 23389 var record = tryCatch(method, delegate.iterator, context.arg); 23390 23391 if (record.type === "throw") { 23392 context.method = "throw"; 23393 context.arg = record.arg; 23394 context.delegate = null; 23395 return ContinueSentinel; 23396 } 23397 23398 var info = record.arg; 23399 23400 if (! info) { 23401 context.method = "throw"; 23402 context.arg = new TypeError("iterator result is not an object"); 23403 context.delegate = null; 23404 return ContinueSentinel; 23405 } 23406 23407 if (info.done) { 23408 // Assign the result of the finished delegate to the temporary 23409 // variable specified by delegate.resultName (see delegateYield). 23410 context[delegate.resultName] = info.value; 23411 23412 // Resume execution at the desired location (see delegateYield). 23413 context.next = delegate.nextLoc; 23414 23415 // If context.method was "throw" but the delegate handled the 23416 // exception, let the outer generator proceed normally. If 23417 // context.method was "next", forget context.arg since it has been 23418 // "consumed" by the delegate iterator. If context.method was 23419 // "return", allow the original .return call to continue in the 23420 // outer generator. 23421 if (context.method !== "return") { 23422 context.method = "next"; 23423 context.arg = undefined; 23424 } 23425 23426 } else { 23427 // Re-yield the result returned by the delegate method. 23428 return info; 23429 } 23430 23431 // The delegate iterator is finished, so forget it and continue with 23432 // the outer generator. 23433 context.delegate = null; 23434 return ContinueSentinel; 23435 } 23436 23437 // Define Generator.prototype.{next,throw,return} in terms of the 23438 // unified ._invoke helper method. 23439 defineIteratorMethods(Gp); 23440 23441 Gp[toStringTagSymbol] = "Generator"; 23442 23443 // A Generator should always return itself as the iterator object when the 23444 // @@iterator function is called on it. Some browsers' implementations of the 23445 // iterator prototype chain incorrectly implement this, causing the Generator 23446 // object to not be returned from this call. This ensures that doesn't happen. 23447 // See https://github.com/facebook/regenerator/issues/274 for more details. 23448 Gp[iteratorSymbol] = function() { 23449 return this; 23450 }; 23451 23452 Gp.toString = function() { 23453 return "[object Generator]"; 23454 }; 23455 23456 function pushTryEntry(locs) { 23457 var entry = { tryLoc: locs[0] }; 23458 23459 if (1 in locs) { 23460 entry.catchLoc = locs[1]; 23461 } 23462 23463 if (2 in locs) { 23464 entry.finallyLoc = locs[2]; 23465 entry.afterLoc = locs[3]; 23466 } 23467 23468 this.tryEntries.push(entry); 23469 } 23470 23471 function resetTryEntry(entry) { 23472 var record = entry.completion || {}; 23473 record.type = "normal"; 23474 delete record.arg; 23475 entry.completion = record; 23476 } 23477 23478 function Context(tryLocsList) { 23479 // The root entry object (effectively a try statement without a catch 23480 // or a finally block) gives us a place to store values thrown from 23481 // locations where there is no enclosing try statement. 23482 this.tryEntries = [{ tryLoc: "root" }]; 23483 tryLocsList.forEach(pushTryEntry, this); 23484 this.reset(true); 23485 } 23486 23487 runtime.keys = function(object) { 23488 var keys = []; 23489 for (var key in object) { 23490 keys.push(key); 23491 } 23492 keys.reverse(); 23493 23494 // Rather than returning an object with a next method, we keep 23495 // things simple and return the next function itself. 23496 return function next() { 23497 while (keys.length) { 23498 var key = keys.pop(); 23499 if (key in object) { 23500 next.value = key; 23501 next.done = false; 23502 return next; 23503 } 23504 } 23505 23506 // To avoid creating an additional object, we just hang the .value 23507 // and .done properties off the next function object itself. This 23508 // also ensures that the minifier will not anonymize the function. 23509 next.done = true; 23510 return next; 23511 }; 23512 }; 23513 23514 function values(iterable) { 23515 if (iterable) { 23516 var iteratorMethod = iterable[iteratorSymbol]; 23517 if (iteratorMethod) { 23518 return iteratorMethod.call(iterable); 23519 } 23520 23521 if (typeof iterable.next === "function") { 23522 return iterable; 23523 } 23524 23525 if (!isNaN(iterable.length)) { 23526 var i = -1, next = function next() { 23527 while (++i < iterable.length) { 23528 if (hasOwn.call(iterable, i)) { 23529 next.value = iterable[i]; 23530 next.done = false; 23531 return next; 23532 } 23533 } 23534 23535 next.value = undefined; 23536 next.done = true; 23537 23538 return next; 23539 }; 23540 23541 return next.next = next; 23542 } 23543 } 23544 23545 // Return an iterator with no values. 23546 return { next: doneResult }; 23547 } 23548 runtime.values = values; 23549 23550 function doneResult() { 23551 return { value: undefined, done: true }; 23552 } 23553 23554 Context.prototype = { 23555 constructor: Context, 23556 23557 reset: function(skipTempReset) { 23558 this.prev = 0; 23559 this.next = 0; 23560 // Resetting context._sent for legacy support of Babel's 23561 // function.sent implementation. 23562 this.sent = this._sent = undefined; 23563 this.done = false; 23564 this.delegate = null; 23565 23566 this.method = "next"; 23567 this.arg = undefined; 23568 23569 this.tryEntries.forEach(resetTryEntry); 23570 23571 if (!skipTempReset) { 23572 for (var name in this) { 23573 // Not sure about the optimal order of these conditions: 23574 if (name.charAt(0) === "t" && 23575 hasOwn.call(this, name) && 23576 !isNaN(+name.slice(1))) { 23577 this[name] = undefined; 23578 } 23579 } 23580 } 23581 }, 23582 23583 stop: function() { 23584 this.done = true; 23585 23586 var rootEntry = this.tryEntries[0]; 23587 var rootRecord = rootEntry.completion; 23588 if (rootRecord.type === "throw") { 23589 throw rootRecord.arg; 23590 } 23591 23592 return this.rval; 23593 }, 23594 23595 dispatchException: function(exception) { 23596 if (this.done) { 23597 throw exception; 23598 } 23599 23600 var context = this; 23601 function handle(loc, caught) { 23602 record.type = "throw"; 23603 record.arg = exception; 23604 context.next = loc; 23605 23606 if (caught) { 23607 // If the dispatched exception was caught by a catch block, 23608 // then let that catch block handle the exception normally. 23609 context.method = "next"; 23610 context.arg = undefined; 23611 } 23612 23613 return !! caught; 23614 } 23615 23616 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 23617 var entry = this.tryEntries[i]; 23618 var record = entry.completion; 23619 23620 if (entry.tryLoc === "root") { 23621 // Exception thrown outside of any try block that could handle 23622 // it, so set the completion value of the entire function to 23623 // throw the exception. 23624 return handle("end"); 23625 } 23626 23627 if (entry.tryLoc <= this.prev) { 23628 var hasCatch = hasOwn.call(entry, "catchLoc"); 23629 var hasFinally = hasOwn.call(entry, "finallyLoc"); 23630 23631 if (hasCatch && hasFinally) { 23632 if (this.prev < entry.catchLoc) { 23633 return handle(entry.catchLoc, true); 23634 } else if (this.prev < entry.finallyLoc) { 23635 return handle(entry.finallyLoc); 23636 } 23637 23638 } else if (hasCatch) { 23639 if (this.prev < entry.catchLoc) { 23640 return handle(entry.catchLoc, true); 23641 } 23642 23643 } else if (hasFinally) { 23644 if (this.prev < entry.finallyLoc) { 23645 return handle(entry.finallyLoc); 23646 } 23647 23648 } else { 23649 throw new Error("try statement without catch or finally"); 23650 } 23651 } 23652 } 23653 }, 23654 23655 abrupt: function(type, arg) { 23656 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 23657 var entry = this.tryEntries[i]; 23658 if (entry.tryLoc <= this.prev && 23659 hasOwn.call(entry, "finallyLoc") && 23660 this.prev < entry.finallyLoc) { 23661 var finallyEntry = entry; 23662 break; 23663 } 23664 } 23665 23666 if (finallyEntry && 23667 (type === "break" || 23668 type === "continue") && 23669 finallyEntry.tryLoc <= arg && 23670 arg <= finallyEntry.finallyLoc) { 23671 // Ignore the finally entry if control is not jumping to a 23672 // location outside the try/catch block. 23673 finallyEntry = null; 23674 } 23675 23676 var record = finallyEntry ? finallyEntry.completion : {}; 23677 record.type = type; 23678 record.arg = arg; 23679 23680 if (finallyEntry) { 23681 this.method = "next"; 23682 this.next = finallyEntry.finallyLoc; 23683 return ContinueSentinel; 23684 } 23685 23686 return this.complete(record); 23687 }, 23688 23689 complete: function(record, afterLoc) { 23690 if (record.type === "throw") { 23691 throw record.arg; 23692 } 23693 23694 if (record.type === "break" || 23695 record.type === "continue") { 23696 this.next = record.arg; 23697 } else if (record.type === "return") { 23698 this.rval = this.arg = record.arg; 23699 this.method = "return"; 23700 this.next = "end"; 23701 } else if (record.type === "normal" && afterLoc) { 23702 this.next = afterLoc; 23703 } 23704 23705 return ContinueSentinel; 23706 }, 23707 23708 finish: function(finallyLoc) { 23709 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 23710 var entry = this.tryEntries[i]; 23711 if (entry.finallyLoc === finallyLoc) { 23712 this.complete(entry.completion, entry.afterLoc); 23713 resetTryEntry(entry); 23714 return ContinueSentinel; 23715 } 23716 } 23717 }, 23718 23719 "catch": function(tryLoc) { 23720 for (var i = this.tryEntries.length - 1; i >= 0; --i) { 23721 var entry = this.tryEntries[i]; 23722 if (entry.tryLoc === tryLoc) { 23723 var record = entry.completion; 23724 if (record.type === "throw") { 23725 var thrown = record.arg; 23726 resetTryEntry(entry); 23727 } 23728 return thrown; 23729 } 23730 } 23731 23732 // The context.catch method must only be called with a location 23733 // argument that corresponds to a known catch block. 23734 throw new Error("illegal catch attempt"); 23735 }, 23736 23737 delegateYield: function(iterable, resultName, nextLoc) { 23738 this.delegate = { 23739 iterator: values(iterable), 23740 resultName: resultName, 23741 nextLoc: nextLoc 23742 }; 23743 23744 if (this.method === "next") { 23745 // Deliberately forget the last sent value so that we don't 23746 // accidentally pass it on to the delegate. 23747 this.arg = undefined; 23748 } 23749 23750 return ContinueSentinel; 23751 } 23752 }; 23753})( 23754 // In sloppy mode, unbound `this` refers to the global object, fallback to 23755 // Function constructor if we're in global strict mode. That is sadly a form 23756 // of indirect eval which violates Content Security Policy. 23757 (function() { return this })() || Function("return this")() 23758); 23759 23760 23761/***/ }), 23762
vendor: 105,434 bytes, lines 23763-26562
23763/***/ "./node_modules/scrollmagic/scrollmagic/uncompressed/ScrollMagic.js": 23764/*!**************************************************************************!*\ 23765 !*** ./node_modules/scrollmagic/scrollmagic/uncompressed/ScrollMagic.js ***! 23766 \**************************************************************************/ 23767/*! no static exports found */ 23768/***/ (function(module, exports, __webpack_require__) { 23769 23770var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! 23771 * ScrollMagic v2.0.6 (2018-10-08) 23772 * The javascript library for magical scroll interactions. 23773 * (c) 2018 Jan Paepke (@janpaepke) 23774 * Project Website: http://scrollmagic.io 23775 * 23776 * @version 2.0.6 23777 * @license Dual licensed under MIT license and GPL. 23778 * @author Jan Paepke - [email protected] 23779 * 23780 * @file ScrollMagic main library. 23781 */ 23782/** 23783 * @namespace ScrollMagic 23784 */ 23785(function (root, factory) { 23786 if (true) { 23787 // AMD. Register as an anonymous module. 23788 !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 23789 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 23790 (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : 23791 __WEBPACK_AMD_DEFINE_FACTORY__), 23792 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 23793 } else {} 23794}(this, function () { 23795 "use strict"; 23796 23797 var ScrollMagic = function () { 23798 _util.log(2, '(COMPATIBILITY NOTICE) -> As of ScrollMagic 2.0.0 you need to use \'new ScrollMagic.Controller()\' to create a new controller instance. Use \'new ScrollMagic.Scene()\' to instance a scene.'); 23799 }; 23800 23801 ScrollMagic.version = "2.0.6"; 23802 23803 // TODO: temporary workaround for chrome's scroll jitter bug 23804 window.addEventListener("mousewheel", function () {}); 23805 23806 // global const 23807 var PIN_SPACER_ATTRIBUTE = "data-scrollmagic-pin-spacer"; 23808 23809 /** 23810 * The main class that is needed once per scroll container. 23811 * 23812 * @class 23813 * 23814 * @example 23815 * // basic initialization 23816 * var controller = new ScrollMagic.Controller(); 23817 * 23818 * // passing options 23819 * var controller = new ScrollMagic.Controller({container: "#myContainer", loglevel: 3}); 23820 * 23821 * @param {object} [options] - An object containing one or more options for the controller. 23822 * @param {(string|object)} [options.container=window] - A selector, DOM object that references the main container for scrolling. 23823 * @param {boolean} [options.vertical=true] - Sets the scroll mode to vertical (`true`) or horizontal (`false`) scrolling. 23824 * @param {object} [options.globalSceneOptions={}] - These options will be passed to every Scene that is added to the controller using the addScene method. For more information on Scene options see {@link ScrollMagic.Scene}. 23825 * @param {number} [options.loglevel=2] Loglevel for debugging. Note that logging is disabled in the minified version of ScrollMagic. 23826 ** `0` => silent 23827 ** `1` => errors 23828 ** `2` => errors, warnings 23829 ** `3` => errors, warnings, debuginfo 23830 * @param {boolean} [options.refreshInterval=100] - Some changes don't call events by default, like changing the container size or moving a scene trigger element. 23831 This interval polls these parameters to fire the necessary events. 23832 If you don't use custom containers, trigger elements or have static layouts, where the positions of the trigger elements don't change, you can set this to 0 disable interval checking and improve performance. 23833 * 23834 */ 23835 ScrollMagic.Controller = function (options) { 23836/* 23837 * ---------------------------------------------------------------- 23838 * settings 23839 * ---------------------------------------------------------------- 23840 */ 23841 var 23842 NAMESPACE = 'ScrollMagic.Controller', 23843 SCROLL_DIRECTION_FORWARD = 'FORWARD', 23844 SCROLL_DIRECTION_REVERSE = 'REVERSE', 23845 SCROLL_DIRECTION_PAUSED = 'PAUSED', 23846 DEFAULT_OPTIONS = CONTROLLER_OPTIONS.defaults; 23847 23848/* 23849 * ---------------------------------------------------------------- 23850 * private vars 23851 * ---------------------------------------------------------------- 23852 */ 23853 var 23854 Controller = this, 23855 _options = _util.extend({}, DEFAULT_OPTIONS, options), 23856 _sceneObjects = [], 23857 _updateScenesOnNextCycle = false, 23858 // can be boolean (true => all scenes) or an array of scenes to be updated 23859 _scrollPos = 0, 23860 _scrollDirection = SCROLL_DIRECTION_PAUSED, 23861 _isDocument = true, 23862 _viewPortSize = 0, 23863 _enabled = true, 23864 _updateTimeout, _refreshTimeout; 23865 23866/* 23867 * ---------------------------------------------------------------- 23868 * private functions 23869 * ---------------------------------------------------------------- 23870 */ 23871 23872 /** 23873 * Internal constructor function of the ScrollMagic Controller 23874 * @private 23875 */ 23876 var construct = function () { 23877 for (var key in _options) { 23878 if (!DEFAULT_OPTIONS.hasOwnProperty(key)) { 23879 log(2, "WARNING: Unknown option \"" + key + "\""); 23880 delete _options[key]; 23881 } 23882 } 23883 _options.container = _util.get.elements(_options.container)[0]; 23884 // check ScrollContainer 23885 if (!_options.container) { 23886 log(1, "ERROR creating object " + NAMESPACE + ": No valid scroll container supplied"); 23887 throw NAMESPACE + " init failed."; // cancel 23888 } 23889 _isDocument = _options.container === window || _options.container === document.body || !document.body.contains(_options.container); 23890 // normalize to window 23891 if (_isDocument) { 23892 _options.container = window; 23893 } 23894 // update container size immediately 23895 _viewPortSize = getViewportSize(); 23896 // set event handlers 23897 _options.container.addEventListener("resize", onChange); 23898 _options.container.addEventListener("scroll", onChange); 23899 23900 var ri = parseInt(_options.refreshInterval, 10); 23901 _options.refreshInterval = _util.type.Number(ri) ? ri : DEFAULT_OPTIONS.refreshInterval; 23902 scheduleRefresh(); 23903 23904 log(3, "added new " + NAMESPACE + " controller (v" + ScrollMagic.version + ")"); 23905 }; 23906 23907 /** 23908 * Schedule the next execution of the refresh function 23909 * @private 23910 */ 23911 var scheduleRefresh = function () { 23912 if (_options.refreshInterval > 0) { 23913 _refreshTimeout = window.setTimeout(refresh, _options.refreshInterval); 23914 } 23915 }; 23916 23917 /** 23918 * Default function to get scroll pos - overwriteable using `Controller.scrollPos(newFunction)` 23919 * @private 23920 */ 23921 var getScrollPos = function () { 23922 return _options.vertical ? _util.get.scrollTop(_options.container) : _util.get.scrollLeft(_options.container); 23923 }; 23924 23925 /** 23926 * Returns the current viewport Size (width vor horizontal, height for vertical) 23927 * @private 23928 */ 23929 var getViewportSize = function () { 23930 return _options.vertical ? _util.get.height(_options.container) : _util.get.width(_options.container); 23931 }; 23932 23933 /** 23934 * Default function to set scroll pos - overwriteable using `Controller.scrollTo(newFunction)` 23935 * Make available publicly for pinned mousewheel workaround. 23936 * @private 23937 */ 23938 var setScrollPos = this._setScrollPos = function (pos) { 23939 if (_options.vertical) { 23940 if (_isDocument) { 23941 window.scrollTo(_util.get.scrollLeft(), pos); 23942 } else { 23943 _options.container.scrollTop = pos; 23944 } 23945 } else { 23946 if (_isDocument) { 23947 window.scrollTo(pos, _util.get.scrollTop()); 23948 } else { 23949 _options.container.scrollLeft = pos; 23950 } 23951 } 23952 }; 23953 23954 /** 23955 * Handle updates in cycles instead of on scroll (performance) 23956 * @private 23957 */ 23958 var updateScenes = function () { 23959 if (_enabled && _updateScenesOnNextCycle) { 23960 // determine scenes to update 23961 var scenesToUpdate = _util.type.Array(_updateScenesOnNextCycle) ? _updateScenesOnNextCycle : _sceneObjects.slice(0); 23962 // reset scenes 23963 _updateScenesOnNextCycle = false; 23964 var oldScrollPos = _scrollPos; 23965 // update scroll pos now instead of onChange, as it might have changed since scheduling (i.e. in-browser smooth scroll) 23966 _scrollPos = Controller.scrollPos(); 23967 var deltaScroll = _scrollPos - oldScrollPos; 23968 if (deltaScroll !== 0) { // scroll position changed? 23969 _scrollDirection = (deltaScroll > 0) ? SCROLL_DIRECTION_FORWARD : SCROLL_DIRECTION_REVERSE; 23970 } 23971 // reverse order of scenes if scrolling reverse 23972 if (_scrollDirection === SCROLL_DIRECTION_REVERSE) { 23973 scenesToUpdate.reverse(); 23974 } 23975 // update scenes 23976 scenesToUpdate.forEach(function (scene, index) { 23977 log(3, "updating Scene " + (index + 1) + "/" + scenesToUpdate.length + " (" + _sceneObjects.length + " total)"); 23978 scene.update(true); 23979 }); 23980 if (scenesToUpdate.length === 0 && _options.loglevel >= 3) { 23981 log(3, "updating 0 Scenes (nothing added to controller)"); 23982 } 23983 } 23984 }; 23985 23986 /** 23987 * Initializes rAF callback 23988 * @private 23989 */ 23990 var debounceUpdate = function () { 23991 _updateTimeout = _util.rAF(updateScenes); 23992 }; 23993 23994 /** 23995 * Handles Container changes 23996 * @private 23997 */ 23998 var onChange = function (e) { 23999 log(3, "event fired causing an update:", e.type); 24000 if (e.type == "resize") { 24001 // resize 24002 _viewPortSize = getViewportSize(); 24003 _scrollDirection = SCROLL_DIRECTION_PAUSED; 24004 } 24005 // schedule update 24006 if (_updateScenesOnNextCycle !== true) { 24007 _updateScenesOnNextCycle = true; 24008 debounceUpdate(); 24009 } 24010 }; 24011 24012 var refresh = function () { 24013 if (!_isDocument) { 24014 // simulate resize event. Only works for viewport relevant param (performance) 24015 if (_viewPortSize != getViewportSize()) { 24016 var resizeEvent; 24017 try { 24018 resizeEvent = new Event('resize', { 24019 bubbles: false, 24020 cancelable: false 24021 }); 24022 } catch (e) { // stupid IE 24023 resizeEvent = document.createEvent("Event"); 24024 resizeEvent.initEvent("resize", false, false); 24025 } 24026 _options.container.dispatchEvent(resizeEvent); 24027 } 24028 } 24029 _sceneObjects.forEach(function (scene, index) { // refresh all scenes 24030 scene.refresh(); 24031 }); 24032 scheduleRefresh(); 24033 }; 24034 24035 /** 24036 * Send a debug message to the console. 24037 * provided publicly with _log for plugins 24038 * @private 24039 * 24040 * @param {number} loglevel - The loglevel required to initiate output for the message. 24041 * @param {...mixed} output - One or more variables that should be passed to the console. 24042 */ 24043 var log = this._log = function (loglevel, output) { 24044 if (_options.loglevel >= loglevel) { 24045 Array.prototype.splice.call(arguments, 1, 0, "(" + NAMESPACE + ") ->"); 24046 _util.log.apply(window, arguments); 24047 } 24048 }; 24049 // for scenes we have getters for each option, but for the controller we don't, so we need to make it available externally for plugins 24050 this._options = _options; 24051 24052 /** 24053 * Sort scenes in ascending order of their start offset. 24054 * @private 24055 * 24056 * @param {array} ScenesArray - an array of ScrollMagic Scenes that should be sorted 24057 * @return {array} The sorted array of Scenes. 24058 */ 24059 var sortScenes = function (ScenesArray) { 24060 if (ScenesArray.length <= 1) { 24061 return ScenesArray; 24062 } else { 24063 var scenes = ScenesArray.slice(0); 24064 scenes.sort(function (a, b) { 24065 return a.scrollOffset() > b.scrollOffset() ? 1 : -1; 24066 }); 24067 return scenes; 24068 } 24069 }; 24070 24071 /** 24072 * ---------------------------------------------------------------- 24073 * public functions 24074 * ---------------------------------------------------------------- 24075 */ 24076 24077 /** 24078 * Add one ore more scene(s) to the controller. 24079 * This is the equivalent to `Scene.addTo(controller)`. 24080 * @public 24081 * @example 24082 * // with a previously defined scene 24083 * controller.addScene(scene); 24084 * 24085 * // with a newly created scene. 24086 * controller.addScene(new ScrollMagic.Scene({duration : 0})); 24087 * 24088 * // adding multiple scenes 24089 * controller.addScene([scene, scene2, new ScrollMagic.Scene({duration : 0})]); 24090 * 24091 * @param {(ScrollMagic.Scene|array)} newScene - ScrollMagic Scene or Array of Scenes to be added to the controller. 24092 * @return {Controller} Parent object for chaining. 24093 */ 24094 this.addScene = function (newScene) { 24095 if (_util.type.Array(newScene)) { 24096 newScene.forEach(function (scene, index) { 24097 Controller.addScene(scene); 24098 }); 24099 } else if (newScene instanceof ScrollMagic.Scene) { 24100 if (newScene.controller() !== Controller) { 24101 newScene.addTo(Controller); 24102 } else if (_sceneObjects.indexOf(newScene) < 0) { 24103 // new scene 24104 _sceneObjects.push(newScene); // add to array 24105 _sceneObjects = sortScenes(_sceneObjects); // sort 24106 newScene.on("shift.controller_sort", function () { // resort whenever scene moves 24107 _sceneObjects = sortScenes(_sceneObjects); 24108 }); 24109 // insert Global defaults. 24110 for (var key in _options.globalSceneOptions) { 24111 if (newScene[key]) { 24112 newScene[key].call(newScene, _options.globalSceneOptions[key]); 24113 } 24114 } 24115 log(3, "adding Scene (now " + _sceneObjects.length + " total)"); 24116 } 24117 } else { 24118 log(1, "ERROR: invalid argument supplied for '.addScene()'"); 24119 } 24120 return Controller; 24121 }; 24122 24123 /** 24124 * Remove one ore more scene(s) from the controller. 24125 * This is the equivalent to `Scene.remove()`. 24126 * @public 24127 * @example 24128 * // remove a scene from the controller 24129 * controller.removeScene(scene); 24130 * 24131 * // remove multiple scenes from the controller 24132 * controller.removeScene([scene, scene2, scene3]); 24133 * 24134 * @param {(ScrollMagic.Scene|array)} Scene - ScrollMagic Scene or Array of Scenes to be removed from the controller. 24135 * @returns {Controller} Parent object for chaining. 24136 */ 24137 this.removeScene = function (Scene) { 24138 if (_util.type.Array(Scene)) { 24139 Scene.forEach(function (scene, index) { 24140 Controller.removeScene(scene); 24141 }); 24142 } else { 24143 var index = _sceneObjects.indexOf(Scene); 24144 if (index > -1) { 24145 Scene.off("shift.controller_sort"); 24146 _sceneObjects.splice(index, 1); 24147 log(3, "removing Scene (now " + _sceneObjects.length + " left)"); 24148 Scene.remove(); 24149 } 24150 } 24151 return Controller; 24152 }; 24153 24154 /** 24155 * Update one ore more scene(s) according to the scroll position of the container. 24156 * This is the equivalent to `Scene.update()`. 24157 * The update method calculates the scene's start and end position (based on the trigger element, trigger hook, duration and offset) and checks it against the current scroll position of the container. 24158 * It then updates the current scene state accordingly (or does nothing, if the state is already correct) – Pins will be set to their correct position and tweens will be updated to their correct progress. 24159 * _**Note:** This method gets called constantly whenever Controller detects a change. The only application for you is if you change something outside of the realm of ScrollMagic, like moving the trigger or changing tween parameters._ 24160 * @public 24161 * @example 24162 * // update a specific scene on next cycle 24163 * controller.updateScene(scene); 24164 * 24165 * // update a specific scene immediately 24166 * controller.updateScene(scene, true); 24167 * 24168 * // update multiple scenes scene on next cycle 24169 * controller.updateScene([scene1, scene2, scene3]); 24170 * 24171 * @param {ScrollMagic.Scene} Scene - ScrollMagic Scene or Array of Scenes that is/are supposed to be updated. 24172 * @param {boolean} [immediately=false] - If `true` the update will be instant, if `false` it will wait until next update cycle. 24173 This is useful when changing multiple properties of the scene - this way it will only be updated once all new properties are set (updateScenes). 24174 * @return {Controller} Parent object for chaining. 24175 */ 24176 this.updateScene = function (Scene, immediately) { 24177 if (_util.type.Array(Scene)) { 24178 Scene.forEach(function (scene, index) { 24179 Controller.updateScene(scene, immediately); 24180 }); 24181 } else { 24182 if (immediately) { 24183 Scene.update(true); 24184 } else if (_updateScenesOnNextCycle !== true && Scene instanceof ScrollMagic.Scene) { // if _updateScenesOnNextCycle is true, all connected scenes are already scheduled for update 24185 // prep array for next update cycle 24186 _updateScenesOnNextCycle = _updateScenesOnNextCycle || []; 24187 if (_updateScenesOnNextCycle.indexOf(Scene) == -1) { 24188 _updateScenesOnNextCycle.push(Scene); 24189 } 24190 _updateScenesOnNextCycle = sortScenes(_updateScenesOnNextCycle); // sort 24191 debounceUpdate(); 24192 } 24193 } 24194 return Controller; 24195 }; 24196 24197 /** 24198 * Updates the controller params and calls updateScene on every scene, that is attached to the controller. 24199 * See `Controller.updateScene()` for more information about what this means. 24200 * In most cases you will not need this function, as it is called constantly, whenever ScrollMagic detects a state change event, like resize or scroll. 24201 * The only application for this method is when ScrollMagic fails to detect these events. 24202 * One application is with some external scroll libraries (like iScroll) that move an internal container to a negative offset instead of actually scrolling. In this case the update on the controller needs to be called whenever the child container's position changes. 24203 * For this case there will also be the need to provide a custom function to calculate the correct scroll position. See `Controller.scrollPos()` for details. 24204 * @public 24205 * @example 24206 * // update the controller on next cycle (saves performance due to elimination of redundant updates) 24207 * controller.update(); 24208 * 24209 * // update the controller immediately 24210 * controller.update(true); 24211 * 24212 * @param {boolean} [immediately=false] - If `true` the update will be instant, if `false` it will wait until next update cycle (better performance) 24213 * @return {Controller} Parent object for chaining. 24214 */ 24215 this.update = function (immediately) { 24216 onChange({ 24217 type: "resize" 24218 }); // will update size and set _updateScenesOnNextCycle to true 24219 if (immediately) { 24220 updateScenes(); 24221 } 24222 return Controller; 24223 }; 24224 24225 /** 24226 * Scroll to a numeric scroll offset, a DOM element, the start of a scene or provide an alternate method for scrolling. 24227 * For vertical controllers it will change the top scroll offset and for horizontal applications it will change the left offset. 24228 * @public 24229 * 24230 * @since 1.1.0 24231 * @example 24232 * // scroll to an offset of 100 24233 * controller.scrollTo(100); 24234 * 24235 * // scroll to a DOM element 24236 * controller.scrollTo("#anchor"); 24237 * 24238 * // scroll to the beginning of a scene 24239 * var scene = new ScrollMagic.Scene({offset: 200}); 24240 * controller.scrollTo(scene); 24241 * 24242 * // define a new scroll position modification function (jQuery animate instead of jump) 24243 * controller.scrollTo(function (newScrollPos) { 24244 * $("html, body").animate({scrollTop: newScrollPos}); 24245 * }); 24246 * controller.scrollTo(100); // call as usual, but the new function will be used instead 24247 * 24248 * // define a new scroll function with an additional parameter 24249 * controller.scrollTo(function (newScrollPos, message) { 24250 * console.log(message); 24251 * $(this).animate({scrollTop: newScrollPos}); 24252 * }); 24253 * // call as usual, but supply an extra parameter to the defined custom function 24254 * controller.scrollTo(100, "my message"); 24255 * 24256 * // define a new scroll function with an additional parameter containing multiple variables 24257 * controller.scrollTo(function (newScrollPos, options) { 24258 * someGlobalVar = options.a + options.b; 24259 * $(this).animate({scrollTop: newScrollPos}); 24260 * }); 24261 * // call as usual, but supply an extra parameter containing multiple options 24262 * controller.scrollTo(100, {a: 1, b: 2}); 24263 * 24264 * // define a new scroll function with a callback supplied as an additional parameter 24265 * controller.scrollTo(function (newScrollPos, callback) { 24266 * $(this).animate({scrollTop: newScrollPos}, 400, "swing", callback); 24267 * }); 24268 * // call as usual, but supply an extra parameter, which is used as a callback in the previously defined custom scroll function 24269 * controller.scrollTo(100, function() { 24270 * console.log("scroll has finished."); 24271 * }); 24272 * 24273 * @param {mixed} scrollTarget - The supplied argument can be one of these types: 24274 * 1. `number` -> The container will scroll to this new scroll offset. 24275 * 2. `string` or `object` -> Can be a selector or a DOM object. 24276 * The container will scroll to the position of this element. 24277 * 3. `ScrollMagic Scene` -> The container will scroll to the start of this scene. 24278 * 4. `function` -> This function will be used for future scroll position modifications. 24279 * This provides a way for you to change the behaviour of scrolling and adding new behaviour like animation. The function receives the new scroll position as a parameter and a reference to the container element using `this`. 24280 * It may also optionally receive an optional additional parameter (see below) 24281 * _**NOTE:** 24282 * All other options will still work as expected, using the new function to scroll._ 24283 * @param {mixed} [additionalParameter] - If a custom scroll function was defined (see above 4.), you may want to supply additional parameters to it, when calling it. You can do this using this parameter – see examples for details. Please note, that this parameter will have no effect, if you use the default scrolling function. 24284 * @returns {Controller} Parent object for chaining. 24285 */ 24286 this.scrollTo = function (scrollTarget, additionalParameter) { 24287 if (_util.type.Number(scrollTarget)) { // excecute 24288 setScrollPos.call(_options.container, scrollTarget, additionalParameter); 24289 } else if (scrollTarget instanceof ScrollMagic.Scene) { // scroll to scene 24290 if (scrollTarget.controller() === Controller) { // check if the controller is associated with this scene 24291 Controller.scrollTo(scrollTarget.scrollOffset(), additionalParameter); 24292 } else { 24293 log(2, "scrollTo(): The supplied scene does not belong to this controller. Scroll cancelled.", scrollTarget); 24294 } 24295 } else if (_util.type.Function(scrollTarget)) { // assign new scroll function 24296 setScrollPos = scrollTarget; 24297 } else { // scroll to element 24298 var elem = _util.get.elements(scrollTarget)[0]; 24299 if (elem) { 24300 // if parent is pin spacer, use spacer position instead so correct start position is returned for pinned elements. 24301 while (elem.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)) { 24302 elem = elem.parentNode; 24303 } 24304 24305 var 24306 param = _options.vertical ? "top" : "left", 24307 // which param is of interest ? 24308 containerOffset = _util.get.offset(_options.container), 24309 // container position is needed because element offset is returned in relation to document, not in relation to container. 24310 elementOffset = _util.get.offset(elem); 24311 24312 if (!_isDocument) { // container is not the document root, so substract scroll Position to get correct trigger element position relative to scrollcontent 24313 containerOffset[param] -= Controller.scrollPos(); 24314 } 24315 24316 Controller.scrollTo(elementOffset[param] - containerOffset[param], additionalParameter); 24317 } else { 24318 log(2, "scrollTo(): The supplied argument is invalid. Scroll cancelled.", scrollTarget); 24319 } 24320 } 24321 return Controller; 24322 }; 24323 24324 /** 24325 * **Get** the current scrollPosition or **Set** a new method to calculate it. 24326 * -> **GET**: 24327 * When used as a getter this function will return the current scroll position. 24328 * To get a cached value use Controller.info("scrollPos"), which will be updated in the update cycle. 24329 * For vertical controllers it will return the top scroll offset and for horizontal applications it will return the left offset. 24330 * 24331 * -> **SET**: 24332 * When used as a setter this method prodes a way to permanently overwrite the controller's scroll position calculation. 24333 * A typical usecase is when the scroll position is not reflected by the containers scrollTop or scrollLeft values, but for example by the inner offset of a child container. 24334 * Moving a child container inside a parent is a commonly used method for several scrolling frameworks, including iScroll. 24335 * By providing an alternate calculation function you can make sure ScrollMagic receives the correct scroll position. 24336 * Please also bear in mind that your function should return y values for vertical scrolls an x for horizontals. 24337 * 24338 * To change the current scroll position please use `Controller.scrollTo()`. 24339 * @public 24340 * 24341 * @example 24342 * // get the current scroll Position 24343 * var scrollPos = controller.scrollPos(); 24344 * 24345 * // set a new scroll position calculation method 24346 * controller.scrollPos(function () { 24347 * return this.info("vertical") ? -mychildcontainer.y : -mychildcontainer.x 24348 * }); 24349 * 24350 * @param {function} [scrollPosMethod] - The function to be used for the scroll position calculation of the container. 24351 * @returns {(number|Controller)} Current scroll position or parent object for chaining. 24352 */ 24353 this.scrollPos = function (scrollPosMethod) { 24354 if (!arguments.length) { // get 24355 return getScrollPos.call(Controller); 24356 } else { // set 24357 if (_util.type.Function(scrollPosMethod)) { 24358 getScrollPos = scrollPosMethod; 24359 } else { 24360 log(2, "Provided value for method 'scrollPos' is not a function. To change the current scroll position use 'scrollTo()'."); 24361 } 24362 } 24363 return Controller; 24364 }; 24365 24366 /** 24367 * **Get** all infos or one in particular about the controller. 24368 * @public 24369 * @example 24370 * // returns the current scroll position (number) 24371 * var scrollPos = controller.info("scrollPos"); 24372 * 24373 * // returns all infos as an object 24374 * var infos = controller.info(); 24375 * 24376 * @param {string} [about] - If passed only this info will be returned instead of an object containing all. 24377 Valid options are: 24378 ** `"size"` => the current viewport size of the container 24379 ** `"vertical"` => true if vertical scrolling, otherwise false 24380 ** `"scrollPos"` => the current scroll position 24381 ** `"scrollDirection"` => the last known direction of the scroll 24382 ** `"container"` => the container element 24383 ** `"isDocument"` => true if container element is the document. 24384 * @returns {(mixed|object)} The requested info(s). 24385 */ 24386 this.info = function (about) { 24387 var values = { 24388 size: _viewPortSize, 24389 // contains height or width (in regard to orientation); 24390 vertical: _options.vertical, 24391 scrollPos: _scrollPos, 24392 scrollDirection: _scrollDirection, 24393 container: _options.container, 24394 isDocument: _isDocument 24395 }; 24396 if (!arguments.length) { // get all as an object 24397 return values; 24398 } else if (values[about] !== undefined) { 24399 return values[about]; 24400 } else { 24401 log(1, "ERROR: option \"" + about + "\" is not available"); 24402 return; 24403 } 24404 }; 24405 24406 /** 24407 * **Get** or **Set** the current loglevel option value. 24408 * @public 24409 * 24410 * @example 24411 * // get the current value 24412 * var loglevel = controller.loglevel(); 24413 * 24414 * // set a new value 24415 * controller.loglevel(3); 24416 * 24417 * @param {number} [newLoglevel] - The new loglevel setting of the Controller. `[0-3]` 24418 * @returns {(number|Controller)} Current loglevel or parent object for chaining. 24419 */ 24420 this.loglevel = function (newLoglevel) { 24421 if (!arguments.length) { // get 24422 return _options.loglevel; 24423 } else if (_options.loglevel != newLoglevel) { // set 24424 _options.loglevel = newLoglevel; 24425 } 24426 return Controller; 24427 }; 24428 24429 /** 24430 * **Get** or **Set** the current enabled state of the controller. 24431 * This can be used to disable all Scenes connected to the controller without destroying or removing them. 24432 * @public 24433 * 24434 * @example 24435 * // get the current value 24436 * var enabled = controller.enabled(); 24437 * 24438 * // disable the controller 24439 * controller.enabled(false); 24440 * 24441 * @param {boolean} [newState] - The new enabled state of the controller `true` or `false`. 24442 * @returns {(boolean|Controller)} Current enabled state or parent object for chaining. 24443 */ 24444 this.enabled = function (newState) { 24445 if (!arguments.length) { // get 24446 return _enabled; 24447 } else if (_enabled != newState) { // set 24448 _enabled = !! newState; 24449 Controller.updateScene(_sceneObjects, true); 24450 } 24451 return Controller; 24452 }; 24453 24454 /** 24455 * Destroy the Controller, all Scenes and everything. 24456 * @public 24457 * 24458 * @example 24459 * // without resetting the scenes 24460 * controller = controller.destroy(); 24461 * 24462 * // with scene reset 24463 * controller = controller.destroy(true); 24464 * 24465 * @param {boolean} [resetScenes=false] - If `true` the pins and tweens (if existent) of all scenes will be reset. 24466 * @returns {null} Null to unset handler variables. 24467 */ 24468 this.destroy = function (resetScenes) { 24469 window.clearTimeout(_refreshTimeout); 24470 var i = _sceneObjects.length; 24471 while (i--) { 24472 _sceneObjects[i].destroy(resetScenes); 24473 } 24474 _options.container.removeEventListener("resize", onChange); 24475 _options.container.removeEventListener("scroll", onChange); 24476 _util.cAF(_updateTimeout); 24477 log(3, "destroyed " + NAMESPACE + " (reset: " + (resetScenes ? "true" : "false") + ")"); 24478 return null; 24479 }; 24480 24481 // INIT 24482 construct(); 24483 return Controller; 24484 }; 24485 24486 // store pagewide controller options 24487 var CONTROLLER_OPTIONS = { 24488 defaults: { 24489 container: window, 24490 vertical: true, 24491 globalSceneOptions: {}, 24492 loglevel: 2, 24493 refreshInterval: 100 24494 } 24495 }; 24496/* 24497 * method used to add an option to ScrollMagic Scenes. 24498 */ 24499 ScrollMagic.Controller.addOption = function (name, defaultValue) { 24500 CONTROLLER_OPTIONS.defaults[name] = defaultValue; 24501 }; 24502 // instance extension function for plugins 24503 ScrollMagic.Controller.extend = function (extension) { 24504 var oldClass = this; 24505 ScrollMagic.Controller = function () { 24506 oldClass.apply(this, arguments); 24507 this.$super = _util.extend({}, this); // copy parent state 24508 return extension.apply(this, arguments) || this; 24509 }; 24510 _util.extend(ScrollMagic.Controller, oldClass); // copy properties 24511 ScrollMagic.Controller.prototype = oldClass.prototype; // copy prototype 24512 ScrollMagic.Controller.prototype.constructor = ScrollMagic.Controller; // restore constructor 24513 }; 24514 24515 24516 /** 24517 * A Scene defines where the controller should react and how. 24518 * 24519 * @class 24520 * 24521 * @example 24522 * // create a standard scene and add it to a controller 24523 * new ScrollMagic.Scene() 24524 * .addTo(controller); 24525 * 24526 * // create a scene with custom options and assign a handler to it. 24527 * var scene = new ScrollMagic.Scene({ 24528 * duration: 100, 24529 * offset: 200, 24530 * triggerHook: "onEnter", 24531 * reverse: false 24532 * }); 24533 * 24534 * @param {object} [options] - Options for the Scene. The options can be updated at any time. 24535 Instead of setting the options for each scene individually you can also set them globally in the controller as the controllers `globalSceneOptions` option. The object accepts the same properties as the ones below. 24536 When a scene is added to the controller the options defined using the Scene constructor will be overwritten by those set in `globalSceneOptions`. 24537 * @param {(number|function)} [options.duration=0] - The duration of the scene. 24538 If `0` tweens will auto-play when reaching the scene start point, pins will be pinned indefinetly starting at the start position. 24539 A function retuning the duration value is also supported. Please see `Scene.duration()` for details. 24540 * @param {number} [options.offset=0] - Offset Value for the Trigger Position. If no triggerElement is defined this will be the scroll distance from the start of the page, after which the scene will start. 24541 * @param {(string|object)} [options.triggerElement=null] - Selector or DOM object that defines the start of the scene. If undefined the scene will start right at the start of the page (unless an offset is set). 24542 * @param {(number|string)} [options.triggerHook="onCenter"] - Can be a number between 0 and 1 defining the position of the trigger Hook in relation to the viewport. 24543 Can also be defined using a string: 24544 ** `"onEnter"` => `1` 24545 ** `"onCenter"` => `0.5` 24546 ** `"onLeave"` => `0` 24547 * @param {boolean} [options.reverse=true] - Should the scene reverse, when scrolling up? 24548 * @param {number} [options.loglevel=2] - Loglevel for debugging. Note that logging is disabled in the minified version of ScrollMagic. 24549 ** `0` => silent 24550 ** `1` => errors 24551 ** `2` => errors, warnings 24552 ** `3` => errors, warnings, debuginfo 24553 * 24554 */ 24555 ScrollMagic.Scene = function (options) { 24556 24557/* 24558 * ---------------------------------------------------------------- 24559 * settings 24560 * ---------------------------------------------------------------- 24561 */ 24562 24563 var 24564 NAMESPACE = 'ScrollMagic.Scene', 24565 SCENE_STATE_BEFORE = 'BEFORE', 24566 SCENE_STATE_DURING = 'DURING', 24567 SCENE_STATE_AFTER = 'AFTER', 24568 DEFAULT_OPTIONS = SCENE_OPTIONS.defaults; 24569 24570/* 24571 * ---------------------------------------------------------------- 24572 * private vars 24573 * ---------------------------------------------------------------- 24574 */ 24575 24576 var 24577 Scene = this, 24578 _options = _util.extend({}, DEFAULT_OPTIONS, options), 24579 _state = SCENE_STATE_BEFORE, 24580 _progress = 0, 24581 _scrollOffset = { 24582 start: 0, 24583 end: 0 24584 }, 24585 // reflects the controllers's scroll position for the start and end of the scene respectively 24586 _triggerPos = 0, 24587 _enabled = true, 24588 _durationUpdateMethod, _controller; 24589 24590 /** 24591 * Internal constructor function of the ScrollMagic Scene 24592 * @private 24593 */ 24594 var construct = function () { 24595 for (var key in _options) { // check supplied options 24596 if (!DEFAULT_OPTIONS.hasOwnProperty(key)) { 24597 log(2, "WARNING: Unknown option \"" + key + "\""); 24598 delete _options[key]; 24599 } 24600 } 24601 // add getters/setters for all possible options 24602 for (var optionName in DEFAULT_OPTIONS) { 24603 addSceneOption(optionName); 24604 } 24605 // validate all options 24606 validateOption(); 24607 }; 24608 24609/* 24610 * ---------------------------------------------------------------- 24611 * Event Management 24612 * ---------------------------------------------------------------- 24613 */ 24614 24615 var _listeners = {}; 24616 /** 24617 * Scene start event. 24618 * Fires whenever the scroll position its the starting point of the scene. 24619 * It will also fire when scrolling back up going over the start position of the scene. If you want something to happen only when scrolling down/right, use the scrollDirection parameter passed to the callback. 24620 * 24621 * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method. 24622 * 24623 * @event ScrollMagic.Scene#start 24624 * 24625 * @example 24626 * scene.on("start", function (event) { 24627 * console.log("Hit start point of scene."); 24628 * }); 24629 * 24630 * @property {object} event - The event Object passed to each callback 24631 * @property {string} event.type - The name of the event 24632 * @property {Scene} event.target - The Scene object that triggered this event 24633 * @property {number} event.progress - Reflects the current progress of the scene 24634 * @property {string} event.state - The current state of the scene `"BEFORE"` or `"DURING"` 24635 * @property {string} event.scrollDirection - Indicates which way we are scrolling `"PAUSED"`, `"FORWARD"` or `"REVERSE"` 24636 */ 24637 /** 24638 * Scene end event. 24639 * Fires whenever the scroll position its the ending point of the scene. 24640 * It will also fire when scrolling back up from after the scene and going over its end position. If you want something to happen only when scrolling down/right, use the scrollDirection parameter passed to the callback. 24641 * 24642 * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method. 24643 * 24644 * @event ScrollMagic.Scene#end 24645 * 24646 * @example 24647 * scene.on("end", function (event) { 24648 * console.log("Hit end point of scene."); 24649 * }); 24650 * 24651 * @property {object} event - The event Object passed to each callback 24652 * @property {string} event.type - The name of the event 24653 * @property {Scene} event.target - The Scene object that triggered this event 24654 * @property {number} event.progress - Reflects the current progress of the scene 24655 * @property {string} event.state - The current state of the scene `"DURING"` or `"AFTER"` 24656 * @property {string} event.scrollDirection - Indicates which way we are scrolling `"PAUSED"`, `"FORWARD"` or `"REVERSE"` 24657 */ 24658 /** 24659 * Scene enter event. 24660 * Fires whenever the scene enters the "DURING" state. 24661 * Keep in mind that it doesn't matter if the scene plays forward or backward: This event always fires when the scene enters its active scroll timeframe, regardless of the scroll-direction. 24662 * 24663 * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method. 24664 * 24665 * @event ScrollMagic.Scene#enter 24666 * 24667 * @example 24668 * scene.on("enter", function (event) { 24669 * console.log("Scene entered."); 24670 * }); 24671 * 24672 * @property {object} event - The event Object passed to each callback 24673 * @property {string} event.type - The name of the event 24674 * @property {Scene} event.target - The Scene object that triggered this event 24675 * @property {number} event.progress - Reflects the current progress of the scene 24676 * @property {string} event.state - The current state of the scene - always `"DURING"` 24677 * @property {string} event.scrollDirection - Indicates which way we are scrolling `"PAUSED"`, `"FORWARD"` or `"REVERSE"` 24678 */ 24679 /** 24680 * Scene leave event. 24681 * Fires whenever the scene's state goes from "DURING" to either "BEFORE" or "AFTER". 24682 * Keep in mind that it doesn't matter if the scene plays forward or backward: This event always fires when the scene leaves its active scroll timeframe, regardless of the scroll-direction. 24683 * 24684 * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method. 24685 * 24686 * @event ScrollMagic.Scene#leave 24687 * 24688 * @example 24689 * scene.on("leave", function (event) { 24690 * console.log("Scene left."); 24691 * }); 24692 * 24693 * @property {object} event - The event Object passed to each callback 24694 * @property {string} event.type - The name of the event 24695 * @property {Scene} event.target - The Scene object that triggered this event 24696 * @property {number} event.progress - Reflects the current progress of the scene 24697 * @property {string} event.state - The current state of the scene `"BEFORE"` or `"AFTER"` 24698 * @property {string} event.scrollDirection - Indicates which way we are scrolling `"PAUSED"`, `"FORWARD"` or `"REVERSE"` 24699 */ 24700 /** 24701 * Scene update event. 24702 * Fires whenever the scene is updated (but not necessarily changes the progress). 24703 * 24704 * @event ScrollMagic.Scene#update 24705 * 24706 * @example 24707 * scene.on("update", function (event) { 24708 * console.log("Scene updated."); 24709 * }); 24710 * 24711 * @property {object} event - The event Object passed to each callback 24712 * @property {string} event.type - The name of the event 24713 * @property {Scene} event.target - The Scene object that triggered this event 24714 * @property {number} event.startPos - The starting position of the scene (in relation to the conainer) 24715 * @property {number} event.endPos - The ending position of the scene (in relation to the conainer) 24716 * @property {number} event.scrollPos - The current scroll position of the container 24717 */ 24718 /** 24719 * Scene progress event. 24720 * Fires whenever the progress of the scene changes. 24721 * 24722 * For details on this event and the order in which it is fired, please review the {@link Scene.progress} method. 24723 * 24724 * @event ScrollMagic.Scene#progress 24725 * 24726 * @example 24727 * scene.on("progress", function (event) { 24728 * console.log("Scene progress changed to " + event.progress); 24729 * }); 24730 * 24731 * @property {object} event - The event Object passed to each callback 24732 * @property {string} event.type - The name of the event 24733 * @property {Scene} event.target - The Scene object that triggered this event 24734 * @property {number} event.progress - Reflects the current progress of the scene 24735 * @property {string} event.state - The current state of the scene `"BEFORE"`, `"DURING"` or `"AFTER"` 24736 * @property {string} event.scrollDirection - Indicates which way we are scrolling `"PAUSED"`, `"FORWARD"` or `"REVERSE"` 24737 */ 24738 /** 24739 * Scene change event. 24740 * Fires whenvever a property of the scene is changed. 24741 * 24742 * @event ScrollMagic.Scene#change 24743 * 24744 * @example 24745 * scene.on("change", function (event) { 24746 * console.log("Scene Property \"" + event.what + "\" changed to " + event.newval); 24747 * }); 24748 * 24749 * @property {object} event - The event Object passed to each callback 24750 * @property {string} event.type - The name of the event 24751 * @property {Scene} event.target - The Scene object that triggered this event 24752 * @property {string} event.what - Indicates what value has been changed 24753 * @property {mixed} event.newval - The new value of the changed property 24754 */ 24755 /** 24756 * Scene shift event. 24757 * Fires whenvever the start or end **scroll offset** of the scene change. 24758 * This happens explicitely, when one of these values change: `offset`, `duration` or `triggerHook`. 24759 * It will fire implicitly when the `triggerElement` changes, if the new element has a different position (most cases). 24760 * It will also fire implicitly when the size of the container changes and the triggerHook is anything other than `onLeave`. 24761 * 24762 * @event ScrollMagic.Scene#shift 24763 * @since 1.1.0 24764 * 24765 * @example 24766 * scene.on("shift", function (event) { 24767 * console.log("Scene moved, because the " + event.reason + " has changed.)"); 24768 * }); 24769 * 24770 * @property {object} event - The event Object passed to each callback 24771 * @property {string} event.type - The name of the event 24772 * @property {Scene} event.target - The Scene object that triggered this event 24773 * @property {string} event.reason - Indicates why the scene has shifted 24774 */ 24775 /** 24776 * Scene destroy event. 24777 * Fires whenvever the scene is destroyed. 24778 * This can be used to tidy up custom behaviour used in events. 24779 * 24780 * @event ScrollMagic.Scene#destroy 24781 * @since 1.1.0 24782 * 24783 * @example 24784 * scene.on("enter", function (event) { 24785 * // add custom action 24786 * $("#my-elem").left("200"); 24787 * }) 24788 * .on("destroy", function (event) { 24789 * // reset my element to start position 24790 * if (event.reset) { 24791 * $("#my-elem").left("0"); 24792 * } 24793 * }); 24794 * 24795 * @property {object} event - The event Object passed to each callback 24796 * @property {string} event.type - The name of the event 24797 * @property {Scene} event.target - The Scene object that triggered this event 24798 * @property {boolean} event.reset - Indicates if the destroy method was called with reset `true` or `false`. 24799 */ 24800 /** 24801 * Scene add event. 24802 * Fires when the scene is added to a controller. 24803 * This is mostly used by plugins to know that change might be due. 24804 * 24805 * @event ScrollMagic.Scene#add 24806 * @since 2.0.0 24807 * 24808 * @example 24809 * scene.on("add", function (event) { 24810 * console.log('Scene was added to a new controller.'); 24811 * }); 24812 * 24813 * @property {object} event - The event Object passed to each callback 24814 * @property {string} event.type - The name of the event 24815 * @property {Scene} event.target - The Scene object that triggered this event 24816 * @property {boolean} event.controller - The controller object the scene was added to. 24817 */ 24818 /** 24819 * Scene remove event. 24820 * Fires when the scene is removed from a controller. 24821 * This is mostly used by plugins to know that change might be due. 24822 * 24823 * @event ScrollMagic.Scene#remove 24824 * @since 2.0.0 24825 * 24826 * @example 24827 * scene.on("remove", function (event) { 24828 * console.log('Scene was removed from its controller.'); 24829 * }); 24830 * 24831 * @property {object} event - The event Object passed to each callback 24832 * @property {string} event.type - The name of the event 24833 * @property {Scene} event.target - The Scene object that triggered this event 24834 */ 24835 24836 /** 24837 * Add one ore more event listener. 24838 * The callback function will be fired at the respective event, and an object containing relevant data will be passed to the callback. 24839 * @method ScrollMagic.Scene#on 24840 * 24841 * @example 24842 * function callback (event) { 24843 * console.log("Event fired! (" + event.type + ")"); 24844 * } 24845 * // add listeners 24846 * scene.on("change update progress start end enter leave", callback); 24847 * 24848 * @param {string} names - The name or names of the event the callback should be attached to. 24849 * @param {function} callback - A function that should be executed, when the event is dispatched. An event object will be passed to the callback. 24850 * @returns {Scene} Parent object for chaining. 24851 */ 24852 this.on = function (names, callback) { 24853 if (_util.type.Function(callback)) { 24854 names = names.trim().split(' '); 24855 names.forEach(function (fullname) { 24856 var 24857 nameparts = fullname.split('.'), 24858 eventname = nameparts[0], 24859 namespace = nameparts[1]; 24860 if (eventname != "*") { // disallow wildcards 24861 if (!_listeners[eventname]) { 24862 _listeners[eventname] = []; 24863 } 24864 _listeners[eventname].push({ 24865 namespace: namespace || '', 24866 callback: callback 24867 }); 24868 } 24869 }); 24870 } else { 24871 log(1, "ERROR when calling '.on()': Supplied callback for '" + names + "' is not a valid function!"); 24872 } 24873 return Scene; 24874 }; 24875 24876 /** 24877 * Remove one or more event listener. 24878 * @method ScrollMagic.Scene#off 24879 * 24880 * @example 24881 * function callback (event) { 24882 * console.log("Event fired! (" + event.type + ")"); 24883 * } 24884 * // add listeners 24885 * scene.on("change update", callback); 24886 * // remove listeners 24887 * scene.off("change update", callback); 24888 * 24889 * @param {string} names - The name or names of the event that should be removed. 24890 * @param {function} [callback] - A specific callback function that should be removed. If none is passed all callbacks to the event listener will be removed. 24891 * @returns {Scene} Parent object for chaining. 24892 */ 24893 this.off = function (names, callback) { 24894 if (!names) { 24895 log(1, "ERROR: Invalid event name supplied."); 24896 return Scene; 24897 } 24898 names = names.trim().split(' '); 24899 names.forEach(function (fullname, key) { 24900 var 24901 nameparts = fullname.split('.'), 24902 eventname = nameparts[0], 24903 namespace = nameparts[1] || '', 24904 removeList = eventname === '*' ? Object.keys(_listeners) : [eventname]; 24905 removeList.forEach(function (remove) { 24906 var 24907 list = _listeners[remove] || [], 24908 i = list.length; 24909 while (i--) { 24910 var listener = list[i]; 24911 if (listener && (namespace === listener.namespace || namespace === '*') && (!callback || callback == listener.callback)) { 24912 list.splice(i, 1); 24913 } 24914 } 24915 if (!list.length) { 24916 delete _listeners[remove]; 24917 } 24918 }); 24919 }); 24920 return Scene; 24921 }; 24922 24923 /** 24924 * Trigger an event. 24925 * @method ScrollMagic.Scene#trigger 24926 * 24927 * @example 24928 * this.trigger("change"); 24929 * 24930 * @param {string} name - The name of the event that should be triggered. 24931 * @param {object} [vars] - An object containing info that should be passed to the callback. 24932 * @returns {Scene} Parent object for chaining. 24933 */ 24934 this.trigger = function (name, vars) { 24935 if (name) { 24936 var 24937 nameparts = name.trim().split('.'), 24938 eventname = nameparts[0], 24939 namespace = nameparts[1], 24940 listeners = _listeners[eventname]; 24941 log(3, 'event fired:', eventname, vars ? "->" : '', vars || ''); 24942 if (listeners) { 24943 listeners.forEach(function (listener, key) { 24944 if (!namespace || namespace === listener.namespace) { 24945 listener.callback.call(Scene, new ScrollMagic.Event(eventname, listener.namespace, Scene, vars)); 24946 } 24947 }); 24948 } 24949 } else { 24950 log(1, "ERROR: Invalid event name supplied."); 24951 } 24952 return Scene; 24953 }; 24954 24955 // set event listeners 24956 Scene.on("change.internal", function (e) { 24957 if (e.what !== "loglevel" && e.what !== "tweenChanges") { // no need for a scene update scene with these options... 24958 if (e.what === "triggerElement") { 24959 updateTriggerElementPosition(); 24960 } else if (e.what === "reverse") { // the only property left that may have an impact on the current scene state. Everything else is handled by the shift event. 24961 Scene.update(); 24962 } 24963 } 24964 }).on("shift.internal", function (e) { 24965 updateScrollOffset(); 24966 Scene.update(); // update scene to reflect new position 24967 }); 24968 24969 /** 24970 * Send a debug message to the console. 24971 * @private 24972 * but provided publicly with _log for plugins 24973 * 24974 * @param {number} loglevel - The loglevel required to initiate output for the message. 24975 * @param {...mixed} output - One or more variables that should be passed to the console. 24976 */ 24977 var log = this._log = function (loglevel, output) { 24978 if (_options.loglevel >= loglevel) { 24979 Array.prototype.splice.call(arguments, 1, 0, "(" + NAMESPACE + ") ->"); 24980 _util.log.apply(window, arguments); 24981 } 24982 }; 24983 24984 /** 24985 * Add the scene to a controller. 24986 * This is the equivalent to `Controller.addScene(scene)`. 24987 * @method ScrollMagic.Scene#addTo 24988 * 24989 * @example 24990 * // add a scene to a ScrollMagic Controller 24991 * scene.addTo(controller); 24992 * 24993 * @param {ScrollMagic.Controller} controller - The controller to which the scene should be added. 24994 * @returns {Scene} Parent object for chaining. 24995 */ 24996 this.addTo = function (controller) { 24997 if (!(controller instanceof ScrollMagic.Controller)) { 24998 log(1, "ERROR: supplied argument of 'addTo()' is not a valid ScrollMagic Controller"); 24999 } else if (_controller != controller) { 25000 // new controller 25001 if (_controller) { // was associated to a different controller before, so remove it... 25002 _controller.removeScene(Scene); 25003 } 25004 _controller = controller; 25005 validateOption(); 25006 updateDuration(true); 25007 updateTriggerElementPosition(true); 25008 updateScrollOffset(); 25009 _controller.info("container").addEventListener('resize', onContainerResize); 25010 controller.addScene(Scene); 25011 Scene.trigger("add", { 25012 controller: _controller 25013 }); 25014 log(3, "added " + NAMESPACE + " to controller"); 25015 Scene.update(); 25016 } 25017 return Scene; 25018 }; 25019 25020 /** 25021 * **Get** or **Set** the current enabled state of the scene. 25022 * This can be used to disable this scene without removing or destroying it. 25023 * @method ScrollMagic.Scene#enabled 25024 * 25025 * @example 25026 * // get the current value 25027 * var enabled = scene.enabled(); 25028 * 25029 * // disable the scene 25030 * scene.enabled(false); 25031 * 25032 * @param {boolean} [newState] - The new enabled state of the scene `true` or `false`. 25033 * @returns {(boolean|Scene)} Current enabled state or parent object for chaining. 25034 */ 25035 this.enabled = function (newState) { 25036 if (!arguments.length) { // get 25037 return _enabled; 25038 } else if (_enabled != newState) { // set 25039 _enabled = !! newState; 25040 Scene.update(true); 25041 } 25042 return Scene; 25043 }; 25044 25045 /** 25046 * Remove the scene from the controller. 25047 * This is the equivalent to `Controller.removeScene(scene)`. 25048 * The scene will not be updated anymore until you readd it to a controller. 25049 * To remove the pin or the tween you need to call removeTween() or removePin() respectively. 25050 * @method ScrollMagic.Scene#remove 25051 * @example 25052 * // remove the scene from its controller 25053 * scene.remove(); 25054 * 25055 * @returns {Scene} Parent object for chaining. 25056 */ 25057 this.remove = function () { 25058 if (_controller) { 25059 _controller.info("container").removeEventListener('resize', onContainerResize); 25060 var tmpParent = _controller; 25061 _controller = undefined; 25062 tmpParent.removeScene(Scene); 25063 Scene.trigger("remove"); 25064 log(3, "removed " + NAMESPACE + " from controller"); 25065 } 25066 return Scene; 25067 }; 25068 25069 /** 25070 * Destroy the scene and everything. 25071 * @method ScrollMagic.Scene#destroy 25072 * @example 25073 * // destroy the scene without resetting the pin and tween to their initial positions 25074 * scene = scene.destroy(); 25075 * 25076 * // destroy the scene and reset the pin and tween 25077 * scene = scene.destroy(true); 25078 * 25079 * @param {boolean} [reset=false] - If `true` the pin and tween (if existent) will be reset. 25080 * @returns {null} Null to unset handler variables. 25081 */ 25082 this.destroy = function (reset) { 25083 Scene.trigger("destroy", { 25084 reset: reset 25085 }); 25086 Scene.remove(); 25087 Scene.off("*.*"); 25088 log(3, "destroyed " + NAMESPACE + " (reset: " + (reset ? "true" : "false") + ")"); 25089 return null; 25090 }; 25091 25092 25093 /** 25094 * Updates the Scene to reflect the current state. 25095 * This is the equivalent to `Controller.updateScene(scene, immediately)`. 25096 * The update method calculates the scene's start and end position (based on the trigger element, trigger hook, duration and offset) and checks it against the current scroll position of the container. 25097 * It then updates the current scene state accordingly (or does nothing, if the state is already correct) – Pins will be set to their correct position and tweens will be updated to their correct progress. 25098 * This means an update doesn't necessarily result in a progress change. The `progress` event will be fired if the progress has indeed changed between this update and the last. 25099 * _**NOTE:** This method gets called constantly whenever ScrollMagic detects a change. The only application for you is if you change something outside of the realm of ScrollMagic, like moving the trigger or changing tween parameters._ 25100 * @method ScrollMagic.Scene#update 25101 * @example 25102 * // update the scene on next tick 25103 * scene.update(); 25104 * 25105 * // update the scene immediately 25106 * scene.update(true); 25107 * 25108 * @fires Scene.update 25109 * 25110 * @param {boolean} [immediately=false] - If `true` the update will be instant, if `false` it will wait until next update cycle (better performance). 25111 * @returns {Scene} Parent object for chaining. 25112 */ 25113 this.update = function (immediately) { 25114 if (_controller) { 25115 if (immediately) { 25116 if (_controller.enabled() && _enabled) { 25117 var 25118 scrollPos = _controller.info("scrollPos"), 25119 newProgress; 25120 25121 if (_options.duration > 0) { 25122 newProgress = (scrollPos - _scrollOffset.start) / (_scrollOffset.end - _scrollOffset.start); 25123 } else { 25124 newProgress = scrollPos >= _scrollOffset.start ? 1 : 0; 25125 } 25126 25127 Scene.trigger("update", { 25128 startPos: _scrollOffset.start, 25129 endPos: _scrollOffset.end, 25130 scrollPos: scrollPos 25131 }); 25132 25133 Scene.progress(newProgress); 25134 } else if (_pin && _state === SCENE_STATE_DURING) { 25135 updatePinState(true); // unpin in position 25136 } 25137 } else { 25138 _controller.updateScene(Scene, false); 25139 } 25140 } 25141 return Scene; 25142 }; 25143 25144 /** 25145 * Updates dynamic scene variables like the trigger element position or the duration. 25146 * This method is automatically called in regular intervals from the controller. See {@link ScrollMagic.Controller} option `refreshInterval`. 25147 * 25148 * You can call it to minimize lag, for example when you intentionally change the position of the triggerElement. 25149 * If you don't it will simply be updated in the next refresh interval of the container, which is usually sufficient. 25150 * 25151 * @method ScrollMagic.Scene#refresh 25152 * @since 1.1.0 25153 * @example 25154 * scene = new ScrollMagic.Scene({triggerElement: "#trigger"}); 25155 * 25156 * // change the position of the trigger 25157 * $("#trigger").css("top", 500); 25158 * // immediately let the scene know of this change 25159 * scene.refresh(); 25160 * 25161 * @fires {@link Scene.shift}, if the trigger element position or the duration changed 25162 * @fires {@link Scene.change}, if the duration changed 25163 * 25164 * @returns {Scene} Parent object for chaining. 25165 */ 25166 this.refresh = function () { 25167 updateDuration(); 25168 updateTriggerElementPosition(); 25169 // update trigger element position 25170 return Scene; 25171 }; 25172 25173 /** 25174 * **Get** or **Set** the scene's progress. 25175 * Usually it shouldn't be necessary to use this as a setter, as it is set automatically by scene.update(). 25176 * The order in which the events are fired depends on the duration of the scene: 25177 * 1. Scenes with `duration == 0`: 25178 * Scenes that have no duration by definition have no ending. Thus the `end` event will never be fired. 25179 * When the trigger position of the scene is passed the events are always fired in this order: 25180 * `enter`, `start`, `progress` when scrolling forward 25181 * and 25182 * `progress`, `start`, `leave` when scrolling in reverse 25183 * 2. Scenes with `duration > 0`: 25184 * Scenes with a set duration have a defined start and end point. 25185 * When scrolling past the start position of the scene it will fire these events in this order: 25186 * `enter`, `start`, `progress` 25187 * When continuing to scroll and passing the end point it will fire these events: 25188 * `progress`, `end`, `leave` 25189 * When reversing through the end point these events are fired: 25190 * `enter`, `end`, `progress` 25191 * And when continuing to scroll past the start position in reverse it will fire: 25192 * `progress`, `start`, `leave` 25193 * In between start and end the `progress` event will be called constantly, whenever the progress changes. 25194 * 25195 * In short: 25196 * `enter` events will always trigger **before** the progress update and `leave` envents will trigger **after** the progress update. 25197 * `start` and `end` will always trigger at their respective position. 25198 * 25199 * Please review the event descriptions for details on the events and the event object that is passed to the callback. 25200 * 25201 * @method ScrollMagic.Scene#progress 25202 * @example 25203 * // get the current scene progress 25204 * var progress = scene.progress(); 25205 * 25206 * // set new scene progress 25207 * scene.progress(0.3); 25208 * 25209 * @fires {@link Scene.enter}, when used as setter 25210 * @fires {@link Scene.start}, when used as setter 25211 * @fires {@link Scene.progress}, when used as setter 25212 * @fires {@link Scene.end}, when used as setter 25213 * @fires {@link Scene.leave}, when used as setter 25214 * 25215 * @param {number} [progress] - The new progress value of the scene `[0-1]`. 25216 * @returns {number} `get` - Current scene progress. 25217 * @returns {Scene} `set` - Parent object for chaining. 25218 */ 25219 this.progress = function (progress) { 25220 if (!arguments.length) { // get 25221 return _progress; 25222 } else { // set 25223 var 25224 doUpdate = false, 25225 oldState = _state, 25226 scrollDirection = _controller ? _controller.info("scrollDirection") : 'PAUSED', 25227 reverseOrForward = _options.reverse || progress >= _progress; 25228 if (_options.duration === 0) { 25229 // zero duration scenes 25230 doUpdate = _progress != progress; 25231 _progress = progress < 1 && reverseOrForward ? 0 : 1; 25232 _state = _progress === 0 ? SCENE_STATE_BEFORE : SCENE_STATE_DURING; 25233 } else { 25234 // scenes with start and end 25235 if (progress < 0 && _state !== SCENE_STATE_BEFORE && reverseOrForward) { 25236 // go back to initial state 25237 _progress = 0; 25238 _state = SCENE_STATE_BEFORE; 25239 doUpdate = true; 25240 } else if (progress >= 0 && progress < 1 && reverseOrForward) { 25241 _progress = progress; 25242 _state = SCENE_STATE_DURING; 25243 doUpdate = true; 25244 } else if (progress >= 1 && _state !== SCENE_STATE_AFTER) { 25245 _progress = 1; 25246 _state = SCENE_STATE_AFTER; 25247 doUpdate = true; 25248 } else if (_state === SCENE_STATE_DURING && !reverseOrForward) { 25249 updatePinState(); // in case we scrolled backwards mid-scene and reverse is disabled => update the pin position, so it doesn't move back as well. 25250 } 25251 } 25252 if (doUpdate) { 25253 // fire events 25254 var 25255 eventVars = { 25256 progress: _progress, 25257 state: _state, 25258 scrollDirection: scrollDirection 25259 }, 25260 stateChanged = _state != oldState; 25261 25262 var trigger = function (eventName) { // tmp helper to simplify code 25263 Scene.trigger(eventName, eventVars); 25264 }; 25265 25266 if (stateChanged) { // enter events 25267 if (oldState !== SCENE_STATE_DURING) { 25268 trigger("enter"); 25269 trigger(oldState === SCENE_STATE_BEFORE ? "start" : "end"); 25270 } 25271 } 25272 trigger("progress"); 25273 if (stateChanged) { // leave events 25274 if (_state !== SCENE_STATE_DURING) { 25275 trigger(_state === SCENE_STATE_BEFORE ? "start" : "end"); 25276 trigger("leave"); 25277 } 25278 } 25279 } 25280 25281 return Scene; 25282 } 25283 }; 25284 25285 25286 /** 25287 * Update the start and end scrollOffset of the container. 25288 * The positions reflect what the controller's scroll position will be at the start and end respectively. 25289 * Is called, when: 25290 * - Scene event "change" is called with: offset, triggerHook, duration 25291 * - scroll container event "resize" is called 25292 * - the position of the triggerElement changes 25293 * - the controller changes -> addTo() 25294 * @private 25295 */ 25296 var updateScrollOffset = function () { 25297 _scrollOffset = { 25298 start: _triggerPos + _options.offset 25299 }; 25300 if (_controller && _options.triggerElement) { 25301 // take away triggerHook portion to get relative to top 25302 _scrollOffset.start -= _controller.info("size") * _options.triggerHook; 25303 } 25304 _scrollOffset.end = _scrollOffset.start + _options.duration; 25305 }; 25306 25307 /** 25308 * Updates the duration if set to a dynamic function. 25309 * This method is called when the scene is added to a controller and in regular intervals from the controller through scene.refresh(). 25310 * 25311 * @fires {@link Scene.change}, if the duration changed 25312 * @fires {@link Scene.shift}, if the duration changed 25313 * 25314 * @param {boolean} [suppressEvents=false] - If true the shift event will be suppressed. 25315 * @private 25316 */ 25317 var updateDuration = function (suppressEvents) { 25318 // update duration 25319 if (_durationUpdateMethod) { 25320 var varname = "duration"; 25321 if (changeOption(varname, _durationUpdateMethod.call(Scene)) && !suppressEvents) { // set 25322 Scene.trigger("change", { 25323 what: varname, 25324 newval: _options[varname] 25325 }); 25326 Scene.trigger("shift", { 25327 reason: varname 25328 }); 25329 } 25330 } 25331 }; 25332 25333 /** 25334 * Updates the position of the triggerElement, if present. 25335 * This method is called ... 25336 * - ... when the triggerElement is changed 25337 * - ... when the scene is added to a (new) controller 25338 * - ... in regular intervals from the controller through scene.refresh(). 25339 * 25340 * @fires {@link Scene.shift}, if the position changed 25341 * 25342 * @param {boolean} [suppressEvents=false] - If true the shift event will be suppressed. 25343 * @private 25344 */ 25345 var updateTriggerElementPosition = function (suppressEvents) { 25346 var 25347 elementPos = 0, 25348 telem = _options.triggerElement; 25349 if (_controller && (telem || _triggerPos > 0)) { // either an element exists or was removed and the triggerPos is still > 0 25350 if (telem) { // there currently a triggerElement set 25351 if (telem.parentNode) { // check if element is still attached to DOM 25352 var 25353 controllerInfo = _controller.info(), 25354 containerOffset = _util.get.offset(controllerInfo.container), 25355 // container position is needed because element offset is returned in relation to document, not in relation to container. 25356 param = controllerInfo.vertical ? "top" : "left"; // which param is of interest ? 25357 // if parent is spacer, use spacer position instead so correct start position is returned for pinned elements. 25358 while (telem.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)) { 25359 telem = telem.parentNode; 25360 } 25361 25362 var elementOffset = _util.get.offset(telem); 25363 25364 if (!controllerInfo.isDocument) { // container is not the document root, so substract scroll Position to get correct trigger element position relative to scrollcontent 25365 containerOffset[param] -= _controller.scrollPos(); 25366 } 25367 25368 elementPos = elementOffset[param] - containerOffset[param]; 25369 25370 } else { // there was an element, but it was removed from DOM 25371 log(2, "WARNING: triggerElement was removed from DOM and will be reset to", undefined); 25372 Scene.triggerElement(undefined); // unset, so a change event is triggered 25373 } 25374 } 25375 25376 var changed = elementPos != _triggerPos; 25377 _triggerPos = elementPos; 25378 if (changed && !suppressEvents) { 25379 Scene.trigger("shift", { 25380 reason: "triggerElementPosition" 25381 }); 25382 } 25383 } 25384 }; 25385 25386 /** 25387 * Trigger a shift event, when the container is resized and the triggerHook is > 1. 25388 * @private 25389 */ 25390 var onContainerResize = function (e) { 25391 if (_options.triggerHook > 0) { 25392 Scene.trigger("shift", { 25393 reason: "containerResize" 25394 }); 25395 } 25396 }; 25397 25398 25399 var _validate = _util.extend(SCENE_OPTIONS.validate, { 25400 // validation for duration handled internally for reference to private var _durationMethod 25401 duration: function (val) { 25402 if (_util.type.String(val) && val.match(/^(\.|\d)*\d+%$/)) { 25403 // percentage value 25404 var perc = parseFloat(val) / 100; 25405 val = function () { 25406 return _controller ? _controller.info("size") * perc : 0; 25407 }; 25408 } 25409 if (_util.type.Function(val)) { 25410 // function 25411 _durationUpdateMethod = val; 25412 try { 25413 val = parseFloat(_durationUpdateMethod()); 25414 } catch (e) { 25415 val = -1; // will cause error below 25416 } 25417 } 25418 // val has to be float 25419 val = parseFloat(val); 25420 if (!_util.type.Number(val) || val < 0) { 25421 if (_durationUpdateMethod) { 25422 _durationUpdateMethod = undefined; 25423 throw ["Invalid return value of supplied function for option \"duration\":", val]; 25424 } else { 25425 throw ["Invalid value for option \"duration\":", val]; 25426 } 25427 } 25428 return val; 25429 } 25430 }); 25431 25432 /** 25433 * Checks the validity of a specific or all options and reset to default if neccessary. 25434 * @private 25435 */ 25436 var validateOption = function (check) { 25437 check = arguments.length ? [check] : Object.keys(_validate); 25438 check.forEach(function (optionName, key) { 25439 var value; 25440 if (_validate[optionName]) { // there is a validation method for this option 25441 try { // validate value 25442 value = _validate[optionName](_options[optionName]); 25443 } catch (e) { // validation failed -> reset to default 25444 value = DEFAULT_OPTIONS[optionName]; 25445 var logMSG = _util.type.String(e) ? [e] : e; 25446 if (_util.type.Array(logMSG)) { 25447 logMSG[0] = "ERROR: " + logMSG[0]; 25448 logMSG.unshift(1); // loglevel 1 for error msg 25449 log.apply(this, logMSG); 25450 } else { 25451 log(1, "ERROR: Problem executing validation callback for option '" + optionName + "':", e.message); 25452 } 25453 } finally { 25454 _options[optionName] = value; 25455 } 25456 } 25457 }); 25458 }; 25459 25460 /** 25461 * Helper used by the setter/getters for scene options 25462 * @private 25463 */ 25464 var changeOption = function (varname, newval) { 25465 var 25466 changed = false, 25467 oldval = _options[varname]; 25468 if (_options[varname] != newval) { 25469 _options[varname] = newval; 25470 validateOption(varname); // resets to default if necessary 25471 changed = oldval != _options[varname]; 25472 } 25473 return changed; 25474 }; 25475 25476 // generate getters/setters for all options 25477 var addSceneOption = function (optionName) { 25478 if (!Scene[optionName]) { 25479 Scene[optionName] = function (newVal) { 25480 if (!arguments.length) { // get 25481 return _options[optionName]; 25482 } else { 25483 if (optionName === "duration") { // new duration is set, so any previously set function must be unset 25484 _durationUpdateMethod = undefined; 25485 } 25486 if (changeOption(optionName, newVal)) { // set 25487 Scene.trigger("change", { 25488 what: optionName, 25489 newval: _options[optionName] 25490 }); 25491 if (SCENE_OPTIONS.shifts.indexOf(optionName) > -1) { 25492 Scene.trigger("shift", { 25493 reason: optionName 25494 }); 25495 } 25496 } 25497 } 25498 return Scene; 25499 }; 25500 } 25501 }; 25502 25503 /** 25504 * **Get** or **Set** the duration option value. 25505 * As a setter it also accepts a function returning a numeric value. 25506 * This is particularly useful for responsive setups. 25507 * 25508 * The duration is updated using the supplied function every time `Scene.refresh()` is called, which happens periodically from the controller (see ScrollMagic.Controller option `refreshInterval`). 25509 * _**NOTE:** Be aware that it's an easy way to kill performance, if you supply a function that has high CPU demand. 25510 * Even for size and position calculations it is recommended to use a variable to cache the value. (see example) 25511 * This counts double if you use the same function for multiple scenes._ 25512 * 25513 * @method ScrollMagic.Scene#duration 25514 * @example 25515 * // get the current duration value 25516 * var duration = scene.duration(); 25517 * 25518 * // set a new duration 25519 * scene.duration(300); 25520 * 25521 * // use a function to automatically adjust the duration to the window height. 25522 * var durationValueCache; 25523 * function getDuration () { 25524 * return durationValueCache; 25525 * } 25526 * function updateDuration (e) { 25527 * durationValueCache = window.innerHeight; 25528 * } 25529 * $(window).on("resize", updateDuration); // update the duration when the window size changes 25530 * $(window).triggerHandler("resize"); // set to initial value 25531 * scene.duration(getDuration); // supply duration method 25532 * 25533 * @fires {@link Scene.change}, when used as setter 25534 * @fires {@link Scene.shift}, when used as setter 25535 * @param {(number|function)} [newDuration] - The new duration of the scene. 25536 * @returns {number} `get` - Current scene duration. 25537 * @returns {Scene} `set` - Parent object for chaining. 25538 */ 25539 25540 /** 25541 * **Get** or **Set** the offset option value. 25542 * @method ScrollMagic.Scene#offset 25543 * @example 25544 * // get the current offset 25545 * var offset = scene.offset(); 25546 * 25547 * // set a new offset 25548 * scene.offset(100); 25549 * 25550 * @fires {@link Scene.change}, when used as setter 25551 * @fires {@link Scene.shift}, when used as setter 25552 * @param {number} [newOffset] - The new offset of the scene. 25553 * @returns {number} `get` - Current scene offset. 25554 * @returns {Scene} `set` - Parent object for chaining. 25555 */ 25556 25557 /** 25558 * **Get** or **Set** the triggerElement option value. 25559 * Does **not** fire `Scene.shift`, because changing the trigger Element doesn't necessarily mean the start position changes. This will be determined in `Scene.refresh()`, which is automatically triggered. 25560 * @method ScrollMagic.Scene#triggerElement 25561 * @example 25562 * // get the current triggerElement 25563 * var triggerElement = scene.triggerElement(); 25564 * 25565 * // set a new triggerElement using a selector 25566 * scene.triggerElement("#trigger"); 25567 * // set a new triggerElement using a DOM object 25568 * scene.triggerElement(document.getElementById("trigger")); 25569 * 25570 * @fires {@link Scene.change}, when used as setter 25571 * @param {(string|object)} [newTriggerElement] - The new trigger element for the scene. 25572 * @returns {(string|object)} `get` - Current triggerElement. 25573 * @returns {Scene} `set` - Parent object for chaining. 25574 */ 25575 25576 /** 25577 * **Get** or **Set** the triggerHook option value. 25578 * @method ScrollMagic.Scene#triggerHook 25579 * @example 25580 * // get the current triggerHook value 25581 * var triggerHook = scene.triggerHook(); 25582 * 25583 * // set a new triggerHook using a string 25584 * scene.triggerHook("onLeave"); 25585 * // set a new triggerHook using a number 25586 * scene.triggerHook(0.7); 25587 * 25588 * @fires {@link Scene.change}, when used as setter 25589 * @fires {@link Scene.shift}, when used as setter 25590 * @param {(number|string)} [newTriggerHook] - The new triggerHook of the scene. See {@link Scene} parameter description for value options. 25591 * @returns {number} `get` - Current triggerHook (ALWAYS numerical). 25592 * @returns {Scene} `set` - Parent object for chaining. 25593 */ 25594 25595 /** 25596 * **Get** or **Set** the reverse option value. 25597 * @method ScrollMagic.Scene#reverse 25598 * @example 25599 * // get the current reverse option 25600 * var reverse = scene.reverse(); 25601 * 25602 * // set new reverse option 25603 * scene.reverse(false); 25604 * 25605 * @fires {@link Scene.change}, when used as setter 25606 * @param {boolean} [newReverse] - The new reverse setting of the scene. 25607 * @returns {boolean} `get` - Current reverse option value. 25608 * @returns {Scene} `set` - Parent object for chaining. 25609 */ 25610 25611 /** 25612 * **Get** or **Set** the loglevel option value. 25613 * @method ScrollMagic.Scene#loglevel 25614 * @example 25615 * // get the current loglevel 25616 * var loglevel = scene.loglevel(); 25617 * 25618 * // set new loglevel 25619 * scene.loglevel(3); 25620 * 25621 * @fires {@link Scene.change}, when used as setter 25622 * @param {number} [newLoglevel] - The new loglevel setting of the scene. `[0-3]` 25623 * @returns {number} `get` - Current loglevel. 25624 * @returns {Scene} `set` - Parent object for chaining. 25625 */ 25626 25627 /** 25628 * **Get** the associated controller. 25629 * @method ScrollMagic.Scene#controller 25630 * @example 25631 * // get the controller of a scene 25632 * var controller = scene.controller(); 25633 * 25634 * @returns {ScrollMagic.Controller} Parent controller or `undefined` 25635 */ 25636 this.controller = function () { 25637 return _controller; 25638 }; 25639 25640 /** 25641 * **Get** the current state. 25642 * @method ScrollMagic.Scene#state 25643 * @example 25644 * // get the current state 25645 * var state = scene.state(); 25646 * 25647 * @returns {string} `"BEFORE"`, `"DURING"` or `"AFTER"` 25648 */ 25649 this.state = function () { 25650 return _state; 25651 }; 25652 25653 /** 25654 * **Get** the current scroll offset for the start of the scene. 25655 * Mind, that the scrollOffset is related to the size of the container, if `triggerHook` is bigger than `0` (or `"onLeave"`). 25656 * This means, that resizing the container or changing the `triggerHook` will influence the scene's start offset. 25657 * @method ScrollMagic.Scene#scrollOffset 25658 * @example 25659 * // get the current scroll offset for the start and end of the scene. 25660 * var start = scene.scrollOffset(); 25661 * var end = scene.scrollOffset() + scene.duration(); 25662 * console.log("the scene starts at", start, "and ends at", end); 25663 * 25664 * @returns {number} The scroll offset (of the container) at which the scene will trigger. Y value for vertical and X value for horizontal scrolls. 25665 */ 25666 this.scrollOffset = function () { 25667 return _scrollOffset.start; 25668 }; 25669 25670 /** 25671 * **Get** the trigger position of the scene (including the value of the `offset` option). 25672 * @method ScrollMagic.Scene#triggerPosition 25673 * @example 25674 * // get the scene's trigger position 25675 * var triggerPosition = scene.triggerPosition(); 25676 * 25677 * @returns {number} Start position of the scene. Top position value for vertical and left position value for horizontal scrolls. 25678 */ 25679 this.triggerPosition = function () { 25680 var pos = _options.offset; // the offset is the basis 25681 if (_controller) { 25682 // get the trigger position 25683 if (_options.triggerElement) { 25684 // Element as trigger 25685 pos += _triggerPos; 25686 } else { 25687 // return the height of the triggerHook to start at the beginning 25688 pos += _controller.info("size") * Scene.triggerHook(); 25689 } 25690 } 25691 return pos; 25692 }; 25693 25694 var 25695 _pin, _pinOptions; 25696 25697 Scene.on("shift.internal", function (e) { 25698 var durationChanged = e.reason === "duration"; 25699 if ((_state === SCENE_STATE_AFTER && durationChanged) || (_state === SCENE_STATE_DURING && _options.duration === 0)) { 25700 // if [duration changed after a scene (inside scene progress updates pin position)] or [duration is 0, we are in pin phase and some other value changed]. 25701 updatePinState(); 25702 } 25703 if (durationChanged) { 25704 updatePinDimensions(); 25705 } 25706 }).on("progress.internal", function (e) { 25707 updatePinState(); 25708 }).on("add.internal", function (e) { 25709 updatePinDimensions(); 25710 }).on("destroy.internal", function (e) { 25711 Scene.removePin(e.reset); 25712 }); 25713 /** 25714 * Update the pin state. 25715 * @private 25716 */ 25717 var updatePinState = function (forceUnpin) { 25718 if (_pin && _controller) { 25719 var 25720 containerInfo = _controller.info(), 25721 pinTarget = _pinOptions.spacer.firstChild; // may be pin element or another spacer, if cascading pins 25722 if (!forceUnpin && _state === SCENE_STATE_DURING) { // during scene or if duration is 0 and we are past the trigger 25723 // pinned state 25724 if (_util.css(pinTarget, "position") != "fixed") { 25725 // change state before updating pin spacer (position changes due to fixed collapsing might occur.) 25726 _util.css(pinTarget, { 25727 "position": "fixed" 25728 }); 25729 // update pin spacer 25730 updatePinDimensions(); 25731 } 25732 25733 var 25734 fixedPos = _util.get.offset(_pinOptions.spacer, true), 25735 // get viewport position of spacer 25736 scrollDistance = _options.reverse || _options.duration === 0 ? containerInfo.scrollPos - _scrollOffset.start // quicker 25737 : Math.round(_progress * _options.duration * 10) / 10; // if no reverse and during pin the position needs to be recalculated using the progress 25738 // add scrollDistance 25739 fixedPos[containerInfo.vertical ? "top" : "left"] += scrollDistance; 25740 25741 // set new values 25742 _util.css(_pinOptions.spacer.firstChild, { 25743 top: fixedPos.top, 25744 left: fixedPos.left 25745 }); 25746 } else { 25747 // unpinned state 25748 var 25749 newCSS = { 25750 position: _pinOptions.inFlow ? "relative" : "absolute", 25751 top: 0, 25752 left: 0 25753 }, 25754 change = _util.css(pinTarget, "position") != newCSS.position; 25755 25756 if (!_pinOptions.pushFollowers) { 25757 newCSS[containerInfo.vertical ? "top" : "left"] = _options.duration * _progress; 25758 } else if (_options.duration > 0) { // only concerns scenes with duration 25759 if (_state === SCENE_STATE_AFTER && parseFloat(_util.css(_pinOptions.spacer, "padding-top")) === 0) { 25760 change = true; // if in after state but havent updated spacer yet (jumped past pin) 25761 } else if (_state === SCENE_STATE_BEFORE && parseFloat(_util.css(_pinOptions.spacer, "padding-bottom")) === 0) { // before 25762 change = true; // jumped past fixed state upward direction 25763 } 25764 } 25765 // set new values 25766 _util.css(pinTarget, newCSS); 25767 if (change) { 25768 // update pin spacer if state changed 25769 updatePinDimensions(); 25770 } 25771 } 25772 } 25773 }; 25774 25775 /** 25776 * Update the pin spacer and/or element size. 25777 * The size of the spacer needs to be updated whenever the duration of the scene changes, if it is to push down following elements. 25778 * @private 25779 */ 25780 var updatePinDimensions = function () { 25781 if (_pin && _controller && _pinOptions.inFlow) { // no spacerresize, if original position is absolute 25782 var 25783 after = (_state === SCENE_STATE_AFTER), 25784 before = (_state === SCENE_STATE_BEFORE), 25785 during = (_state === SCENE_STATE_DURING), 25786 vertical = _controller.info("vertical"), 25787 pinTarget = _pinOptions.spacer.firstChild, 25788 // usually the pined element but can also be another spacer (cascaded pins) 25789 marginCollapse = _util.isMarginCollapseType(_util.css(_pinOptions.spacer, "display")), 25790 css = {}; 25791 25792 // set new size 25793 // if relsize: spacer -> pin | else: pin -> spacer 25794 if (_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) { 25795 if (during) { 25796 _util.css(_pin, { 25797 "width": _util.get.width(_pinOptions.spacer) 25798 }); 25799 } else { 25800 _util.css(_pin, { 25801 "width": "100%" 25802 }); 25803 } 25804 } else { 25805 // minwidth is needed for cascaded pins. 25806 css["min-width"] = _util.get.width(vertical ? _pin : pinTarget, true, true); 25807 css.width = during ? css["min-width"] : "auto"; 25808 } 25809 if (_pinOptions.relSize.height) { 25810 if (during) { 25811 // the only padding the spacer should ever include is the duration (if pushFollowers = true), so we need to substract that. 25812 _util.css(_pin, { 25813 "height": _util.get.height(_pinOptions.spacer) - (_pinOptions.pushFollowers ? _options.duration : 0) 25814 }); 25815 } else { 25816 _util.css(_pin, { 25817 "height": "100%" 25818 }); 25819 } 25820 } else { 25821 // margin is only included if it's a cascaded pin to resolve an IE9 bug 25822 css["min-height"] = _util.get.height(vertical ? pinTarget : _pin, true, !marginCollapse); // needed for cascading pins 25823 css.height = during ? css["min-height"] : "auto"; 25824 } 25825 25826 // add space for duration if pushFollowers is true 25827 if (_pinOptions.pushFollowers) { 25828 css["padding" + (vertical ? "Top" : "Left")] = _options.duration * _progress; 25829 css["padding" + (vertical ? "Bottom" : "Right")] = _options.duration * (1 - _progress); 25830 } 25831 _util.css(_pinOptions.spacer, css); 25832 } 25833 }; 25834 25835 /** 25836 * Updates the Pin state (in certain scenarios) 25837 * If the controller container is not the document and we are mid-pin-phase scrolling or resizing the main document can result to wrong pin positions. 25838 * So this function is called on resize and scroll of the document. 25839 * @private 25840 */ 25841 var updatePinInContainer = function () { 25842 if (_controller && _pin && _state === SCENE_STATE_DURING && !_controller.info("isDocument")) { 25843 updatePinState(); 25844 } 25845 }; 25846 25847 /** 25848 * Updates the Pin spacer size state (in certain scenarios) 25849 * If container is resized during pin and relatively sized the size of the pin might need to be updated... 25850 * So this function is called on resize of the container. 25851 * @private 25852 */ 25853 var updateRelativePinSpacer = function () { 25854 if (_controller && _pin && // well, duh 25855 _state === SCENE_STATE_DURING && // element in pinned state? 25856 ( // is width or height relatively sized, but not in relation to body? then we need to recalc. 25857 ((_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) && _util.get.width(window) != _util.get.width(_pinOptions.spacer.parentNode)) || (_pinOptions.relSize.height && _util.get.height(window) != _util.get.height(_pinOptions.spacer.parentNode)))) { 25858 updatePinDimensions(); 25859 } 25860 }; 25861 25862 /** 25863 * Is called, when the mousewhel is used while over a pinned element inside a div container. 25864 * If the scene is in fixed state scroll events would be counted towards the body. This forwards the event to the scroll container. 25865 * @private 25866 */ 25867 var onMousewheelOverPin = function (e) { 25868 if (_controller && _pin && _state === SCENE_STATE_DURING && !_controller.info("isDocument")) { // in pin state 25869 e.preventDefault(); 25870 _controller._setScrollPos(_controller.info("scrollPos") - ((e.wheelDelta || e[_controller.info("vertical") ? "wheelDeltaY" : "wheelDeltaX"]) / 3 || -e.detail * 30)); 25871 } 25872 }; 25873 25874 /** 25875 * Pin an element for the duration of the tween. 25876 * If the scene duration is 0 the element will only be unpinned, if the user scrolls back past the start position. 25877 * Make sure only one pin is applied to an element at the same time. 25878 * An element can be pinned multiple times, but only successively. 25879 * _**NOTE:** The option `pushFollowers` has no effect, when the scene duration is 0._ 25880 * @method ScrollMagic.Scene#setPin 25881 * @example 25882 * // pin element and push all following elements down by the amount of the pin duration. 25883 * scene.setPin("#pin"); 25884 * 25885 * // pin element and keeping all following elements in their place. The pinned element will move past them. 25886 * scene.setPin("#pin", {pushFollowers: false}); 25887 * 25888 * @param {(string|object)} element - A Selector targeting an element or a DOM object that is supposed to be pinned. 25889 * @param {object} [settings] - settings for the pin 25890 * @param {boolean} [settings.pushFollowers=true] - If `true` following elements will be "pushed" down for the duration of the pin, if `false` the pinned element will just scroll past them. 25891 Ignored, when duration is `0`. 25892 * @param {string} [settings.spacerClass="scrollmagic-pin-spacer"] - Classname of the pin spacer element, which is used to replace the element. 25893 * 25894 * @returns {Scene} Parent object for chaining. 25895 */ 25896 this.setPin = function (element, settings) { 25897 var 25898 defaultSettings = { 25899 pushFollowers: true, 25900 spacerClass: "scrollmagic-pin-spacer" 25901 }; 25902 settings = _util.extend({}, defaultSettings, settings); 25903 25904 // validate Element 25905 element = _util.get.elements(element)[0]; 25906 if (!element) { 25907 log(1, "ERROR calling method 'setPin()': Invalid pin element supplied."); 25908 return Scene; // cancel 25909 } else if (_util.css(element, "position") === "fixed") { 25910 log(1, "ERROR calling method 'setPin()': Pin does not work with elements that are positioned 'fixed'."); 25911 return Scene; // cancel 25912 } 25913 25914 if (_pin) { // preexisting pin? 25915 if (_pin === element) { 25916 // same pin we already have -> do nothing 25917 return Scene; // cancel 25918 } else { 25919 // kill old pin 25920 Scene.removePin(); 25921 } 25922 25923 } 25924 _pin = element; 25925 25926 var 25927 parentDisplay = _pin.parentNode.style.display, 25928 boundsParams = ["top", "left", "bottom", "right", "margin", "marginLeft", "marginRight", "marginTop", "marginBottom"]; 25929 25930 _pin.parentNode.style.display = 'none'; // hack start to force css to return stylesheet values instead of calculated px values. 25931 var 25932 inFlow = _util.css(_pin, "position") != "absolute", 25933 pinCSS = _util.css(_pin, boundsParams.concat(["display"])), 25934 sizeCSS = _util.css(_pin, ["width", "height"]); 25935 _pin.parentNode.style.display = parentDisplay; // hack end. 25936 if (!inFlow && settings.pushFollowers) { 25937 log(2, "WARNING: If the pinned element is positioned absolutely pushFollowers will be disabled."); 25938 settings.pushFollowers = false; 25939 } 25940 window.setTimeout(function () { // wait until all finished, because with responsive duration it will only be set after scene is added to controller 25941 if (_pin && _options.duration === 0 && settings.pushFollowers) { 25942 log(2, "WARNING: pushFollowers =", true, "has no effect, when scene duration is 0."); 25943 } 25944 }, 0); 25945 25946 // create spacer and insert 25947 var 25948 spacer = _pin.parentNode.insertBefore(document.createElement('div'), _pin), 25949 spacerCSS = _util.extend(pinCSS, { 25950 position: inFlow ? "relative" : "absolute", 25951 boxSizing: "content-box", 25952 mozBoxSizing: "content-box", 25953 webkitBoxSizing: "content-box" 25954 }); 25955 25956 if (!inFlow) { // copy size if positioned absolutely, to work for bottom/right positioned elements. 25957 _util.extend(spacerCSS, _util.css(_pin, ["width", "height"])); 25958 } 25959 25960 _util.css(spacer, spacerCSS); 25961 spacer.setAttribute(PIN_SPACER_ATTRIBUTE, ""); 25962 _util.addClass(spacer, settings.spacerClass); 25963 25964 // set the pin Options 25965 _pinOptions = { 25966 spacer: spacer, 25967 relSize: { // save if size is defined using % values. if so, handle spacer resize differently... 25968 width: sizeCSS.width.slice(-1) === "%", 25969 height: sizeCSS.height.slice(-1) === "%", 25970 autoFullWidth: sizeCSS.width === "auto" && inFlow && _util.isMarginCollapseType(pinCSS.display) 25971 }, 25972 pushFollowers: settings.pushFollowers, 25973 inFlow: inFlow, 25974 // stores if the element takes up space in the document flow 25975 }; 25976 25977 if (!_pin.___origStyle) { 25978 _pin.___origStyle = {}; 25979 var 25980 pinInlineCSS = _pin.style, 25981 copyStyles = boundsParams.concat(["width", "height", "position", "boxSizing", "mozBoxSizing", "webkitBoxSizing"]); 25982 copyStyles.forEach(function (val) { 25983 _pin.___origStyle[val] = pinInlineCSS[val] || ""; 25984 }); 25985 } 25986 25987 // if relative size, transfer it to spacer and make pin calculate it... 25988 if (_pinOptions.relSize.width) { 25989 _util.css(spacer, { 25990 width: sizeCSS.width 25991 }); 25992 } 25993 if (_pinOptions.relSize.height) { 25994 _util.css(spacer, { 25995 height: sizeCSS.height 25996 }); 25997 } 25998 25999 // now place the pin element inside the spacer 26000 spacer.appendChild(_pin); 26001 // and set new css 26002 _util.css(_pin, { 26003 position: inFlow ? "relative" : "absolute", 26004 margin: "auto", 26005 top: "auto", 26006 left: "auto", 26007 bottom: "auto", 26008 right: "auto" 26009 }); 26010 26011 if (_pinOptions.relSize.width || _pinOptions.relSize.autoFullWidth) { 26012 _util.css(_pin, { 26013 boxSizing: "border-box", 26014 mozBoxSizing: "border-box", 26015 webkitBoxSizing: "border-box" 26016 }); 26017 } 26018 26019 // add listener to document to update pin position in case controller is not the document. 26020 window.addEventListener('scroll', updatePinInContainer); 26021 window.addEventListener('resize', updatePinInContainer); 26022 window.addEventListener('resize', updateRelativePinSpacer); 26023 // add mousewheel listener to catch scrolls over fixed elements 26024 _pin.addEventListener("mousewheel", onMousewheelOverPin); 26025 _pin.addEventListener("DOMMouseScroll", onMousewheelOverPin); 26026 26027 log(3, "added pin"); 26028 26029 // finally update the pin to init 26030 updatePinState(); 26031 26032 return Scene; 26033 }; 26034 26035 /** 26036 * Remove the pin from the scene. 26037 * @method ScrollMagic.Scene#removePin 26038 * @example 26039 * // remove the pin from the scene without resetting it (the spacer is not removed) 26040 * scene.removePin(); 26041 * 26042 * // remove the pin from the scene and reset the pin element to its initial position (spacer is removed) 26043 * scene.removePin(true); 26044 * 26045 * @param {boolean} [reset=false] - If `false` the spacer will not be removed and the element's position will not be reset. 26046 * @returns {Scene} Parent object for chaining. 26047 */ 26048 this.removePin = function (reset) { 26049 if (_pin) { 26050 if (_state === SCENE_STATE_DURING) { 26051 updatePinState(true); // force unpin at position 26052 } 26053 if (reset || !_controller) { // if there's no controller no progress was made anyway... 26054 var pinTarget = _pinOptions.spacer.firstChild; // usually the pin element, but may be another spacer (cascaded pins)... 26055 if (pinTarget.hasAttribute(PIN_SPACER_ATTRIBUTE)) { // copy margins to child spacer 26056 var 26057 style = _pinOptions.spacer.style, 26058 values = ["margin", "marginLeft", "marginRight", "marginTop", "marginBottom"], 26059 margins = {}; 26060 values.forEach(function (val) { 26061 margins[val] = style[val] || ""; 26062 }); 26063 _util.css(pinTarget, margins); 26064 } 26065 _pinOptions.spacer.parentNode.insertBefore(pinTarget, _pinOptions.spacer); 26066 _pinOptions.spacer.parentNode.removeChild(_pinOptions.spacer); 26067 if (!_pin.parentNode.hasAttribute(PIN_SPACER_ATTRIBUTE)) { // if it's the last pin for this element -> restore inline styles 26068 // TODO: only correctly set for first pin (when cascading) - how to fix? 26069 _util.css(_pin, _pin.___origStyle); 26070 delete _pin.___origStyle; 26071 } 26072 } 26073 window.removeEventListener('scroll', updatePinInContainer); 26074 window.removeEventListener('resize', updatePinInContainer); 26075 window.removeEventListener('resize', updateRelativePinSpacer); 26076 _pin.removeEventListener("mousewheel", onMousewheelOverPin); 26077 _pin.removeEventListener("DOMMouseScroll", onMousewheelOverPin); 26078 _pin = undefined; 26079 log(3, "removed pin (reset: " + (reset ? "true" : "false") + ")"); 26080 } 26081 return Scene; 26082 }; 26083 26084 26085 var 26086 _cssClasses, _cssClassElems = []; 26087 26088 Scene.on("destroy.internal", function (e) { 26089 Scene.removeClassToggle(e.reset); 26090 }); 26091 /** 26092 * Define a css class modification while the scene is active. 26093 * When the scene triggers the classes will be added to the supplied element and removed, when the scene is over. 26094 * If the scene duration is 0 the classes will only be removed if the user scrolls back past the start position. 26095 * @method ScrollMagic.Scene#setClassToggle 26096 * @example 26097 * // add the class 'myclass' to the element with the id 'my-elem' for the duration of the scene 26098 * scene.setClassToggle("#my-elem", "myclass"); 26099 * 26100 * // add multiple classes to multiple elements defined by the selector '.classChange' 26101 * scene.setClassToggle(".classChange", "class1 class2 class3"); 26102 * 26103 * @param {(string|object)} element - A Selector targeting one or more elements or a DOM object that is supposed to be modified. 26104 * @param {string} classes - One or more Classnames (separated by space) that should be added to the element during the scene. 26105 * 26106 * @returns {Scene} Parent object for chaining. 26107 */ 26108 this.setClassToggle = function (element, classes) { 26109 var elems = _util.get.elements(element); 26110 if (elems.length === 0 || !_util.type.String(classes)) { 26111 log(1, "ERROR calling method 'setClassToggle()': Invalid " + (elems.length === 0 ? "element" : "classes") + " supplied."); 26112 return Scene; 26113 } 26114 if (_cssClassElems.length > 0) { 26115 // remove old ones 26116 Scene.removeClassToggle(); 26117 } 26118 _cssClasses = classes; 26119 _cssClassElems = elems; 26120 Scene.on("enter.internal_class leave.internal_class", function (e) { 26121 var toggle = e.type === "enter" ? _util.addClass : _util.removeClass; 26122 _cssClassElems.forEach(function (elem, key) { 26123 toggle(elem, _cssClasses); 26124 }); 26125 }); 26126 return Scene; 26127 }; 26128 26129 /** 26130 * Remove the class binding from the scene. 26131 * @method ScrollMagic.Scene#removeClassToggle 26132 * @example 26133 * // remove class binding from the scene without reset 26134 * scene.removeClassToggle(); 26135 * 26136 * // remove class binding and remove the changes it caused 26137 * scene.removeClassToggle(true); 26138 * 26139 * @param {boolean} [reset=false] - If `false` and the classes are currently active, they will remain on the element. If `true` they will be removed. 26140 * @returns {Scene} Parent object for chaining. 26141 */ 26142 this.removeClassToggle = function (reset) { 26143 if (reset) { 26144 _cssClassElems.forEach(function (elem, key) { 26145 _util.removeClass(elem, _cssClasses); 26146 }); 26147 } 26148 Scene.off("start.internal_class end.internal_class"); 26149 _cssClasses = undefined; 26150 _cssClassElems = []; 26151 return Scene; 26152 }; 26153 26154 // INIT 26155 construct(); 26156 return Scene; 26157 }; 26158 26159 // store pagewide scene options 26160 var SCENE_OPTIONS = { 26161 defaults: { 26162 duration: 0, 26163 offset: 0, 26164 triggerElement: undefined, 26165 triggerHook: 0.5, 26166 reverse: true, 26167 loglevel: 2 26168 }, 26169 validate: { 26170 offset: function (val) { 26171 val = parseFloat(val); 26172 if (!_util.type.Number(val)) { 26173 throw ["Invalid value for option \"offset\":", val]; 26174 } 26175 return val; 26176 }, 26177 triggerElement: function (val) { 26178 val = val || undefined; 26179 if (val) { 26180 var elem = _util.get.elements(val)[0]; 26181 if (elem && elem.parentNode) { 26182 val = elem; 26183 } else { 26184 throw ["Element defined in option \"triggerElement\" was not found:", val]; 26185 } 26186 } 26187 return val; 26188 }, 26189 triggerHook: function (val) { 26190 var translate = { 26191 "onCenter": 0.5, 26192 "onEnter": 1, 26193 "onLeave": 0 26194 }; 26195 if (_util.type.Number(val)) { 26196 val = Math.max(0, Math.min(parseFloat(val), 1)); // make sure its betweeen 0 and 1 26197 } else if (val in translate) { 26198 val = translate[val]; 26199 } else { 26200 throw ["Invalid value for option \"triggerHook\": ", val]; 26201 } 26202 return val; 26203 }, 26204 reverse: function (val) { 26205 return !!val; // force boolean 26206 }, 26207 loglevel: function (val) { 26208 val = parseInt(val); 26209 if (!_util.type.Number(val) || val < 0 || val > 3) { 26210 throw ["Invalid value for option \"loglevel\":", val]; 26211 } 26212 return val; 26213 } 26214 }, 26215 // holder for validation methods. duration validation is handled in 'getters-setters.js' 26216 shifts: ["duration", "offset", "triggerHook"], 26217 // list of options that trigger a `shift` event 26218 }; 26219/* 26220 * method used to add an option to ScrollMagic Scenes. 26221 * TODO: DOC (private for dev) 26222 */ 26223 ScrollMagic.Scene.addOption = function (name, defaultValue, validationCallback, shifts) { 26224 if (!(name in SCENE_OPTIONS.defaults)) { 26225 SCENE_OPTIONS.defaults[name] = defaultValue; 26226 SCENE_OPTIONS.validate[name] = validationCallback; 26227 if (shifts) { 26228 SCENE_OPTIONS.shifts.push(name); 26229 } 26230 } else { 26231 ScrollMagic._util.log(1, "[static] ScrollMagic.Scene -> Cannot add Scene option '" + name + "', because it already exists."); 26232 } 26233 }; 26234 // instance extension function for plugins 26235 // TODO: DOC (private for dev) 26236 ScrollMagic.Scene.extend = function (extension) { 26237 var oldClass = this; 26238 ScrollMagic.Scene = function () { 26239 oldClass.apply(this, arguments); 26240 this.$super = _util.extend({}, this); // copy parent state 26241 return extension.apply(this, arguments) || this; 26242 }; 26243 _util.extend(ScrollMagic.Scene, oldClass); // copy properties 26244 ScrollMagic.Scene.prototype = oldClass.prototype; // copy prototype 26245 ScrollMagic.Scene.prototype.constructor = ScrollMagic.Scene; // restore constructor 26246 }; 26247 26248 26249 26250 /** 26251 * TODO: DOCS (private for dev) 26252 * @class 26253 * @private 26254 */ 26255 26256 ScrollMagic.Event = function (type, namespace, target, vars) { 26257 vars = vars || {}; 26258 for (var key in vars) { 26259 this[key] = vars[key]; 26260 } 26261 this.type = type; 26262 this.target = this.currentTarget = target; 26263 this.namespace = namespace || ''; 26264 this.timeStamp = this.timestamp = Date.now(); 26265 return this; 26266 }; 26267 26268/* 26269 * TODO: DOCS (private for dev) 26270 */ 26271 26272 var _util = ScrollMagic._util = (function (window) { 26273 var U = {}, 26274 i; 26275 26276 /** 26277 * ------------------------------ 26278 * internal helpers 26279 * ------------------------------ 26280 */ 26281 26282 // parse float and fall back to 0. 26283 var floatval = function (number) { 26284 return parseFloat(number) || 0; 26285 }; 26286 // get current style IE safe (otherwise IE would return calculated values for 'auto') 26287 var _getComputedStyle = function (elem) { 26288 return elem.currentStyle ? elem.currentStyle : window.getComputedStyle(elem); 26289 }; 26290 26291 // get element dimension (width or height) 26292 var _dimension = function (which, elem, outer, includeMargin) { 26293 elem = (elem === document) ? window : elem; 26294 if (elem === window) { 26295 includeMargin = false; 26296 } else if (!_type.DomElement(elem)) { 26297 return 0; 26298 } 26299 which = which.charAt(0).toUpperCase() + which.substr(1).toLowerCase(); 26300 var dimension = (outer ? elem['offset' + which] || elem['outer' + which] : elem['client' + which] || elem['inner' + which]) || 0; 26301 if (outer && includeMargin) { 26302 var style = _getComputedStyle(elem); 26303 dimension += which === 'Height' ? floatval(style.marginTop) + floatval(style.marginBottom) : floatval(style.marginLeft) + floatval(style.marginRight); 26304 } 26305 return dimension; 26306 }; 26307 // converts 'margin-top' into 'marginTop' 26308 var _camelCase = function (str) { 26309 return str.replace(/^[^a-z]+([a-z])/g, '$1').replace(/-([a-z])/g, function (g) { 26310 return g[1].toUpperCase(); 26311 }); 26312 }; 26313 26314 /** 26315 * ------------------------------ 26316 * external helpers 26317 * ------------------------------ 26318 */ 26319 26320 // extend obj – same as jQuery.extend({}, objA, objB) 26321 U.extend = function (obj) { 26322 obj = obj || {}; 26323 for (i = 1; i < arguments.length; i++) { 26324 if (!arguments[i]) { 26325 continue; 26326 } 26327 for (var key in arguments[i]) { 26328 if (arguments[i].hasOwnProperty(key)) { 26329 obj[key] = arguments[i][key]; 26330 } 26331 } 26332 } 26333 return obj; 26334 }; 26335 26336 // check if a css display type results in margin-collapse or not 26337 U.isMarginCollapseType = function (str) { 26338 return ["block", "flex", "list-item", "table", "-webkit-box"].indexOf(str) > -1; 26339 }; 26340 26341 // implementation of requestAnimationFrame 26342 // based on https://gist.github.com/paulirish/1579671 26343 var 26344 lastTime = 0, 26345 vendors = ['ms', 'moz', 'webkit', 'o']; 26346 var _requestAnimationFrame = window.requestAnimationFrame; 26347 var _cancelAnimationFrame = window.cancelAnimationFrame; 26348 // try vendor prefixes if the above doesn't work 26349 for (i = 0; !_requestAnimationFrame && i < vendors.length; ++i) { 26350 _requestAnimationFrame = window[vendors[i] + 'RequestAnimationFrame']; 26351 _cancelAnimationFrame = window[vendors[i] + 'CancelAnimationFrame'] || window[vendors[i] + 'CancelRequestAnimationFrame']; 26352 } 26353 26354 // fallbacks 26355 if (!_requestAnimationFrame) { 26356 _requestAnimationFrame = function (callback) { 26357 var 26358 currTime = new Date().getTime(), 26359 timeToCall = Math.max(0, 16 - (currTime - lastTime)), 26360 id = window.setTimeout(function () { 26361 callback(currTime + timeToCall); 26362 }, timeToCall); 26363 lastTime = currTime + timeToCall; 26364 return id; 26365 }; 26366 } 26367 if (!_cancelAnimationFrame) { 26368 _cancelAnimationFrame = function (id) { 26369 window.clearTimeout(id); 26370 }; 26371 } 26372 U.rAF = _requestAnimationFrame.bind(window); 26373 U.cAF = _cancelAnimationFrame.bind(window); 26374 26375 var 26376 loglevels = ["error", "warn", "log"], 26377 console = window.console || {}; 26378 26379 console.log = console.log || 26380 function () {}; // no console log, well - do nothing then... 26381 // make sure methods for all levels exist. 26382 for (i = 0; i < loglevels.length; i++) { 26383 var method = loglevels[i]; 26384 if (!console[method]) { 26385 console[method] = console.log; // prefer .log over nothing 26386 } 26387 } 26388 U.log = function (loglevel) { 26389 if (loglevel > loglevels.length || loglevel <= 0) loglevel = loglevels.length; 26390 var now = new Date(), 26391 time = ("0" + now.getHours()).slice(-2) + ":" + ("0" + now.getMinutes()).slice(-2) + ":" + ("0" + now.getSeconds()).slice(-2) + ":" + ("00" + now.getMilliseconds()).slice(-3), 26392 method = loglevels[loglevel - 1], 26393 args = Array.prototype.splice.call(arguments, 1), 26394 func = Function.prototype.bind.call(console[method], console); 26395 args.unshift(time); 26396 func.apply(console, args); 26397 }; 26398 26399 /** 26400 * ------------------------------ 26401 * type testing 26402 * ------------------------------ 26403 */ 26404 26405 var _type = U.type = function (v) { 26406 return Object.prototype.toString.call(v).replace(/^\[object (.+)\]$/, "$1").toLowerCase(); 26407 }; 26408 _type.String = function (v) { 26409 return _type(v) === 'string'; 26410 }; 26411 _type.Function = function (v) { 26412 return _type(v) === 'function'; 26413 }; 26414 _type.Array = function (v) { 26415 return Array.isArray(v); 26416 }; 26417 _type.Number = function (v) { 26418 return !_type.Array(v) && (v - parseFloat(v) + 1) >= 0; 26419 }; 26420 _type.DomElement = function (o) { 26421 return ( 26422 typeof HTMLElement === "object" ? o instanceof HTMLElement : //DOM2 26423 o && typeof o === "object" && o !== null && o.nodeType === 1 && typeof o.nodeName === "string"); 26424 }; 26425 26426 /** 26427 * ------------------------------ 26428 * DOM Element info 26429 * ------------------------------ 26430 */ 26431 // always returns a list of matching DOM elements, from a selector, a DOM element or an list of elements or even an array of selectors 26432 var _get = U.get = {}; 26433 _get.elements = function (selector) { 26434 var arr = []; 26435 if (_type.String(selector)) { 26436 try { 26437 selector = document.querySelectorAll(selector); 26438 } catch (e) { // invalid selector 26439 return arr; 26440 } 26441 } 26442 if (_type(selector) === 'nodelist' || _type.Array(selector)) { 26443 for (var i = 0, ref = arr.length = selector.length; i < ref; i++) { // list of elements 26444 var elem = selector[i]; 26445 arr[i] = _type.DomElement(elem) ? elem : _get.elements(elem); // if not an element, try to resolve recursively 26446 } 26447 } else if (_type.DomElement(selector) || selector === document || selector === window) { 26448 arr = [selector]; // only the element 26449 } 26450 return arr; 26451 }; 26452 // get scroll top value 26453 _get.scrollTop = function (elem) { 26454 return (elem && typeof elem.scrollTop === 'number') ? elem.scrollTop : window.pageYOffset || 0; 26455 }; 26456 // get scroll left value 26457 _get.scrollLeft = function (elem) { 26458 return (elem && typeof elem.scrollLeft === 'number') ? elem.scrollLeft : window.pageXOffset || 0; 26459 }; 26460 // get element height 26461 _get.width = function (elem, outer, includeMargin) { 26462 return _dimension('width', elem, outer, includeMargin); 26463 }; 26464 // get element width 26465 _get.height = function (elem, outer, includeMargin) { 26466 return _dimension('height', elem, outer, includeMargin); 26467 }; 26468 26469 // get element position (optionally relative to viewport) 26470 _get.offset = function (elem, relativeToViewport) { 26471 var offset = { 26472 top: 0, 26473 left: 0 26474 }; 26475 if (elem && elem.getBoundingClientRect) { // check if available 26476 var rect = elem.getBoundingClientRect(); 26477 offset.top = rect.top; 26478 offset.left = rect.left; 26479 if (!relativeToViewport) { // clientRect is by default relative to viewport... 26480 offset.top += _get.scrollTop(); 26481 offset.left += _get.scrollLeft(); 26482 } 26483 } 26484 return offset; 26485 }; 26486 26487 /** 26488 * ------------------------------ 26489 * DOM Element manipulation 26490 * ------------------------------ 26491 */ 26492 26493 U.addClass = function (elem, classname) { 26494 if (classname) { 26495 if (elem.classList) elem.classList.add(classname); 26496 else elem.className += ' ' + classname; 26497 } 26498 }; 26499 U.removeClass = function (elem, classname) { 26500 if (classname) { 26501 if (elem.classList) elem.classList.remove(classname); 26502 else elem.className = elem.className.replace(new RegExp('(^|\\b)' + classname.split(' ').join('|') + '(\\b|$)', 'gi'), ' '); 26503 } 26504 }; 26505 // if options is string -> returns css value 26506 // if options is array -> returns object with css value pairs 26507 // if options is object -> set new css values 26508 U.css = function (elem, options) { 26509 if (_type.String(options)) { 26510 return _getComputedStyle(elem)[_camelCase(options)]; 26511 } else if (_type.Array(options)) { 26512 var 26513 obj = {}, 26514 style = _getComputedStyle(elem); 26515 options.forEach(function (option, key) { 26516 obj[option] = style[_camelCase(option)]; 26517 }); 26518 return obj; 26519 } else { 26520 for (var option in options) { 26521 var val = options[option]; 26522 if (val == parseFloat(val)) { // assume pixel for seemingly numerical values 26523 val += 'px'; 26524 } 26525 elem.style[_camelCase(option)] = val; 26526 } 26527 } 26528 }; 26529 26530 return U; 26531 }(window || {})); 26532 26533 ScrollMagic.Scene.prototype.addIndicators = function () { 26534 ScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling addIndicators() due to missing Plugin \'debug.addIndicators\'. Please make sure to include plugins/debug.addIndicators.js'); 26535 return this; 26536 } 26537 ScrollMagic.Scene.prototype.removeIndicators = function () { 26538 ScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling removeIndicators() due to missing Plugin \'debug.addIndicators\'. Please make sure to include plugins/debug.addIndicators.js'); 26539 return this; 26540 } 26541 ScrollMagic.Scene.prototype.setTween = function () { 26542 ScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling setTween() due to missing Plugin \'animation.gsap\'. Please make sure to include plugins/animation.gsap.js'); 26543 return this; 26544 } 26545 ScrollMagic.Scene.prototype.removeTween = function () { 26546 ScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling removeTween() due to missing Plugin \'animation.gsap\'. Please make sure to include plugins/animation.gsap.js'); 26547 return this; 26548 } 26549 ScrollMagic.Scene.prototype.setVelocity = function () { 26550 ScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling setVelocity() due to missing Plugin \'animation.velocity\'. Please make sure to include plugins/animation.velocity.js'); 26551 return this; 26552 } 26553 ScrollMagic.Scene.prototype.removeVelocity = function () { 26554 ScrollMagic._util.log(1, '(ScrollMagic.Scene) -> ERROR calling removeVelocity() due to missing Plugin \'animation.velocity\'. Please make sure to include plugins/animation.velocity.js'); 26555 return this; 26556 } 26557 26558 return ScrollMagic; 26559})); 26560 26561/***/ }), 26562
vendor: 7,344 bytes, lines 26563-26576
26563/***/ "./node_modules/smooth-scroll/dist/smooth-scroll.polyfills.min.js": 26564/*!************************************************************************!*\ 26565 !*** ./node_modules/smooth-scroll/dist/smooth-scroll.polyfills.min.js ***! 26566 \************************************************************************/ 26567/*! no static exports found */ 26568/***/ (function(module, exports, __webpack_require__) { 26569 26570/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! smooth-scroll v16.1.2 | (c) 2020 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */ 26571window.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),o=this;do{for(t=n.length;0<=--t&&n.item(t)!==o;);}while(t<0&&(o=o.parentElement));return o}),(function(){if("function"==typeof window.CustomEvent)return;function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e})(),(function(){for(var r=0,e=["ms","moz","webkit","o"],t=0;t<e.length&&!window.requestAnimationFrame;++t)window.requestAnimationFrame=window[e[t]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[e[t]+"CancelAnimationFrame"]||window[e[t]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(e,t){var n=(new Date).getTime(),o=Math.max(0,16-(n-r)),a=window.setTimeout((function(){e(n+o)}),o);return r=n+o,a}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(e){clearTimeout(e)})})(),(function(e,t){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function(){return t(e)}).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 26572 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):undefined})("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,(function(q){"use strict";var I={ignore:"[data-scroll-ignore]",header:null,topOnEmptyHash:!0,speed:500,speedAsDuration:!1,durationMax:null,durationMin:null,clip:!0,offset:0,easing:"easeInOutCubic",customEasing:null,updateURL:!0,popstate:!0,emitEvents:!0},F=function(){var n={};return Array.prototype.forEach.call(arguments,(function(e){for(var t in e){if(!e.hasOwnProperty(t))return;n[t]=e[t]}})),n},r=function(e){"#"===e.charAt(0)&&(e=e.substr(1));for(var t,n=String(e),o=n.length,a=-1,r="",i=n.charCodeAt(0);++a<o;){if(0===(t=n.charCodeAt(a)))throw new InvalidCharacterError("Invalid character: the input contains U+0000.");1<=t&&t<=31||127==t||0===a&&48<=t&&t<=57||1===a&&48<=t&&t<=57&&45===i?r+="\\"+t.toString(16)+" ":r+=128<=t||45===t||95===t||48<=t&&t<=57||65<=t&&t<=90||97<=t&&t<=122?n.charAt(a):"\\"+n.charAt(a)}return"#"+r},L=function(){return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},x=function(e){return e?(t=e,parseInt(q.getComputedStyle(t).height,10)+e.offsetTop):0;var t},H=function(e,t,n,o){if(t.emitEvents&&"function"==typeof q.CustomEvent){var a=new CustomEvent(e,{bubbles:!0,detail:{anchor:n,toggle:o}});document.dispatchEvent(a)}};return function(o,e){var A,a,O,C,M={};M.cancelScroll=function(e){cancelAnimationFrame(C),C=null,e||H("scrollCancel",A)},M.animateScroll=function(i,c,e){M.cancelScroll();var s=F(A||I,e||{}),u="[object Number]"===Object.prototype.toString.call(i),t=u||!i.tagName?null:i;if(u||t){var l=q.pageYOffset;s.header&&!O&&(O=document.querySelector(s.header));var n,o,a,m,r,d,f,h,p=x(O),g=u?i:(function(e,t,n,o){var a=0;if(e.offsetParent)for(;a+=e.offsetTop,e=e.offsetParent;);return a=Math.max(a-t-n,0),o&&(a=Math.min(a,L()-q.innerHeight)),a})(t,p,parseInt("function"==typeof s.offset?s.offset(i,c):s.offset,10),s.clip),y=g-l,v=L(),w=0,S=(n=y,a=(o=s).speedAsDuration?o.speed:Math.abs(n/1e3*o.speed),o.durationMax&&a>o.durationMax?o.durationMax:o.durationMin&&a<o.durationMin?o.durationMin:parseInt(a,10)),E=function(e,t){var n,o,a,r=q.pageYOffset;if(e==t||r==t||(l<t&&q.innerHeight+r)>=v)return M.cancelScroll(!0),o=t,a=u,0===(n=i)&&document.body.focus(),a||(n.focus(),document.activeElement!==n&&(n.setAttribute("tabindex","-1"),n.focus(),n.style.outline="none"),q.scrollTo(0,o)),H("scrollStop",s,i,c),!(C=m=null)},b=function(e){var t,n,o;m||(m=e),w+=e-m,d=l+y*(n=r=1<(r=0===S?0:w/S)?1:r,"easeInQuad"===(t=s).easing&&(o=n*n),"easeOutQuad"===t.easing&&(o=n*(2-n)),"easeInOutQuad"===t.easing&&(o=n<.5?2*n*n:(4-2*n)*n-1),"easeInCubic"===t.easing&&(o=n*n*n),"easeOutCubic"===t.easing&&(o=--n*n*n+1),"easeInOutCubic"===t.easing&&(o=n<.5?4*n*n*n:(n-1)*(2*n-2)*(2*n-2)+1),"easeInQuart"===t.easing&&(o=n*n*n*n),"easeOutQuart"===t.easing&&(o=1- --n*n*n*n),"easeInOutQuart"===t.easing&&(o=n<.5?8*n*n*n*n:1-8*--n*n*n*n),"easeInQuint"===t.easing&&(o=n*n*n*n*n),"easeOutQuint"===t.easing&&(o=1+--n*n*n*n*n),"easeInOutQuint"===t.easing&&(o=n<.5?16*n*n*n*n*n:1+16*--n*n*n*n*n),t.customEasing&&(o=t.customEasing(n)),o||n),q.scrollTo(0,Math.floor(d)),E(d,g)||(C=q.requestAnimationFrame(b),m=e)};0===q.pageYOffset&&q.scrollTo(0,0),f=i,h=s,u||history.pushState&&h.updateURL&&history.pushState({smoothScroll:JSON.stringify(h),anchor:f.id},document.title,f===document.documentElement?"#top":"#"+f.id),"matchMedia"in q&&q.matchMedia("(prefers-reduced-motion)").matches?q.scrollTo(0,Math.floor(g)):(H("scrollStart",s,i,c),M.cancelScroll(!0),q.requestAnimationFrame(b))}};var t=function(e){if(!e.defaultPrevented&&!(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey)&&"closest"in e.target&&(a=e.target.closest(o))&&"a"===a.tagName.toLowerCase()&&!e.target.closest(A.ignore)&&a.hostname===q.location.hostname&&a.pathname===q.location.pathname&&/#/.test(a.href)){var t,n;try{t=r(decodeURIComponent(a.hash))}catch(e){t=r(a.hash)}if("#"===t){if(!A.topOnEmptyHash)return;n=document.documentElement}else n=document.querySelector(t);(n=n||"#top"!==t?n:document.documentElement)&&(e.preventDefault(),(function(e){if(history.replaceState&&e.updateURL&&!history.state){var t=q.location.hash;t=t||"",history.replaceState({smoothScroll:JSON.stringify(e),anchor:t||q.pageYOffset},document.title,t||q.location.href)}})(A),M.animateScroll(n,a))}},n=function(e){if(null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(A)){var t=history.state.anchor;"string"==typeof t&&t&&!(t=document.querySelector(r(history.state.anchor)))||M.animateScroll(t,null,{updateURL:!1})}};M.destroy=function(){A&&(document.removeEventListener("click",t,!1),q.removeEventListener("popstate",n,!1),M.cancelScroll(),C=O=a=A=null)};return (function(){if(!("querySelector"in document&&"addEventListener"in q&&"requestAnimationFrame"in q&&"closest"in q.Element.prototype))throw"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.";M.destroy(),A=F(I,e||{}),O=A.header?document.querySelector(A.header):null,document.addEventListener("click",t,!1),A.updateURL&&A.popstate&&q.addEventListener("popstate",n,!1)})(),M}})); 26573/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) 26574 26575/***/ }), 26576
vendor: 2,422 bytes, lines 26577-26665
26577/***/ "./node_modules/ssr-window/dist/ssr-window.esm.js": 26578/*!********************************************************!*\ 26579 !*** ./node_modules/ssr-window/dist/ssr-window.esm.js ***! 26580 \********************************************************/ 26581/*! exports provided: window, document */ 26582/***/ (function(module, __webpack_exports__, __webpack_require__) { 26583 26584"use strict"; 26585__webpack_require__.r(__webpack_exports__); 26586/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "window", function() { return win; }); 26587/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "document", function() { return doc; }); 26588/** 26589 * SSR Window 1.0.1 26590 * Better handling for window object in SSR environment 26591 * https://github.com/nolimits4web/ssr-window 26592 * 26593 * Copyright 2018, Vladimir Kharlampidi 26594 * 26595 * Licensed under MIT 26596 * 26597 * Released on: July 18, 2018 26598 */ 26599var doc = (typeof document === 'undefined') ? { 26600 body: {}, 26601 addEventListener: function addEventListener() {}, 26602 removeEventListener: function removeEventListener() {}, 26603 activeElement: { 26604 blur: function blur() {}, 26605 nodeName: '', 26606 }, 26607 querySelector: function querySelector() { 26608 return null; 26609 }, 26610 querySelectorAll: function querySelectorAll() { 26611 return []; 26612 }, 26613 getElementById: function getElementById() { 26614 return null; 26615 }, 26616 createEvent: function createEvent() { 26617 return { 26618 initEvent: function initEvent() {}, 26619 }; 26620 }, 26621 createElement: function createElement() { 26622 return { 26623 children: [], 26624 childNodes: [], 26625 style: {}, 26626 setAttribute: function setAttribute() {}, 26627 getElementsByTagName: function getElementsByTagName() { 26628 return []; 26629 }, 26630 }; 26631 }, 26632 location: { hash: '' }, 26633} : document; // eslint-disable-line 26634 26635var win = (typeof window === 'undefined') ? { 26636 document: doc, 26637 navigator: { 26638 userAgent: '', 26639 }, 26640 location: {}, 26641 history: {}, 26642 CustomEvent: function CustomEvent() { 26643 return this; 26644 }, 26645 addEventListener: function addEventListener() {}, 26646 removeEventListener: function removeEventListener() {}, 26647 getComputedStyle: function getComputedStyle() { 26648 return { 26649 getPropertyValue: function getPropertyValue() { 26650 return ''; 26651 }, 26652 }; 26653 }, 26654 Image: function Image() {}, 26655 Date: function Date() {}, 26656 screen: {}, 26657 setTimeout: function setTimeout() {}, 26658 clearTimeout: function clearTimeout() {}, 26659} : window; // eslint-disable-line 26660 26661 26662 26663 26664/***/ }), 26665
vendor: 6,525 bytes, lines 26666-26779
26666/***/ "./node_modules/svg4everybody/dist/svg4everybody.js": 26667/*!**********************************************************!*\ 26668 !*** ./node_modules/svg4everybody/dist/svg4everybody.js ***! 26669 \**********************************************************/ 26670/*! no static exports found */ 26671/***/ (function(module, exports, __webpack_require__) { 26672 26673var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!function(root, factory) { 26674 true ? // AMD. Register as an anonymous module unless amdModuleId is set 26675 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function() { 26676 return root.svg4everybody = factory(); 26677 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 26678 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : undefined; 26679}(this, function() { 26680 /*! svg4everybody v2.1.9 | github.com/jonathantneal/svg4everybody */ 26681 function embed(parent, svg, target) { 26682 // if the target exists 26683 if (target) { 26684 // create a document fragment to hold the contents of the target 26685 var fragment = document.createDocumentFragment(), viewBox = !svg.hasAttribute("viewBox") && target.getAttribute("viewBox"); 26686 // conditionally set the viewBox on the svg 26687 viewBox && svg.setAttribute("viewBox", viewBox); 26688 // copy the contents of the clone into the fragment 26689 for (// clone the target 26690 var clone = target.cloneNode(!0); clone.childNodes.length; ) { 26691 fragment.appendChild(clone.firstChild); 26692 } 26693 // append the fragment into the svg 26694 parent.appendChild(fragment); 26695 } 26696 } 26697 function loadreadystatechange(xhr) { 26698 // listen to changes in the request 26699 xhr.onreadystatechange = function() { 26700 // if the request is ready 26701 if (4 === xhr.readyState) { 26702 // get the cached html document 26703 var cachedDocument = xhr._cachedDocument; 26704 // ensure the cached html document based on the xhr response 26705 cachedDocument || (cachedDocument = xhr._cachedDocument = document.implementation.createHTMLDocument(""), 26706 cachedDocument.body.innerHTML = xhr.responseText, xhr._cachedTarget = {}), // clear the xhr embeds list and embed each item 26707 xhr._embeds.splice(0).map(function(item) { 26708 // get the cached target 26709 var target = xhr._cachedTarget[item.id]; 26710 // ensure the cached target 26711 target || (target = xhr._cachedTarget[item.id] = cachedDocument.getElementById(item.id)), 26712 // embed the target into the svg 26713 embed(item.parent, item.svg, target); 26714 }); 26715 } 26716 }, // test the ready state change immediately 26717 xhr.onreadystatechange(); 26718 } 26719 function svg4everybody(rawopts) { 26720 function oninterval() { 26721 // while the index exists in the live <use> collection 26722 for (// get the cached <use> index 26723 var index = 0; index < uses.length; ) { 26724 // get the current <use> 26725 var use = uses[index], parent = use.parentNode, svg = getSVGAncestor(parent), src = use.getAttribute("xlink:href") || use.getAttribute("href"); 26726 if (!src && opts.attributeName && (src = use.getAttribute(opts.attributeName)), 26727 svg && src) { 26728 if (polyfill) { 26729 if (!opts.validate || opts.validate(src, svg, use)) { 26730 // remove the <use> element 26731 parent.removeChild(use); 26732 // parse the src and get the url and id 26733 var srcSplit = src.split("#"), url = srcSplit.shift(), id = srcSplit.join("#"); 26734 // if the link is external 26735 if (url.length) { 26736 // get the cached xhr request 26737 var xhr = requests[url]; 26738 // ensure the xhr request exists 26739 xhr || (xhr = requests[url] = new XMLHttpRequest(), xhr.open("GET", url), xhr.send(), 26740 xhr._embeds = []), // add the svg and id as an item to the xhr embeds list 26741 xhr._embeds.push({ 26742 parent: parent, 26743 svg: svg, 26744 id: id 26745 }), // prepare the xhr ready state change event 26746 loadreadystatechange(xhr); 26747 } else { 26748 // embed the local id into the svg 26749 embed(parent, svg, document.getElementById(id)); 26750 } 26751 } else { 26752 // increase the index when the previous value was not "valid" 26753 ++index, ++numberOfSvgUseElementsToBypass; 26754 } 26755 } 26756 } else { 26757 // increase the index when the previous value was not "valid" 26758 ++index; 26759 } 26760 } 26761 // continue the interval 26762 (!uses.length || uses.length - numberOfSvgUseElementsToBypass > 0) && requestAnimationFrame(oninterval, 67); 26763 } 26764 var polyfill, opts = Object(rawopts), newerIEUA = /\bTrident\/[567]\b|\bMSIE (?:9|10)\.0\b/, webkitUA = /\bAppleWebKit\/(\d+)\b/, olderEdgeUA = /\bEdge\/12\.(\d+)\b/, edgeUA = /\bEdge\/.(\d+)\b/, inIframe = window.top !== window.self; 26765 polyfill = "polyfill" in opts ? opts.polyfill : newerIEUA.test(navigator.userAgent) || (navigator.userAgent.match(olderEdgeUA) || [])[1] < 10547 || (navigator.userAgent.match(webkitUA) || [])[1] < 537 || edgeUA.test(navigator.userAgent) && inIframe; 26766 // create xhr requests object 26767 var requests = {}, requestAnimationFrame = window.requestAnimationFrame || setTimeout, uses = document.getElementsByTagName("use"), numberOfSvgUseElementsToBypass = 0; 26768 // conditionally start the interval if the polyfill is active 26769 polyfill && oninterval(); 26770 } 26771 function getSVGAncestor(node) { 26772 for (var svg = node; "svg" !== svg.nodeName.toLowerCase() && (svg = svg.parentNode); ) {} 26773 return svg; 26774 } 26775 return svg4everybody; 26776}); 26777 26778/***/ }), 26779
vendor: 251,282 bytes, lines 26780-33927
26780/***/ "./node_modules/swiper/dist/js/swiper.esm.bundle.js": 26781/*!**********************************************************!*\ 26782 !*** ./node_modules/swiper/dist/js/swiper.esm.bundle.js ***! 26783 \**********************************************************/ 26784/*! exports provided: default */ 26785/***/ (function(module, __webpack_exports__, __webpack_require__) { 26786 26787"use strict"; 26788__webpack_require__.r(__webpack_exports__); 26789/* harmony import */ var dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dom7/dist/dom7.modular */ "./node_modules/dom7/dist/dom7.modular.js"); 26790/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/dist/ssr-window.esm.js"); 26791var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); 26792 26793var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; 26794 26795function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } 26796 26797function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } 26798 26799function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } 26800 26801/** 26802 * Swiper 4.4.6 26803 * Most modern mobile touch slider and framework with hardware accelerated transitions 26804 * http://www.idangero.us/swiper/ 26805 * 26806 * Copyright 2014-2018 Vladimir Kharlampidi 26807 * 26808 * Released under the MIT License 26809 * 26810 * Released on: December 19, 2018 26811 */ 26812 26813 26814 26815 26816var Methods = { 26817 addClass: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["addClass"], 26818 removeClass: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["removeClass"], 26819 hasClass: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["hasClass"], 26820 toggleClass: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["toggleClass"], 26821 attr: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["attr"], 26822 removeAttr: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["removeAttr"], 26823 data: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["data"], 26824 transform: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["transform"], 26825 transition: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["transition"], 26826 on: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["on"], 26827 off: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["off"], 26828 trigger: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["trigger"], 26829 transitionEnd: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["transitionEnd"], 26830 outerWidth: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["outerWidth"], 26831 outerHeight: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["outerHeight"], 26832 offset: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["offset"], 26833 css: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["css"], 26834 each: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["each"], 26835 html: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["html"], 26836 text: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["text"], 26837 is: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["is"], 26838 index: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["index"], 26839 eq: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["eq"], 26840 append: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["append"], 26841 prepend: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["prepend"], 26842 next: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["next"], 26843 nextAll: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["nextAll"], 26844 prev: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["prev"], 26845 prevAll: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["prevAll"], 26846 parent: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["parent"], 26847 parents: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["parents"], 26848 closest: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["closest"], 26849 find: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["find"], 26850 children: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["children"], 26851 remove: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["remove"], 26852 add: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["add"], 26853 styles: dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["styles"] 26854}; 26855 26856Object.keys(Methods).forEach(function (methodName) { 26857 dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"].fn[methodName] = Methods[methodName]; 26858}); 26859 26860var Utils = { 26861 deleteProps: function deleteProps(obj) { 26862 var object = obj; 26863 Object.keys(object).forEach(function (key) { 26864 try { 26865 object[key] = null; 26866 } catch (e) { 26867 // no getter for object 26868 } 26869 try { 26870 delete object[key]; 26871 } catch (e) { 26872 // something got wrong 26873 } 26874 }); 26875 }, 26876 nextTick: function nextTick(callback) { 26877 var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; 26878 26879 return setTimeout(callback, delay); 26880 }, 26881 now: function now() { 26882 return Date.now(); 26883 }, 26884 getTranslate: function getTranslate(el) { 26885 var axis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x'; 26886 26887 var matrix = void 0; 26888 var curTransform = void 0; 26889 var transformMatrix = void 0; 26890 26891 var curStyle = ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].getComputedStyle(el, null); 26892 26893 if (ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].WebKitCSSMatrix) { 26894 curTransform = curStyle.transform || curStyle.webkitTransform; 26895 if (curTransform.split(',').length > 6) { 26896 curTransform = curTransform.split(', ').map(function (a) { 26897 return a.replace(',', '.'); 26898 }).join(', '); 26899 } 26900 // Some old versions of Webkit choke when 'none' is passed; pass 26901 // empty string instead in this case 26902 transformMatrix = new ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); 26903 } else { 26904 transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); 26905 matrix = transformMatrix.toString().split(','); 26906 } 26907 26908 if (axis === 'x') { 26909 // Latest Chrome and webkits Fix 26910 if (ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].WebKitCSSMatrix) curTransform = transformMatrix.m41; 26911 // Crazy IE10 Matrix 26912 else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); 26913 // Normal Browsers 26914 else curTransform = parseFloat(matrix[4]); 26915 } 26916 if (axis === 'y') { 26917 // Latest Chrome and webkits Fix 26918 if (ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].WebKitCSSMatrix) curTransform = transformMatrix.m42; 26919 // Crazy IE10 Matrix 26920 else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); 26921 // Normal Browsers 26922 else curTransform = parseFloat(matrix[5]); 26923 } 26924 return curTransform || 0; 26925 }, 26926 parseUrlQuery: function parseUrlQuery(url) { 26927 var query = {}; 26928 var urlToParse = url || ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].location.href; 26929 var i = void 0; 26930 var params = void 0; 26931 var param = void 0; 26932 var length = void 0; 26933 if (typeof urlToParse === 'string' && urlToParse.length) { 26934 urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\S*\?/, '') : ''; 26935 params = urlToParse.split('&').filter(function (paramsPart) { 26936 return paramsPart !== ''; 26937 }); 26938 length = params.length; 26939 26940 for (i = 0; i < length; i += 1) { 26941 param = params[i].replace(/#\S+/g, '').split('='); 26942 query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || ''; 26943 } 26944 } 26945 return query; 26946 }, 26947 isObject: function isObject(o) { 26948 return (typeof o === 'undefined' ? 'undefined' : _typeof(o)) === 'object' && o !== null && o.constructor && o.constructor === Object; 26949 }, 26950 extend: function extend() { 26951 var to = Object(arguments.length <= 0 ? undefined : arguments[0]); 26952 for (var i = 1; i < arguments.length; i += 1) { 26953 var nextSource = arguments.length <= i ? undefined : arguments[i]; 26954 if (nextSource !== undefined && nextSource !== null) { 26955 var keysArray = Object.keys(Object(nextSource)); 26956 for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { 26957 var nextKey = keysArray[nextIndex]; 26958 var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); 26959 if (desc !== undefined && desc.enumerable) { 26960 if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { 26961 Utils.extend(to[nextKey], nextSource[nextKey]); 26962 } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { 26963 to[nextKey] = {}; 26964 Utils.extend(to[nextKey], nextSource[nextKey]); 26965 } else { 26966 to[nextKey] = nextSource[nextKey]; 26967 } 26968 } 26969 } 26970 } 26971 } 26972 return to; 26973 } 26974}; 26975 26976var Support = function Support() { 26977 var testDiv = ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].createElement('div'); 26978 return { 26979 touch: ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].Modernizr && ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].Modernizr.touch === true || function checkTouch() { 26980 return !!(ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].navigator.maxTouchPoints > 0 || 'ontouchstart' in ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"] || ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].DocumentTouch && ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"] instanceof ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].DocumentTouch); 26981 }(), 26982 26983 pointerEvents: !!(ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].navigator.pointerEnabled || ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].PointerEvent || 'maxTouchPoints' in ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].navigator), 26984 prefixedPointerEvents: !!ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].navigator.msPointerEnabled, 26985 26986 transition: function checkTransition() { 26987 var style = testDiv.style; 26988 return 'transition' in style || 'webkitTransition' in style || 'MozTransition' in style; 26989 }(), 26990 transforms3d: ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].Modernizr && ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].Modernizr.csstransforms3d === true || function checkTransforms3d() { 26991 var style = testDiv.style; 26992 return 'webkitPerspective' in style || 'MozPerspective' in style || 'OPerspective' in style || 'MsPerspective' in style || 'perspective' in style; 26993 }(), 26994 26995 flexbox: function checkFlexbox() { 26996 var style = testDiv.style; 26997 var styles$$1 = 'alignItems webkitAlignItems webkitBoxAlign msFlexAlign mozBoxAlign webkitFlexDirection msFlexDirection mozBoxDirection mozBoxOrient webkitBoxDirection webkitBoxOrient'.split(' '); 26998 for (var i = 0; i < styles$$1.length; i += 1) { 26999 if (styles$$1[i] in style) return true; 27000 } 27001 return false; 27002 }(), 27003 27004 observer: function checkObserver() { 27005 return 'MutationObserver' in ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"] || 'WebkitMutationObserver' in ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"]; 27006 }(), 27007 27008 passiveListener: function checkPassiveListener() { 27009 var supportsPassive = false; 27010 try { 27011 var opts = Object.defineProperty({}, 'passive', { 27012 // eslint-disable-next-line 27013 get: function get() { 27014 supportsPassive = true; 27015 } 27016 }); 27017 ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].addEventListener('testPassiveListener', null, opts); 27018 } catch (e) { 27019 // No support 27020 } 27021 return supportsPassive; 27022 }(), 27023 27024 gestures: function checkGestures() { 27025 return 'ongesturestart' in ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"]; 27026 }() 27027 }; 27028}(); 27029 27030var SwiperClass = function () { 27031 function SwiperClass() { 27032 var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 27033 27034 _classCallCheck(this, SwiperClass); 27035 27036 var self = this; 27037 self.params = params; 27038 27039 // Events 27040 self.eventsListeners = {}; 27041 27042 if (self.params && self.params.on) { 27043 Object.keys(self.params.on).forEach(function (eventName) { 27044 self.on(eventName, self.params.on[eventName]); 27045 }); 27046 } 27047 } 27048 27049 _createClass(SwiperClass, [{ 27050 key: 'on', 27051 value: function on(events, handler, priority) { 27052 var self = this; 27053 if (typeof handler !== 'function') return self; 27054 var method = priority ? 'unshift' : 'push'; 27055 events.split(' ').forEach(function (event) { 27056 if (!self.eventsListeners[event]) self.eventsListeners[event] = []; 27057 self.eventsListeners[event][method](handler); 27058 }); 27059 return self; 27060 } 27061 }, { 27062 key: 'once', 27063 value: function once(events, handler, priority) { 27064 var self = this; 27065 if (typeof handler !== 'function') return self; 27066 function onceHandler() { 27067 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { 27068 args[_key] = arguments[_key]; 27069 } 27070 27071 handler.apply(self, args); 27072 self.off(events, onceHandler); 27073 } 27074 return self.on(events, onceHandler, priority); 27075 } 27076 }, { 27077 key: 'off', 27078 value: function off(events, handler) { 27079 var self = this; 27080 if (!self.eventsListeners) return self; 27081 events.split(' ').forEach(function (event) { 27082 if (typeof handler === 'undefined') { 27083 self.eventsListeners[event] = []; 27084 } else if (self.eventsListeners[event] && self.eventsListeners[event].length) { 27085 self.eventsListeners[event].forEach(function (eventHandler, index$$1) { 27086 if (eventHandler === handler) { 27087 self.eventsListeners[event].splice(index$$1, 1); 27088 } 27089 }); 27090 } 27091 }); 27092 return self; 27093 } 27094 }, { 27095 key: 'emit', 27096 value: function emit() { 27097 var self = this; 27098 if (!self.eventsListeners) return self; 27099 var events = void 0; 27100 var data$$1 = void 0; 27101 var context = void 0; 27102 27103 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 27104 args[_key2] = arguments[_key2]; 27105 } 27106 27107 if (typeof args[0] === 'string' || Array.isArray(args[0])) { 27108 events = args[0]; 27109 data$$1 = args.slice(1, args.length); 27110 context = self; 27111 } else { 27112 events = args[0].events; 27113 data$$1 = args[0].data; 27114 context = args[0].context || self; 27115 } 27116 var eventsArray = Array.isArray(events) ? events : events.split(' '); 27117 eventsArray.forEach(function (event) { 27118 if (self.eventsListeners && self.eventsListeners[event]) { 27119 var handlers = []; 27120 self.eventsListeners[event].forEach(function (eventHandler) { 27121 handlers.push(eventHandler); 27122 }); 27123 handlers.forEach(function (eventHandler) { 27124 eventHandler.apply(context, data$$1); 27125 }); 27126 } 27127 }); 27128 return self; 27129 } 27130 }, { 27131 key: 'useModulesParams', 27132 value: function useModulesParams(instanceParams) { 27133 var instance = this; 27134 if (!instance.modules) return; 27135 Object.keys(instance.modules).forEach(function (moduleName) { 27136 var module = instance.modules[moduleName]; 27137 // Extend params 27138 if (module.params) { 27139 Utils.extend(instanceParams, module.params); 27140 } 27141 }); 27142 } 27143 }, { 27144 key: 'useModules', 27145 value: function useModules() { 27146 var modulesParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 27147 27148 var instance = this; 27149 if (!instance.modules) return; 27150 Object.keys(instance.modules).forEach(function (moduleName) { 27151 var module = instance.modules[moduleName]; 27152 var moduleParams = modulesParams[moduleName] || {}; 27153 // Extend instance methods and props 27154 if (module.instance) { 27155 Object.keys(module.instance).forEach(function (modulePropName) { 27156 var moduleProp = module.instance[modulePropName]; 27157 if (typeof moduleProp === 'function') { 27158 instance[modulePropName] = moduleProp.bind(instance); 27159 } else { 27160 instance[modulePropName] = moduleProp; 27161 } 27162 }); 27163 } 27164 // Add event listeners 27165 if (module.on && instance.on) { 27166 Object.keys(module.on).forEach(function (moduleEventName) { 27167 instance.on(moduleEventName, module.on[moduleEventName]); 27168 }); 27169 } 27170 27171 // Module create callback 27172 if (module.create) { 27173 module.create.bind(instance)(moduleParams); 27174 } 27175 }); 27176 } 27177 }], [{ 27178 key: 'installModule', 27179 value: function installModule(module) { 27180 var Class = this; 27181 if (!Class.prototype.modules) Class.prototype.modules = {}; 27182 var name = module.name || Object.keys(Class.prototype.modules).length + '_' + Utils.now(); 27183 Class.prototype.modules[name] = module; 27184 // Prototype 27185 if (module.proto) { 27186 Object.keys(module.proto).forEach(function (key) { 27187 Class.prototype[key] = module.proto[key]; 27188 }); 27189 } 27190 // Class 27191 if (module.static) { 27192 Object.keys(module.static).forEach(function (key) { 27193 Class[key] = module.static[key]; 27194 }); 27195 } 27196 // Callback 27197 if (module.install) { 27198 for (var _len3 = arguments.length, params = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { 27199 params[_key3 - 1] = arguments[_key3]; 27200 } 27201 27202 module.install.apply(Class, params); 27203 } 27204 return Class; 27205 } 27206 }, { 27207 key: 'use', 27208 value: function use(module) { 27209 var Class = this; 27210 if (Array.isArray(module)) { 27211 module.forEach(function (m) { 27212 return Class.installModule(m); 27213 }); 27214 return Class; 27215 } 27216 27217 for (var _len4 = arguments.length, params = Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) { 27218 params[_key4 - 1] = arguments[_key4]; 27219 } 27220 27221 return Class.installModule.apply(Class, [module].concat(params)); 27222 } 27223 }, { 27224 key: 'components', 27225 set: function set(components) { 27226 var Class = this; 27227 if (!Class.use) return; 27228 Class.use(components); 27229 } 27230 }]); 27231 27232 return SwiperClass; 27233}(); 27234 27235function updateSize() { 27236 var swiper = this; 27237 var width = void 0; 27238 var height = void 0; 27239 var $el = swiper.$el; 27240 if (typeof swiper.params.width !== 'undefined') { 27241 width = swiper.params.width; 27242 } else { 27243 width = $el[0].clientWidth; 27244 } 27245 if (typeof swiper.params.height !== 'undefined') { 27246 height = swiper.params.height; 27247 } else { 27248 height = $el[0].clientHeight; 27249 } 27250 if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) { 27251 return; 27252 } 27253 27254 // Subtract paddings 27255 width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10); 27256 height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10); 27257 27258 Utils.extend(swiper, { 27259 width: width, 27260 height: height, 27261 size: swiper.isHorizontal() ? width : height 27262 }); 27263} 27264 27265function updateSlides() { 27266 var swiper = this; 27267 var params = swiper.params; 27268 27269 var $wrapperEl = swiper.$wrapperEl, 27270 swiperSize = swiper.size, 27271 rtl = swiper.rtlTranslate, 27272 wrongRTL = swiper.wrongRTL; 27273 27274 var isVirtual = swiper.virtual && params.virtual.enabled; 27275 var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; 27276 var slides = $wrapperEl.children('.' + swiper.params.slideClass); 27277 var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; 27278 var snapGrid = []; 27279 var slidesGrid = []; 27280 var slidesSizesGrid = []; 27281 27282 var offsetBefore = params.slidesOffsetBefore; 27283 if (typeof offsetBefore === 'function') { 27284 offsetBefore = params.slidesOffsetBefore.call(swiper); 27285 } 27286 27287 var offsetAfter = params.slidesOffsetAfter; 27288 if (typeof offsetAfter === 'function') { 27289 offsetAfter = params.slidesOffsetAfter.call(swiper); 27290 } 27291 27292 var previousSnapGridLength = swiper.snapGrid.length; 27293 var previousSlidesGridLength = swiper.snapGrid.length; 27294 27295 var spaceBetween = params.spaceBetween; 27296 var slidePosition = -offsetBefore; 27297 var prevSlideSize = 0; 27298 var index$$1 = 0; 27299 if (typeof swiperSize === 'undefined') { 27300 return; 27301 } 27302 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 27303 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize; 27304 } 27305 27306 swiper.virtualSize = -spaceBetween; 27307 27308 // reset margins 27309 if (rtl) slides.css({ marginLeft: '', marginTop: '' });else slides.css({ marginRight: '', marginBottom: '' }); 27310 27311 var slidesNumberEvenToRows = void 0; 27312 if (params.slidesPerColumn > 1) { 27313 if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) { 27314 slidesNumberEvenToRows = slidesLength; 27315 } else { 27316 slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn; 27317 } 27318 if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') { 27319 slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn); 27320 } 27321 } 27322 27323 // Calc slides 27324 var slideSize = void 0; 27325 var slidesPerColumn = params.slidesPerColumn; 27326 var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn; 27327 var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn); 27328 for (var i = 0; i < slidesLength; i += 1) { 27329 slideSize = 0; 27330 var _slide = slides.eq(i); 27331 if (params.slidesPerColumn > 1) { 27332 // Set slides order 27333 var newSlideOrderIndex = void 0; 27334 var column = void 0; 27335 var row = void 0; 27336 if (params.slidesPerColumnFill === 'column') { 27337 column = Math.floor(i / slidesPerColumn); 27338 row = i - column * slidesPerColumn; 27339 if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) { 27340 row += 1; 27341 if (row >= slidesPerColumn) { 27342 row = 0; 27343 column += 1; 27344 } 27345 } 27346 newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn; 27347 _slide.css({ 27348 '-webkit-box-ordinal-group': newSlideOrderIndex, 27349 '-moz-box-ordinal-group': newSlideOrderIndex, 27350 '-ms-flex-order': newSlideOrderIndex, 27351 '-webkit-order': newSlideOrderIndex, 27352 order: newSlideOrderIndex 27353 }); 27354 } else { 27355 row = Math.floor(i / slidesPerRow); 27356 column = i - row * slidesPerRow; 27357 } 27358 _slide.css('margin-' + (swiper.isHorizontal() ? 'top' : 'left'), row !== 0 && params.spaceBetween && params.spaceBetween + 'px').attr('data-swiper-column', column).attr('data-swiper-row', row); 27359 } 27360 if (_slide.css('display') === 'none') continue; // eslint-disable-line 27361 27362 if (params.slidesPerView === 'auto') { 27363 var slideStyles = ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].getComputedStyle(_slide[0], null); 27364 var currentTransform = _slide[0].style.transform; 27365 var currentWebKitTransform = _slide[0].style.webkitTransform; 27366 if (currentTransform) { 27367 _slide[0].style.transform = 'none'; 27368 } 27369 if (currentWebKitTransform) { 27370 _slide[0].style.webkitTransform = 'none'; 27371 } 27372 if (params.roundLengths) { 27373 slideSize = swiper.isHorizontal() ? _slide.outerWidth(true) : _slide.outerHeight(true); 27374 } else { 27375 // eslint-disable-next-line 27376 if (swiper.isHorizontal()) { 27377 var width = parseFloat(slideStyles.getPropertyValue('width')); 27378 var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left')); 27379 var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right')); 27380 var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left')); 27381 var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right')); 27382 var boxSizing = slideStyles.getPropertyValue('box-sizing'); 27383 if (boxSizing && boxSizing === 'border-box') { 27384 slideSize = width + marginLeft + marginRight; 27385 } else { 27386 slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight; 27387 } 27388 } else { 27389 var height = parseFloat(slideStyles.getPropertyValue('height')); 27390 var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top')); 27391 var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom')); 27392 var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top')); 27393 var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom')); 27394 var _boxSizing = slideStyles.getPropertyValue('box-sizing'); 27395 if (_boxSizing && _boxSizing === 'border-box') { 27396 slideSize = height + marginTop + marginBottom; 27397 } else { 27398 slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom; 27399 } 27400 } 27401 } 27402 if (currentTransform) { 27403 _slide[0].style.transform = currentTransform; 27404 } 27405 if (currentWebKitTransform) { 27406 _slide[0].style.webkitTransform = currentWebKitTransform; 27407 } 27408 if (params.roundLengths) slideSize = Math.floor(slideSize); 27409 } else { 27410 slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView; 27411 if (params.roundLengths) slideSize = Math.floor(slideSize); 27412 27413 if (slides[i]) { 27414 if (swiper.isHorizontal()) { 27415 slides[i].style.width = slideSize + 'px'; 27416 } else { 27417 slides[i].style.height = slideSize + 'px'; 27418 } 27419 } 27420 } 27421 if (slides[i]) { 27422 slides[i].swiperSlideSize = slideSize; 27423 } 27424 slidesSizesGrid.push(slideSize); 27425 27426 if (params.centeredSlides) { 27427 slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween; 27428 if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 27429 if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 27430 if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; 27431 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 27432 if (index$$1 % params.slidesPerGroup === 0) snapGrid.push(slidePosition); 27433 slidesGrid.push(slidePosition); 27434 } else { 27435 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 27436 if (index$$1 % params.slidesPerGroup === 0) snapGrid.push(slidePosition); 27437 slidesGrid.push(slidePosition); 27438 slidePosition = slidePosition + slideSize + spaceBetween; 27439 } 27440 27441 swiper.virtualSize += slideSize + spaceBetween; 27442 27443 prevSlideSize = slideSize; 27444 27445 index$$1 += 1; 27446 } 27447 swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; 27448 var newSlidesGrid = void 0; 27449 27450 if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { 27451 $wrapperEl.css({ width: swiper.virtualSize + params.spaceBetween + 'px' }); 27452 } 27453 if (!Support.flexbox || params.setWrapperSize) { 27454 if (swiper.isHorizontal()) $wrapperEl.css({ width: swiper.virtualSize + params.spaceBetween + 'px' });else $wrapperEl.css({ height: swiper.virtualSize + params.spaceBetween + 'px' }); 27455 } 27456 27457 if (params.slidesPerColumn > 1) { 27458 swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows; 27459 swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween; 27460 if (swiper.isHorizontal()) $wrapperEl.css({ width: swiper.virtualSize + params.spaceBetween + 'px' });else $wrapperEl.css({ height: swiper.virtualSize + params.spaceBetween + 'px' }); 27461 if (params.centeredSlides) { 27462 newSlidesGrid = []; 27463 for (var _i = 0; _i < snapGrid.length; _i += 1) { 27464 var slidesGridItem = snapGrid[_i]; 27465 if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem); 27466 if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem); 27467 } 27468 snapGrid = newSlidesGrid; 27469 } 27470 } 27471 27472 // Remove last grid elements depending on width 27473 if (!params.centeredSlides) { 27474 newSlidesGrid = []; 27475 for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) { 27476 var _slidesGridItem = snapGrid[_i2]; 27477 if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem); 27478 if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) { 27479 newSlidesGrid.push(_slidesGridItem); 27480 } 27481 } 27482 snapGrid = newSlidesGrid; 27483 if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { 27484 snapGrid.push(swiper.virtualSize - swiperSize); 27485 } 27486 } 27487 if (snapGrid.length === 0) snapGrid = [0]; 27488 27489 if (params.spaceBetween !== 0) { 27490 if (swiper.isHorizontal()) { 27491 if (rtl) slides.css({ marginLeft: spaceBetween + 'px' });else slides.css({ marginRight: spaceBetween + 'px' }); 27492 } else slides.css({ marginBottom: spaceBetween + 'px' }); 27493 } 27494 27495 if (params.centerInsufficientSlides) { 27496 var allSlidesSize = 0; 27497 slidesSizesGrid.forEach(function (slideSizeValue) { 27498 allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0); 27499 }); 27500 allSlidesSize -= params.spaceBetween; 27501 if (allSlidesSize < swiperSize) { 27502 var allSlidesOffset = (swiperSize - allSlidesSize) / 2; 27503 snapGrid.forEach(function (snap, snapIndex) { 27504 snapGrid[snapIndex] = snap - allSlidesOffset; 27505 }); 27506 slidesGrid.forEach(function (snap, snapIndex) { 27507 slidesGrid[snapIndex] = snap + allSlidesOffset; 27508 }); 27509 } 27510 } 27511 27512 Utils.extend(swiper, { 27513 slides: slides, 27514 snapGrid: snapGrid, 27515 slidesGrid: slidesGrid, 27516 slidesSizesGrid: slidesSizesGrid 27517 }); 27518 27519 if (slidesLength !== previousSlidesLength) { 27520 swiper.emit('slidesLengthChange'); 27521 } 27522 if (snapGrid.length !== previousSnapGridLength) { 27523 if (swiper.params.watchOverflow) swiper.checkOverflow(); 27524 swiper.emit('snapGridLengthChange'); 27525 } 27526 if (slidesGrid.length !== previousSlidesGridLength) { 27527 swiper.emit('slidesGridLengthChange'); 27528 } 27529 27530 if (params.watchSlidesProgress || params.watchSlidesVisibility) { 27531 swiper.updateSlidesOffset(); 27532 } 27533} 27534 27535function updateAutoHeight(speed) { 27536 var swiper = this; 27537 var activeSlides = []; 27538 var newHeight = 0; 27539 var i = void 0; 27540 if (typeof speed === 'number') { 27541 swiper.setTransition(speed); 27542 } else if (speed === true) { 27543 swiper.setTransition(swiper.params.speed); 27544 } 27545 // Find slides currently in view 27546 if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { 27547 for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { 27548 var index$$1 = swiper.activeIndex + i; 27549 if (index$$1 > swiper.slides.length) break; 27550 activeSlides.push(swiper.slides.eq(index$$1)[0]); 27551 } 27552 } else { 27553 activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]); 27554 } 27555 27556 // Find new height from highest slide in view 27557 for (i = 0; i < activeSlides.length; i += 1) { 27558 if (typeof activeSlides[i] !== 'undefined') { 27559 var height = activeSlides[i].offsetHeight; 27560 newHeight = height > newHeight ? height : newHeight; 27561 } 27562 } 27563 27564 // Update Height 27565 if (newHeight) swiper.$wrapperEl.css('height', newHeight + 'px'); 27566} 27567 27568function updateSlidesOffset() { 27569 var swiper = this; 27570 var slides = swiper.slides; 27571 for (var i = 0; i < slides.length; i += 1) { 27572 slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop; 27573 } 27574} 27575 27576function updateSlidesProgress() { 27577 var translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this && this.translate || 0; 27578 27579 var swiper = this; 27580 var params = swiper.params; 27581 27582 var slides = swiper.slides, 27583 rtl = swiper.rtlTranslate; 27584 27585 27586 if (slides.length === 0) return; 27587 if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); 27588 27589 var offsetCenter = -translate; 27590 if (rtl) offsetCenter = translate; 27591 27592 // Visible Slides 27593 slides.removeClass(params.slideVisibleClass); 27594 27595 swiper.visibleSlidesIndexes = []; 27596 swiper.visibleSlides = []; 27597 27598 for (var i = 0; i < slides.length; i += 1) { 27599 var _slide2 = slides[i]; 27600 var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - _slide2.swiperSlideOffset) / (_slide2.swiperSlideSize + params.spaceBetween); 27601 if (params.watchSlidesVisibility) { 27602 var slideBefore = -(offsetCenter - _slide2.swiperSlideOffset); 27603 var slideAfter = slideBefore + swiper.slidesSizesGrid[i]; 27604 var isVisible = slideBefore >= 0 && slideBefore < swiper.size || slideAfter > 0 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size; 27605 if (isVisible) { 27606 swiper.visibleSlides.push(_slide2); 27607 swiper.visibleSlidesIndexes.push(i); 27608 slides.eq(i).addClass(params.slideVisibleClass); 27609 } 27610 } 27611 _slide2.progress = rtl ? -slideProgress : slideProgress; 27612 } 27613 swiper.visibleSlides = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(swiper.visibleSlides); 27614} 27615 27616function updateProgress() { 27617 var translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this && this.translate || 0; 27618 27619 var swiper = this; 27620 var params = swiper.params; 27621 27622 var translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 27623 var progress = swiper.progress, 27624 isBeginning = swiper.isBeginning, 27625 isEnd = swiper.isEnd; 27626 27627 var wasBeginning = isBeginning; 27628 var wasEnd = isEnd; 27629 if (translatesDiff === 0) { 27630 progress = 0; 27631 isBeginning = true; 27632 isEnd = true; 27633 } else { 27634 progress = (translate - swiper.minTranslate()) / translatesDiff; 27635 isBeginning = progress <= 0; 27636 isEnd = progress >= 1; 27637 } 27638 Utils.extend(swiper, { 27639 progress: progress, 27640 isBeginning: isBeginning, 27641 isEnd: isEnd 27642 }); 27643 27644 if (params.watchSlidesProgress || params.watchSlidesVisibility) swiper.updateSlidesProgress(translate); 27645 27646 if (isBeginning && !wasBeginning) { 27647 swiper.emit('reachBeginning toEdge'); 27648 } 27649 if (isEnd && !wasEnd) { 27650 swiper.emit('reachEnd toEdge'); 27651 } 27652 if (wasBeginning && !isBeginning || wasEnd && !isEnd) { 27653 swiper.emit('fromEdge'); 27654 } 27655 27656 swiper.emit('progress', progress); 27657} 27658 27659function updateSlidesClasses() { 27660 var swiper = this; 27661 27662 var slides = swiper.slides, 27663 params = swiper.params, 27664 $wrapperEl = swiper.$wrapperEl, 27665 activeIndex = swiper.activeIndex, 27666 realIndex = swiper.realIndex; 27667 27668 var isVirtual = swiper.virtual && params.virtual.enabled; 27669 27670 slides.removeClass(params.slideActiveClass + ' ' + params.slideNextClass + ' ' + params.slidePrevClass + ' ' + params.slideDuplicateActiveClass + ' ' + params.slideDuplicateNextClass + ' ' + params.slideDuplicatePrevClass); 27671 27672 var activeSlide = void 0; 27673 if (isVirtual) { 27674 activeSlide = swiper.$wrapperEl.find('.' + params.slideClass + '[data-swiper-slide-index="' + activeIndex + '"]'); 27675 } else { 27676 activeSlide = slides.eq(activeIndex); 27677 } 27678 27679 // Active classes 27680 activeSlide.addClass(params.slideActiveClass); 27681 27682 if (params.loop) { 27683 // Duplicate to all looped slides 27684 if (activeSlide.hasClass(params.slideDuplicateClass)) { 27685 $wrapperEl.children('.' + params.slideClass + ':not(.' + params.slideDuplicateClass + ')[data-swiper-slide-index="' + realIndex + '"]').addClass(params.slideDuplicateActiveClass); 27686 } else { 27687 $wrapperEl.children('.' + params.slideClass + '.' + params.slideDuplicateClass + '[data-swiper-slide-index="' + realIndex + '"]').addClass(params.slideDuplicateActiveClass); 27688 } 27689 } 27690 // Next Slide 27691 var nextSlide = activeSlide.nextAll('.' + params.slideClass).eq(0).addClass(params.slideNextClass); 27692 if (params.loop && nextSlide.length === 0) { 27693 nextSlide = slides.eq(0); 27694 nextSlide.addClass(params.slideNextClass); 27695 } 27696 // Prev Slide 27697 var prevSlide = activeSlide.prevAll('.' + params.slideClass).eq(0).addClass(params.slidePrevClass); 27698 if (params.loop && prevSlide.length === 0) { 27699 prevSlide = slides.eq(-1); 27700 prevSlide.addClass(params.slidePrevClass); 27701 } 27702 if (params.loop) { 27703 // Duplicate to all looped slides 27704 if (nextSlide.hasClass(params.slideDuplicateClass)) { 27705 $wrapperEl.children('.' + params.slideClass + ':not(.' + params.slideDuplicateClass + ')[data-swiper-slide-index="' + nextSlide.attr('data-swiper-slide-index') + '"]').addClass(params.slideDuplicateNextClass); 27706 } else { 27707 $wrapperEl.children('.' + params.slideClass + '.' + params.slideDuplicateClass + '[data-swiper-slide-index="' + nextSlide.attr('data-swiper-slide-index') + '"]').addClass(params.slideDuplicateNextClass); 27708 } 27709 if (prevSlide.hasClass(params.slideDuplicateClass)) { 27710 $wrapperEl.children('.' + params.slideClass + ':not(.' + params.slideDuplicateClass + ')[data-swiper-slide-index="' + prevSlide.attr('data-swiper-slide-index') + '"]').addClass(params.slideDuplicatePrevClass); 27711 } else { 27712 $wrapperEl.children('.' + params.slideClass + '.' + params.slideDuplicateClass + '[data-swiper-slide-index="' + prevSlide.attr('data-swiper-slide-index') + '"]').addClass(params.slideDuplicatePrevClass); 27713 } 27714 } 27715} 27716 27717function updateActiveIndex(newActiveIndex) { 27718 var swiper = this; 27719 var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 27720 var slidesGrid = swiper.slidesGrid, 27721 snapGrid = swiper.snapGrid, 27722 params = swiper.params, 27723 previousIndex = swiper.activeIndex, 27724 previousRealIndex = swiper.realIndex, 27725 previousSnapIndex = swiper.snapIndex; 27726 27727 var activeIndex = newActiveIndex; 27728 var snapIndex = void 0; 27729 if (typeof activeIndex === 'undefined') { 27730 for (var i = 0; i < slidesGrid.length; i += 1) { 27731 if (typeof slidesGrid[i + 1] !== 'undefined') { 27732 if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) { 27733 activeIndex = i; 27734 } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { 27735 activeIndex = i + 1; 27736 } 27737 } else if (translate >= slidesGrid[i]) { 27738 activeIndex = i; 27739 } 27740 } 27741 // Normalize slideIndex 27742 if (params.normalizeSlideIndex) { 27743 if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; 27744 } 27745 } 27746 if (snapGrid.indexOf(translate) >= 0) { 27747 snapIndex = snapGrid.indexOf(translate); 27748 } else { 27749 snapIndex = Math.floor(activeIndex / params.slidesPerGroup); 27750 } 27751 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 27752 if (activeIndex === previousIndex) { 27753 if (snapIndex !== previousSnapIndex) { 27754 swiper.snapIndex = snapIndex; 27755 swiper.emit('snapIndexChange'); 27756 } 27757 return; 27758 } 27759 27760 // Get real index 27761 var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10); 27762 27763 Utils.extend(swiper, { 27764 snapIndex: snapIndex, 27765 realIndex: realIndex, 27766 previousIndex: previousIndex, 27767 activeIndex: activeIndex 27768 }); 27769 swiper.emit('activeIndexChange'); 27770 swiper.emit('snapIndexChange'); 27771 if (previousRealIndex !== realIndex) { 27772 swiper.emit('realIndexChange'); 27773 } 27774 swiper.emit('slideChange'); 27775} 27776 27777function updateClickedSlide(e) { 27778 var swiper = this; 27779 var params = swiper.params; 27780 var slide = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(e.target).closest('.' + params.slideClass)[0]; 27781 var slideFound = false; 27782 if (slide) { 27783 for (var i = 0; i < swiper.slides.length; i += 1) { 27784 if (swiper.slides[i] === slide) slideFound = true; 27785 } 27786 } 27787 27788 if (slide && slideFound) { 27789 swiper.clickedSlide = slide; 27790 if (swiper.virtual && swiper.params.virtual.enabled) { 27791 swiper.clickedIndex = parseInt(Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(slide).attr('data-swiper-slide-index'), 10); 27792 } else { 27793 swiper.clickedIndex = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(slide).index(); 27794 } 27795 } else { 27796 swiper.clickedSlide = undefined; 27797 swiper.clickedIndex = undefined; 27798 return; 27799 } 27800 if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { 27801 swiper.slideToClickedSlide(); 27802 } 27803} 27804 27805var update = { 27806 updateSize: updateSize, 27807 updateSlides: updateSlides, 27808 updateAutoHeight: updateAutoHeight, 27809 updateSlidesOffset: updateSlidesOffset, 27810 updateSlidesProgress: updateSlidesProgress, 27811 updateProgress: updateProgress, 27812 updateSlidesClasses: updateSlidesClasses, 27813 updateActiveIndex: updateActiveIndex, 27814 updateClickedSlide: updateClickedSlide 27815}; 27816 27817function getTranslate() { 27818 var axis = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.isHorizontal() ? 'x' : 'y'; 27819 27820 var swiper = this; 27821 27822 var params = swiper.params, 27823 rtl = swiper.rtlTranslate, 27824 translate = swiper.translate, 27825 $wrapperEl = swiper.$wrapperEl; 27826 27827 27828 if (params.virtualTranslate) { 27829 return rtl ? -translate : translate; 27830 } 27831 27832 var currentTranslate = Utils.getTranslate($wrapperEl[0], axis); 27833 if (rtl) currentTranslate = -currentTranslate; 27834 27835 return currentTranslate || 0; 27836} 27837 27838function setTranslate(translate, byController) { 27839 var swiper = this; 27840 var rtl = swiper.rtlTranslate, 27841 params = swiper.params, 27842 $wrapperEl = swiper.$wrapperEl, 27843 progress = swiper.progress; 27844 27845 var x = 0; 27846 var y = 0; 27847 var z = 0; 27848 27849 if (swiper.isHorizontal()) { 27850 x = rtl ? -translate : translate; 27851 } else { 27852 y = translate; 27853 } 27854 27855 if (params.roundLengths) { 27856 x = Math.floor(x); 27857 y = Math.floor(y); 27858 } 27859 27860 if (!params.virtualTranslate) { 27861 if (Support.transforms3d) $wrapperEl.transform('translate3d(' + x + 'px, ' + y + 'px, ' + z + 'px)');else $wrapperEl.transform('translate(' + x + 'px, ' + y + 'px)'); 27862 } 27863 swiper.previousTranslate = swiper.translate; 27864 swiper.translate = swiper.isHorizontal() ? x : y; 27865 27866 // Check if we need to update progress 27867 var newProgress = void 0; 27868 var translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 27869 if (translatesDiff === 0) { 27870 newProgress = 0; 27871 } else { 27872 newProgress = (translate - swiper.minTranslate()) / translatesDiff; 27873 } 27874 if (newProgress !== progress) { 27875 swiper.updateProgress(translate); 27876 } 27877 27878 swiper.emit('setTranslate', swiper.translate, byController); 27879} 27880 27881function minTranslate() { 27882 return -this.snapGrid[0]; 27883} 27884 27885function maxTranslate() { 27886 return -this.snapGrid[this.snapGrid.length - 1]; 27887} 27888 27889var translate = { 27890 getTranslate: getTranslate, 27891 setTranslate: setTranslate, 27892 minTranslate: minTranslate, 27893 maxTranslate: maxTranslate 27894}; 27895 27896function setTransition(duration, byController) { 27897 var swiper = this; 27898 27899 swiper.$wrapperEl.transition(duration); 27900 27901 swiper.emit('setTransition', duration, byController); 27902} 27903 27904function transitionStart() { 27905 var runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 27906 var direction = arguments[1]; 27907 27908 var swiper = this; 27909 var activeIndex = swiper.activeIndex, 27910 params = swiper.params, 27911 previousIndex = swiper.previousIndex; 27912 27913 if (params.autoHeight) { 27914 swiper.updateAutoHeight(); 27915 } 27916 27917 var dir = direction; 27918 if (!dir) { 27919 if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; 27920 } 27921 27922 swiper.emit('transitionStart'); 27923 27924 if (runCallbacks && activeIndex !== previousIndex) { 27925 if (dir === 'reset') { 27926 swiper.emit('slideResetTransitionStart'); 27927 return; 27928 } 27929 swiper.emit('slideChangeTransitionStart'); 27930 if (dir === 'next') { 27931 swiper.emit('slideNextTransitionStart'); 27932 } else { 27933 swiper.emit('slidePrevTransitionStart'); 27934 } 27935 } 27936} 27937 27938function transitionEnd$1() { 27939 var runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 27940 var direction = arguments[1]; 27941 27942 var swiper = this; 27943 var activeIndex = swiper.activeIndex, 27944 previousIndex = swiper.previousIndex; 27945 27946 swiper.animating = false; 27947 swiper.setTransition(0); 27948 27949 var dir = direction; 27950 if (!dir) { 27951 if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; 27952 } 27953 27954 swiper.emit('transitionEnd'); 27955 27956 if (runCallbacks && activeIndex !== previousIndex) { 27957 if (dir === 'reset') { 27958 swiper.emit('slideResetTransitionEnd'); 27959 return; 27960 } 27961 swiper.emit('slideChangeTransitionEnd'); 27962 if (dir === 'next') { 27963 swiper.emit('slideNextTransitionEnd'); 27964 } else { 27965 swiper.emit('slidePrevTransitionEnd'); 27966 } 27967 } 27968} 27969 27970var transition$1 = { 27971 setTransition: setTransition, 27972 transitionStart: transitionStart, 27973 transitionEnd: transitionEnd$1 27974}; 27975 27976function slideTo() { 27977 var index$$1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; 27978 var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed; 27979 var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; 27980 var internal = arguments[3]; 27981 27982 var swiper = this; 27983 var slideIndex = index$$1; 27984 if (slideIndex < 0) slideIndex = 0; 27985 27986 var params = swiper.params, 27987 snapGrid = swiper.snapGrid, 27988 slidesGrid = swiper.slidesGrid, 27989 previousIndex = swiper.previousIndex, 27990 activeIndex = swiper.activeIndex, 27991 rtl = swiper.rtlTranslate; 27992 27993 if (swiper.animating && params.preventInteractionOnTransition) { 27994 return false; 27995 } 27996 27997 var snapIndex = Math.floor(slideIndex / params.slidesPerGroup); 27998 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 27999 28000 if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) { 28001 swiper.emit('beforeSlideChangeStart'); 28002 } 28003 28004 var translate = -snapGrid[snapIndex]; 28005 28006 // Update progress 28007 swiper.updateProgress(translate); 28008 28009 // Normalize slideIndex 28010 if (params.normalizeSlideIndex) { 28011 for (var i = 0; i < slidesGrid.length; i += 1) { 28012 if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) { 28013 slideIndex = i; 28014 } 28015 } 28016 } 28017 // Directions locks 28018 if (swiper.initialized && slideIndex !== activeIndex) { 28019 if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) { 28020 return false; 28021 } 28022 if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { 28023 if ((activeIndex || 0) !== slideIndex) return false; 28024 } 28025 } 28026 28027 var direction = void 0; 28028 if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; 28029 28030 // Update Index 28031 if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) { 28032 swiper.updateActiveIndex(slideIndex); 28033 // Update Height 28034 if (params.autoHeight) { 28035 swiper.updateAutoHeight(); 28036 } 28037 swiper.updateSlidesClasses(); 28038 if (params.effect !== 'slide') { 28039 swiper.setTranslate(translate); 28040 } 28041 if (direction !== 'reset') { 28042 swiper.transitionStart(runCallbacks, direction); 28043 swiper.transitionEnd(runCallbacks, direction); 28044 } 28045 return false; 28046 } 28047 28048 if (speed === 0 || !Support.transition) { 28049 swiper.setTransition(0); 28050 swiper.setTranslate(translate); 28051 swiper.updateActiveIndex(slideIndex); 28052 swiper.updateSlidesClasses(); 28053 swiper.emit('beforeTransitionStart', speed, internal); 28054 swiper.transitionStart(runCallbacks, direction); 28055 swiper.transitionEnd(runCallbacks, direction); 28056 } else { 28057 swiper.setTransition(speed); 28058 swiper.setTranslate(translate); 28059 swiper.updateActiveIndex(slideIndex); 28060 swiper.updateSlidesClasses(); 28061 swiper.emit('beforeTransitionStart', speed, internal); 28062 swiper.transitionStart(runCallbacks, direction); 28063 if (!swiper.animating) { 28064 swiper.animating = true; 28065 if (!swiper.onSlideToWrapperTransitionEnd) { 28066 swiper.onSlideToWrapperTransitionEnd = function transitionEnd$$1(e) { 28067 if (!swiper || swiper.destroyed) return; 28068 if (e.target !== this) return; 28069 swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 28070 swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd); 28071 swiper.onSlideToWrapperTransitionEnd = null; 28072 delete swiper.onSlideToWrapperTransitionEnd; 28073 swiper.transitionEnd(runCallbacks, direction); 28074 }; 28075 } 28076 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 28077 swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd); 28078 } 28079 } 28080 28081 return true; 28082} 28083 28084function slideToLoop() { 28085 var index$$1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; 28086 var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed; 28087 var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; 28088 var internal = arguments[3]; 28089 28090 var swiper = this; 28091 var newIndex = index$$1; 28092 if (swiper.params.loop) { 28093 newIndex += swiper.loopedSlides; 28094 } 28095 28096 return swiper.slideTo(newIndex, speed, runCallbacks, internal); 28097} 28098 28099/* eslint no-unused-vars: "off" */ 28100function slideNext() { 28101 var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed; 28102 var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 28103 var internal = arguments[2]; 28104 28105 var swiper = this; 28106 var params = swiper.params, 28107 animating = swiper.animating; 28108 28109 if (params.loop) { 28110 if (animating) return false; 28111 swiper.loopFix(); 28112 // eslint-disable-next-line 28113 swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 28114 return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal); 28115 } 28116 return swiper.slideTo(swiper.activeIndex + params.slidesPerGroup, speed, runCallbacks, internal); 28117} 28118 28119/* eslint no-unused-vars: "off" */ 28120function slidePrev() { 28121 var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed; 28122 var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 28123 var internal = arguments[2]; 28124 28125 var swiper = this; 28126 var params = swiper.params, 28127 animating = swiper.animating, 28128 snapGrid = swiper.snapGrid, 28129 slidesGrid = swiper.slidesGrid, 28130 rtlTranslate = swiper.rtlTranslate; 28131 28132 28133 if (params.loop) { 28134 if (animating) return false; 28135 swiper.loopFix(); 28136 // eslint-disable-next-line 28137 swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 28138 } 28139 var translate = rtlTranslate ? swiper.translate : -swiper.translate; 28140 function normalize(val) { 28141 if (val < 0) return -Math.floor(Math.abs(val)); 28142 return Math.floor(val); 28143 } 28144 var normalizedTranslate = normalize(translate); 28145 var normalizedSnapGrid = snapGrid.map(function (val) { 28146 return normalize(val); 28147 }); 28148 var normalizedSlidesGrid = slidesGrid.map(function (val) { 28149 return normalize(val); 28150 }); 28151 28152 var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)]; 28153 var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; 28154 var prevIndex = void 0; 28155 if (typeof prevSnap !== 'undefined') { 28156 prevIndex = slidesGrid.indexOf(prevSnap); 28157 if (prevIndex < 0) prevIndex = swiper.activeIndex - 1; 28158 } 28159 return swiper.slideTo(prevIndex, speed, runCallbacks, internal); 28160} 28161 28162/* eslint no-unused-vars: "off" */ 28163function slideReset() { 28164 var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed; 28165 var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 28166 var internal = arguments[2]; 28167 28168 var swiper = this; 28169 return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); 28170} 28171 28172/* eslint no-unused-vars: "off" */ 28173function slideToClosest() { 28174 var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed; 28175 var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 28176 var internal = arguments[2]; 28177 28178 var swiper = this; 28179 var index$$1 = swiper.activeIndex; 28180 var snapIndex = Math.floor(index$$1 / swiper.params.slidesPerGroup); 28181 28182 if (snapIndex < swiper.snapGrid.length - 1) { 28183 var _translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 28184 28185 var currentSnap = swiper.snapGrid[snapIndex]; 28186 var nextSnap = swiper.snapGrid[snapIndex + 1]; 28187 28188 if (_translate - currentSnap > (nextSnap - currentSnap) / 2) { 28189 index$$1 = swiper.params.slidesPerGroup; 28190 } 28191 } 28192 28193 return swiper.slideTo(index$$1, speed, runCallbacks, internal); 28194} 28195 28196function slideToClickedSlide() { 28197 var swiper = this; 28198 var params = swiper.params, 28199 $wrapperEl = swiper.$wrapperEl; 28200 28201 28202 var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; 28203 var slideToIndex = swiper.clickedIndex; 28204 var realIndex = void 0; 28205 if (params.loop) { 28206 if (swiper.animating) return; 28207 realIndex = parseInt(Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(swiper.clickedSlide).attr('data-swiper-slide-index'), 10); 28208 if (params.centeredSlides) { 28209 if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) { 28210 swiper.loopFix(); 28211 slideToIndex = $wrapperEl.children('.' + params.slideClass + '[data-swiper-slide-index="' + realIndex + '"]:not(.' + params.slideDuplicateClass + ')').eq(0).index(); 28212 28213 Utils.nextTick(function () { 28214 swiper.slideTo(slideToIndex); 28215 }); 28216 } else { 28217 swiper.slideTo(slideToIndex); 28218 } 28219 } else if (slideToIndex > swiper.slides.length - slidesPerView) { 28220 swiper.loopFix(); 28221 slideToIndex = $wrapperEl.children('.' + params.slideClass + '[data-swiper-slide-index="' + realIndex + '"]:not(.' + params.slideDuplicateClass + ')').eq(0).index(); 28222 28223 Utils.nextTick(function () { 28224 swiper.slideTo(slideToIndex); 28225 }); 28226 } else { 28227 swiper.slideTo(slideToIndex); 28228 } 28229 } else { 28230 swiper.slideTo(slideToIndex); 28231 } 28232} 28233 28234var slide = { 28235 slideTo: slideTo, 28236 slideToLoop: slideToLoop, 28237 slideNext: slideNext, 28238 slidePrev: slidePrev, 28239 slideReset: slideReset, 28240 slideToClosest: slideToClosest, 28241 slideToClickedSlide: slideToClickedSlide 28242}; 28243 28244function loopCreate() { 28245 var swiper = this; 28246 var params = swiper.params, 28247 $wrapperEl = swiper.$wrapperEl; 28248 // Remove duplicated slides 28249 28250 $wrapperEl.children('.' + params.slideClass + '.' + params.slideDuplicateClass).remove(); 28251 28252 var slides = $wrapperEl.children('.' + params.slideClass); 28253 28254 if (params.loopFillGroupWithBlank) { 28255 var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup; 28256 if (blankSlidesNum !== params.slidesPerGroup) { 28257 for (var i = 0; i < blankSlidesNum; i += 1) { 28258 var blankNode = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].createElement('div')).addClass(params.slideClass + ' ' + params.slideBlankClass); 28259 $wrapperEl.append(blankNode); 28260 } 28261 slides = $wrapperEl.children('.' + params.slideClass); 28262 } 28263 } 28264 28265 if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length; 28266 28267 swiper.loopedSlides = parseInt(params.loopedSlides || params.slidesPerView, 10); 28268 swiper.loopedSlides += params.loopAdditionalSlides; 28269 if (swiper.loopedSlides > slides.length) { 28270 swiper.loopedSlides = slides.length; 28271 } 28272 28273 var prependSlides = []; 28274 var appendSlides = []; 28275 slides.each(function (index$$1, el) { 28276 var slide = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(el); 28277 if (index$$1 < swiper.loopedSlides) appendSlides.push(el); 28278 if (index$$1 < slides.length && index$$1 >= slides.length - swiper.loopedSlides) prependSlides.push(el); 28279 slide.attr('data-swiper-slide-index', index$$1); 28280 }); 28281 for (var _i3 = 0; _i3 < appendSlides.length; _i3 += 1) { 28282 $wrapperEl.append(Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(appendSlides[_i3].cloneNode(true)).addClass(params.slideDuplicateClass)); 28283 } 28284 for (var _i4 = prependSlides.length - 1; _i4 >= 0; _i4 -= 1) { 28285 $wrapperEl.prepend(Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(prependSlides[_i4].cloneNode(true)).addClass(params.slideDuplicateClass)); 28286 } 28287} 28288 28289function loopFix() { 28290 var swiper = this; 28291 var params = swiper.params, 28292 activeIndex = swiper.activeIndex, 28293 slides = swiper.slides, 28294 loopedSlides = swiper.loopedSlides, 28295 allowSlidePrev = swiper.allowSlidePrev, 28296 allowSlideNext = swiper.allowSlideNext, 28297 snapGrid = swiper.snapGrid, 28298 rtl = swiper.rtlTranslate; 28299 28300 var newIndex = void 0; 28301 swiper.allowSlidePrev = true; 28302 swiper.allowSlideNext = true; 28303 28304 var snapTranslate = -snapGrid[activeIndex]; 28305 var diff = snapTranslate - swiper.getTranslate(); 28306 28307 // Fix For Negative Oversliding 28308 if (activeIndex < loopedSlides) { 28309 newIndex = slides.length - loopedSlides * 3 + activeIndex; 28310 newIndex += loopedSlides; 28311 var slideChanged = swiper.slideTo(newIndex, 0, false, true); 28312 if (slideChanged && diff !== 0) { 28313 swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); 28314 } 28315 } else if (params.slidesPerView === 'auto' && activeIndex >= loopedSlides * 2 || activeIndex >= slides.length - loopedSlides) { 28316 // Fix For Positive Oversliding 28317 newIndex = -slides.length + activeIndex + loopedSlides; 28318 newIndex += loopedSlides; 28319 var _slideChanged = swiper.slideTo(newIndex, 0, false, true); 28320 if (_slideChanged && diff !== 0) { 28321 swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); 28322 } 28323 } 28324 swiper.allowSlidePrev = allowSlidePrev; 28325 swiper.allowSlideNext = allowSlideNext; 28326} 28327 28328function loopDestroy() { 28329 var swiper = this; 28330 var $wrapperEl = swiper.$wrapperEl, 28331 params = swiper.params, 28332 slides = swiper.slides; 28333 28334 $wrapperEl.children('.' + params.slideClass + '.' + params.slideDuplicateClass + ',.' + params.slideClass + '.' + params.slideBlankClass).remove(); 28335 slides.removeAttr('data-swiper-slide-index'); 28336} 28337 28338var loop = { 28339 loopCreate: loopCreate, 28340 loopFix: loopFix, 28341 loopDestroy: loopDestroy 28342}; 28343 28344function setGrabCursor(moving) { 28345 var swiper = this; 28346 if (Support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked) return; 28347 var el = swiper.el; 28348 el.style.cursor = 'move'; 28349 el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab'; 28350 el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab'; 28351 el.style.cursor = moving ? 'grabbing' : 'grab'; 28352} 28353 28354function unsetGrabCursor() { 28355 var swiper = this; 28356 if (Support.touch || swiper.params.watchOverflow && swiper.isLocked) return; 28357 swiper.el.style.cursor = ''; 28358} 28359 28360var grabCursor = { 28361 setGrabCursor: setGrabCursor, 28362 unsetGrabCursor: unsetGrabCursor 28363}; 28364 28365function appendSlide(slides) { 28366 var swiper = this; 28367 var $wrapperEl = swiper.$wrapperEl, 28368 params = swiper.params; 28369 28370 if (params.loop) { 28371 swiper.loopDestroy(); 28372 } 28373 if ((typeof slides === 'undefined' ? 'undefined' : _typeof(slides)) === 'object' && 'length' in slides) { 28374 for (var i = 0; i < slides.length; i += 1) { 28375 if (slides[i]) $wrapperEl.append(slides[i]); 28376 } 28377 } else { 28378 $wrapperEl.append(slides); 28379 } 28380 if (params.loop) { 28381 swiper.loopCreate(); 28382 } 28383 if (!(params.observer && Support.observer)) { 28384 swiper.update(); 28385 } 28386} 28387 28388function prependSlide(slides) { 28389 var swiper = this; 28390 var params = swiper.params, 28391 $wrapperEl = swiper.$wrapperEl, 28392 activeIndex = swiper.activeIndex; 28393 28394 28395 if (params.loop) { 28396 swiper.loopDestroy(); 28397 } 28398 var newActiveIndex = activeIndex + 1; 28399 if ((typeof slides === 'undefined' ? 'undefined' : _typeof(slides)) === 'object' && 'length' in slides) { 28400 for (var i = 0; i < slides.length; i += 1) { 28401 if (slides[i]) $wrapperEl.prepend(slides[i]); 28402 } 28403 newActiveIndex = activeIndex + slides.length; 28404 } else { 28405 $wrapperEl.prepend(slides); 28406 } 28407 if (params.loop) { 28408 swiper.loopCreate(); 28409 } 28410 if (!(params.observer && Support.observer)) { 28411 swiper.update(); 28412 } 28413 swiper.slideTo(newActiveIndex, 0, false); 28414} 28415 28416function addSlide(index$$1, slides) { 28417 var swiper = this; 28418 var $wrapperEl = swiper.$wrapperEl, 28419 params = swiper.params, 28420 activeIndex = swiper.activeIndex; 28421 28422 var activeIndexBuffer = activeIndex; 28423 if (params.loop) { 28424 activeIndexBuffer -= swiper.loopedSlides; 28425 swiper.loopDestroy(); 28426 swiper.slides = $wrapperEl.children('.' + params.slideClass); 28427 } 28428 var baseLength = swiper.slides.length; 28429 if (index$$1 <= 0) { 28430 swiper.prependSlide(slides); 28431 return; 28432 } 28433 if (index$$1 >= baseLength) { 28434 swiper.appendSlide(slides); 28435 return; 28436 } 28437 var newActiveIndex = activeIndexBuffer > index$$1 ? activeIndexBuffer + 1 : activeIndexBuffer; 28438 28439 var slidesBuffer = []; 28440 for (var i = baseLength - 1; i >= index$$1; i -= 1) { 28441 var currentSlide = swiper.slides.eq(i); 28442 currentSlide.remove(); 28443 slidesBuffer.unshift(currentSlide); 28444 } 28445 28446 if ((typeof slides === 'undefined' ? 'undefined' : _typeof(slides)) === 'object' && 'length' in slides) { 28447 for (var _i5 = 0; _i5 < slides.length; _i5 += 1) { 28448 if (slides[_i5]) $wrapperEl.append(slides[_i5]); 28449 } 28450 newActiveIndex = activeIndexBuffer > index$$1 ? activeIndexBuffer + slides.length : activeIndexBuffer; 28451 } else { 28452 $wrapperEl.append(slides); 28453 } 28454 28455 for (var _i6 = 0; _i6 < slidesBuffer.length; _i6 += 1) { 28456 $wrapperEl.append(slidesBuffer[_i6]); 28457 } 28458 28459 if (params.loop) { 28460 swiper.loopCreate(); 28461 } 28462 if (!(params.observer && Support.observer)) { 28463 swiper.update(); 28464 } 28465 if (params.loop) { 28466 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 28467 } else { 28468 swiper.slideTo(newActiveIndex, 0, false); 28469 } 28470} 28471 28472function removeSlide(slidesIndexes) { 28473 var swiper = this; 28474 var params = swiper.params, 28475 $wrapperEl = swiper.$wrapperEl, 28476 activeIndex = swiper.activeIndex; 28477 28478 28479 var activeIndexBuffer = activeIndex; 28480 if (params.loop) { 28481 activeIndexBuffer -= swiper.loopedSlides; 28482 swiper.loopDestroy(); 28483 swiper.slides = $wrapperEl.children('.' + params.slideClass); 28484 } 28485 var newActiveIndex = activeIndexBuffer; 28486 var indexToRemove = void 0; 28487 28488 if ((typeof slidesIndexes === 'undefined' ? 'undefined' : _typeof(slidesIndexes)) === 'object' && 'length' in slidesIndexes) { 28489 for (var i = 0; i < slidesIndexes.length; i += 1) { 28490 indexToRemove = slidesIndexes[i]; 28491 if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove(); 28492 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 28493 } 28494 newActiveIndex = Math.max(newActiveIndex, 0); 28495 } else { 28496 indexToRemove = slidesIndexes; 28497 if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove(); 28498 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 28499 newActiveIndex = Math.max(newActiveIndex, 0); 28500 } 28501 28502 if (params.loop) { 28503 swiper.loopCreate(); 28504 } 28505 28506 if (!(params.observer && Support.observer)) { 28507 swiper.update(); 28508 } 28509 if (params.loop) { 28510 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 28511 } else { 28512 swiper.slideTo(newActiveIndex, 0, false); 28513 } 28514} 28515 28516function removeAllSlides() { 28517 var swiper = this; 28518 28519 var slidesIndexes = []; 28520 for (var i = 0; i < swiper.slides.length; i += 1) { 28521 slidesIndexes.push(i); 28522 } 28523 swiper.removeSlide(slidesIndexes); 28524} 28525 28526var manipulation = { 28527 appendSlide: appendSlide, 28528 prependSlide: prependSlide, 28529 addSlide: addSlide, 28530 removeSlide: removeSlide, 28531 removeAllSlides: removeAllSlides 28532}; 28533 28534var Device = function Device() { 28535 var ua = ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].navigator.userAgent; 28536 28537 var device = { 28538 ios: false, 28539 android: false, 28540 androidChrome: false, 28541 desktop: false, 28542 windows: false, 28543 iphone: false, 28544 ipod: false, 28545 ipad: false, 28546 cordova: ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].cordova || ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].phonegap, 28547 phonegap: ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].cordova || ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].phonegap 28548 }; 28549 28550 var windows = ua.match(/(Windows Phone);?[\s\/]+([\d.]+)?/); // eslint-disable-line 28551 var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line 28552 var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); 28553 var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); 28554 var iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); 28555 28556 // Windows 28557 if (windows) { 28558 device.os = 'windows'; 28559 device.osVersion = windows[2]; 28560 device.windows = true; 28561 } 28562 // Android 28563 if (android && !windows) { 28564 device.os = 'android'; 28565 device.osVersion = android[2]; 28566 device.android = true; 28567 device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0; 28568 } 28569 if (ipad || iphone || ipod) { 28570 device.os = 'ios'; 28571 device.ios = true; 28572 } 28573 // iOS 28574 if (iphone && !ipod) { 28575 device.osVersion = iphone[2].replace(/_/g, '.'); 28576 device.iphone = true; 28577 } 28578 if (ipad) { 28579 device.osVersion = ipad[2].replace(/_/g, '.'); 28580 device.ipad = true; 28581 } 28582 if (ipod) { 28583 device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null; 28584 device.iphone = true; 28585 } 28586 // iOS 8+ changed UA 28587 if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) { 28588 if (device.osVersion.split('.')[0] === '10') { 28589 device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0]; 28590 } 28591 } 28592 28593 // Desktop 28594 device.desktop = !(device.os || device.android || device.webView); 28595 28596 // Webview 28597 device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i); 28598 28599 // Minimal UI 28600 if (device.os && device.os === 'ios') { 28601 var osVersionArr = device.osVersion.split('.'); 28602 var metaViewport = ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].querySelector('meta[name="viewport"]'); 28603 device.minimalUi = !device.webView && (ipod || iphone) && (osVersionArr[0] * 1 === 7 ? osVersionArr[1] * 1 >= 1 : osVersionArr[0] * 1 > 7) && metaViewport && metaViewport.getAttribute('content').indexOf('minimal-ui') >= 0; 28604 } 28605 28606 // Pixel Ratio 28607 device.pixelRatio = ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].devicePixelRatio || 1; 28608 28609 // Export object 28610 return device; 28611}(); 28612 28613function onTouchStart(event) { 28614 var swiper = this; 28615 var data$$1 = swiper.touchEventsData; 28616 var params = swiper.params, 28617 touches = swiper.touches; 28618 28619 if (swiper.animating && params.preventInteractionOnTransition) { 28620 return; 28621 } 28622 var e = event; 28623 if (e.originalEvent) e = e.originalEvent; 28624 data$$1.isTouchEvent = e.type === 'touchstart'; 28625 if (!data$$1.isTouchEvent && 'which' in e && e.which === 3) return; 28626 if (!data$$1.isTouchEvent && 'button' in e && e.button > 0) return; 28627 if (data$$1.isTouched && data$$1.isMoved) return; 28628 if (params.noSwiping && Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(e.target).closest(params.noSwipingSelector ? params.noSwipingSelector : '.' + params.noSwipingClass)[0]) { 28629 swiper.allowClick = true; 28630 return; 28631 } 28632 if (params.swipeHandler) { 28633 if (!Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(e).closest(params.swipeHandler)[0]) return; 28634 } 28635 28636 touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; 28637 touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; 28638 var startX = touches.currentX; 28639 var startY = touches.currentY; 28640 28641 // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore 28642 28643 var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection; 28644 var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold; 28645 if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].screen.width - edgeSwipeThreshold)) { 28646 return; 28647 } 28648 28649 Utils.extend(data$$1, { 28650 isTouched: true, 28651 isMoved: false, 28652 allowTouchCallbacks: true, 28653 isScrolling: undefined, 28654 startMoving: undefined 28655 }); 28656 28657 touches.startX = startX; 28658 touches.startY = startY; 28659 data$$1.touchStartTime = Utils.now(); 28660 swiper.allowClick = true; 28661 swiper.updateSize(); 28662 swiper.swipeDirection = undefined; 28663 if (params.threshold > 0) data$$1.allowThresholdMove = false; 28664 if (e.type !== 'touchstart') { 28665 var preventDefault = true; 28666 if (Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(e.target).is(data$$1.formElements)) preventDefault = false; 28667 if (ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].activeElement && Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].activeElement).is(data$$1.formElements) && ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].activeElement !== e.target) { 28668 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].activeElement.blur(); 28669 } 28670 28671 var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; 28672 if (params.touchStartForcePreventDefault || shouldPreventDefault) { 28673 e.preventDefault(); 28674 } 28675 } 28676 swiper.emit('touchStart', e); 28677} 28678 28679function onTouchMove(event) { 28680 var swiper = this; 28681 var data$$1 = swiper.touchEventsData; 28682 var params = swiper.params, 28683 touches = swiper.touches, 28684 rtl = swiper.rtlTranslate; 28685 28686 var e = event; 28687 if (e.originalEvent) e = e.originalEvent; 28688 if (!data$$1.isTouched) { 28689 if (data$$1.startMoving && data$$1.isScrolling) { 28690 swiper.emit('touchMoveOpposite', e); 28691 } 28692 return; 28693 } 28694 if (data$$1.isTouchEvent && e.type === 'mousemove') return; 28695 var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; 28696 var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; 28697 if (e.preventedByNestedSwiper) { 28698 touches.startX = pageX; 28699 touches.startY = pageY; 28700 return; 28701 } 28702 if (!swiper.allowTouchMove) { 28703 // isMoved = true; 28704 swiper.allowClick = false; 28705 if (data$$1.isTouched) { 28706 Utils.extend(touches, { 28707 startX: pageX, 28708 startY: pageY, 28709 currentX: pageX, 28710 currentY: pageY 28711 }); 28712 data$$1.touchStartTime = Utils.now(); 28713 } 28714 return; 28715 } 28716 if (data$$1.isTouchEvent && params.touchReleaseOnEdges && !params.loop) { 28717 if (swiper.isVertical()) { 28718 // Vertical 28719 if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) { 28720 data$$1.isTouched = false; 28721 data$$1.isMoved = false; 28722 return; 28723 } 28724 } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) { 28725 return; 28726 } 28727 } 28728 if (data$$1.isTouchEvent && ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].activeElement) { 28729 if (e.target === ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].activeElement && Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(e.target).is(data$$1.formElements)) { 28730 data$$1.isMoved = true; 28731 swiper.allowClick = false; 28732 return; 28733 } 28734 } 28735 if (data$$1.allowTouchCallbacks) { 28736 swiper.emit('touchMove', e); 28737 } 28738 if (e.targetTouches && e.targetTouches.length > 1) return; 28739 28740 touches.currentX = pageX; 28741 touches.currentY = pageY; 28742 28743 var diffX = touches.currentX - touches.startX; 28744 var diffY = touches.currentY - touches.startY; 28745 if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return; 28746 28747 if (typeof data$$1.isScrolling === 'undefined') { 28748 var touchAngle = void 0; 28749 if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) { 28750 data$$1.isScrolling = false; 28751 } else { 28752 // eslint-disable-next-line 28753 if (diffX * diffX + diffY * diffY >= 25) { 28754 touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI; 28755 data$$1.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle; 28756 } 28757 } 28758 } 28759 if (data$$1.isScrolling) { 28760 swiper.emit('touchMoveOpposite', e); 28761 } 28762 if (typeof data$$1.startMoving === 'undefined') { 28763 if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { 28764 data$$1.startMoving = true; 28765 } 28766 } 28767 if (data$$1.isScrolling) { 28768 data$$1.isTouched = false; 28769 return; 28770 } 28771 if (!data$$1.startMoving) { 28772 return; 28773 } 28774 swiper.allowClick = false; 28775 e.preventDefault(); 28776 if (params.touchMoveStopPropagation && !params.nested) { 28777 e.stopPropagation(); 28778 } 28779 28780 if (!data$$1.isMoved) { 28781 if (params.loop) { 28782 swiper.loopFix(); 28783 } 28784 data$$1.startTranslate = swiper.getTranslate(); 28785 swiper.setTransition(0); 28786 if (swiper.animating) { 28787 swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend'); 28788 } 28789 data$$1.allowMomentumBounce = false; 28790 // Grab Cursor 28791 if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 28792 swiper.setGrabCursor(true); 28793 } 28794 swiper.emit('sliderFirstMove', e); 28795 } 28796 swiper.emit('sliderMove', e); 28797 data$$1.isMoved = true; 28798 28799 var diff = swiper.isHorizontal() ? diffX : diffY; 28800 touches.diff = diff; 28801 28802 diff *= params.touchRatio; 28803 if (rtl) diff = -diff; 28804 28805 swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; 28806 data$$1.currentTranslate = diff + data$$1.startTranslate; 28807 28808 var disableParentSwiper = true; 28809 var resistanceRatio = params.resistanceRatio; 28810 if (params.touchReleaseOnEdges) { 28811 resistanceRatio = 0; 28812 } 28813 if (diff > 0 && data$$1.currentTranslate > swiper.minTranslate()) { 28814 disableParentSwiper = false; 28815 if (params.resistance) data$$1.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data$$1.startTranslate + diff, resistanceRatio); 28816 } else if (diff < 0 && data$$1.currentTranslate < swiper.maxTranslate()) { 28817 disableParentSwiper = false; 28818 if (params.resistance) data$$1.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data$$1.startTranslate - diff, resistanceRatio); 28819 } 28820 28821 if (disableParentSwiper) { 28822 e.preventedByNestedSwiper = true; 28823 } 28824 28825 // Directions locks 28826 if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data$$1.currentTranslate < data$$1.startTranslate) { 28827 data$$1.currentTranslate = data$$1.startTranslate; 28828 } 28829 if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data$$1.currentTranslate > data$$1.startTranslate) { 28830 data$$1.currentTranslate = data$$1.startTranslate; 28831 } 28832 28833 // Threshold 28834 if (params.threshold > 0) { 28835 if (Math.abs(diff) > params.threshold || data$$1.allowThresholdMove) { 28836 if (!data$$1.allowThresholdMove) { 28837 data$$1.allowThresholdMove = true; 28838 touches.startX = touches.currentX; 28839 touches.startY = touches.currentY; 28840 data$$1.currentTranslate = data$$1.startTranslate; 28841 touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; 28842 return; 28843 } 28844 } else { 28845 data$$1.currentTranslate = data$$1.startTranslate; 28846 return; 28847 } 28848 } 28849 28850 if (!params.followFinger) return; 28851 28852 // Update active index in free mode 28853 if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) { 28854 swiper.updateActiveIndex(); 28855 swiper.updateSlidesClasses(); 28856 } 28857 if (params.freeMode) { 28858 // Velocity 28859 if (data$$1.velocities.length === 0) { 28860 data$$1.velocities.push({ 28861 position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], 28862 time: data$$1.touchStartTime 28863 }); 28864 } 28865 data$$1.velocities.push({ 28866 position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], 28867 time: Utils.now() 28868 }); 28869 } 28870 // Update progress 28871 swiper.updateProgress(data$$1.currentTranslate); 28872 // Update translate 28873 swiper.setTranslate(data$$1.currentTranslate); 28874} 28875 28876function onTouchEnd(event) { 28877 var swiper = this; 28878 var data$$1 = swiper.touchEventsData; 28879 28880 var params = swiper.params, 28881 touches = swiper.touches, 28882 rtl = swiper.rtlTranslate, 28883 $wrapperEl = swiper.$wrapperEl, 28884 slidesGrid = swiper.slidesGrid, 28885 snapGrid = swiper.snapGrid; 28886 28887 var e = event; 28888 if (e.originalEvent) e = e.originalEvent; 28889 if (data$$1.allowTouchCallbacks) { 28890 swiper.emit('touchEnd', e); 28891 } 28892 data$$1.allowTouchCallbacks = false; 28893 if (!data$$1.isTouched) { 28894 if (data$$1.isMoved && params.grabCursor) { 28895 swiper.setGrabCursor(false); 28896 } 28897 data$$1.isMoved = false; 28898 data$$1.startMoving = false; 28899 return; 28900 } 28901 // Return Grab Cursor 28902 if (params.grabCursor && data$$1.isMoved && data$$1.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 28903 swiper.setGrabCursor(false); 28904 } 28905 28906 // Time diff 28907 var touchEndTime = Utils.now(); 28908 var timeDiff = touchEndTime - data$$1.touchStartTime; 28909 28910 // Tap, doubleTap, Click 28911 if (swiper.allowClick) { 28912 swiper.updateClickedSlide(e); 28913 swiper.emit('tap', e); 28914 if (timeDiff < 300 && touchEndTime - data$$1.lastClickTime > 300) { 28915 if (data$$1.clickTimeout) clearTimeout(data$$1.clickTimeout); 28916 data$$1.clickTimeout = Utils.nextTick(function () { 28917 if (!swiper || swiper.destroyed) return; 28918 swiper.emit('click', e); 28919 }, 300); 28920 } 28921 if (timeDiff < 300 && touchEndTime - data$$1.lastClickTime < 300) { 28922 if (data$$1.clickTimeout) clearTimeout(data$$1.clickTimeout); 28923 swiper.emit('doubleTap', e); 28924 } 28925 } 28926 28927 data$$1.lastClickTime = Utils.now(); 28928 Utils.nextTick(function () { 28929 if (!swiper.destroyed) swiper.allowClick = true; 28930 }); 28931 28932 if (!data$$1.isTouched || !data$$1.isMoved || !swiper.swipeDirection || touches.diff === 0 || data$$1.currentTranslate === data$$1.startTranslate) { 28933 data$$1.isTouched = false; 28934 data$$1.isMoved = false; 28935 data$$1.startMoving = false; 28936 return; 28937 } 28938 data$$1.isTouched = false; 28939 data$$1.isMoved = false; 28940 data$$1.startMoving = false; 28941 28942 var currentPos = void 0; 28943 if (params.followFinger) { 28944 currentPos = rtl ? swiper.translate : -swiper.translate; 28945 } else { 28946 currentPos = -data$$1.currentTranslate; 28947 } 28948 28949 if (params.freeMode) { 28950 if (currentPos < -swiper.minTranslate()) { 28951 swiper.slideTo(swiper.activeIndex); 28952 return; 28953 } 28954 if (currentPos > -swiper.maxTranslate()) { 28955 if (swiper.slides.length < snapGrid.length) { 28956 swiper.slideTo(snapGrid.length - 1); 28957 } else { 28958 swiper.slideTo(swiper.slides.length - 1); 28959 } 28960 return; 28961 } 28962 28963 if (params.freeModeMomentum) { 28964 if (data$$1.velocities.length > 1) { 28965 var lastMoveEvent = data$$1.velocities.pop(); 28966 var velocityEvent = data$$1.velocities.pop(); 28967 28968 var distance = lastMoveEvent.position - velocityEvent.position; 28969 var time = lastMoveEvent.time - velocityEvent.time; 28970 swiper.velocity = distance / time; 28971 swiper.velocity /= 2; 28972 if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) { 28973 swiper.velocity = 0; 28974 } 28975 // this implies that the user stopped moving a finger then released. 28976 // There would be no events with distance zero, so the last event is stale. 28977 if (time > 150 || Utils.now() - lastMoveEvent.time > 300) { 28978 swiper.velocity = 0; 28979 } 28980 } else { 28981 swiper.velocity = 0; 28982 } 28983 swiper.velocity *= params.freeModeMomentumVelocityRatio; 28984 28985 data$$1.velocities.length = 0; 28986 var momentumDuration = 1000 * params.freeModeMomentumRatio; 28987 var momentumDistance = swiper.velocity * momentumDuration; 28988 28989 var newPosition = swiper.translate + momentumDistance; 28990 if (rtl) newPosition = -newPosition; 28991 28992 var doBounce = false; 28993 var afterBouncePosition = void 0; 28994 var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio; 28995 var needsLoopFix = void 0; 28996 if (newPosition < swiper.maxTranslate()) { 28997 if (params.freeModeMomentumBounce) { 28998 if (newPosition + swiper.maxTranslate() < -bounceAmount) { 28999 newPosition = swiper.maxTranslate() - bounceAmount; 29000 } 29001 afterBouncePosition = swiper.maxTranslate(); 29002 doBounce = true; 29003 data$$1.allowMomentumBounce = true; 29004 } else { 29005 newPosition = swiper.maxTranslate(); 29006 } 29007 if (params.loop && params.centeredSlides) needsLoopFix = true; 29008 } else if (newPosition > swiper.minTranslate()) { 29009 if (params.freeModeMomentumBounce) { 29010 if (newPosition - swiper.minTranslate() > bounceAmount) { 29011 newPosition = swiper.minTranslate() + bounceAmount; 29012 } 29013 afterBouncePosition = swiper.minTranslate(); 29014 doBounce = true; 29015 data$$1.allowMomentumBounce = true; 29016 } else { 29017 newPosition = swiper.minTranslate(); 29018 } 29019 if (params.loop && params.centeredSlides) needsLoopFix = true; 29020 } else if (params.freeModeSticky) { 29021 var nextSlide = void 0; 29022 for (var j = 0; j < snapGrid.length; j += 1) { 29023 if (snapGrid[j] > -newPosition) { 29024 nextSlide = j; 29025 break; 29026 } 29027 } 29028 29029 if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { 29030 newPosition = snapGrid[nextSlide]; 29031 } else { 29032 newPosition = snapGrid[nextSlide - 1]; 29033 } 29034 newPosition = -newPosition; 29035 } 29036 if (needsLoopFix) { 29037 swiper.once('transitionEnd', function () { 29038 swiper.loopFix(); 29039 }); 29040 } 29041 // Fix duration 29042 if (swiper.velocity !== 0) { 29043 if (rtl) { 29044 momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); 29045 } else { 29046 momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); 29047 } 29048 } else if (params.freeModeSticky) { 29049 swiper.slideToClosest(); 29050 return; 29051 } 29052 29053 if (params.freeModeMomentumBounce && doBounce) { 29054 swiper.updateProgress(afterBouncePosition); 29055 swiper.setTransition(momentumDuration); 29056 swiper.setTranslate(newPosition); 29057 swiper.transitionStart(true, swiper.swipeDirection); 29058 swiper.animating = true; 29059 $wrapperEl.transitionEnd(function () { 29060 if (!swiper || swiper.destroyed || !data$$1.allowMomentumBounce) return; 29061 swiper.emit('momentumBounce'); 29062 29063 swiper.setTransition(params.speed); 29064 swiper.setTranslate(afterBouncePosition); 29065 $wrapperEl.transitionEnd(function () { 29066 if (!swiper || swiper.destroyed) return; 29067 swiper.transitionEnd(); 29068 }); 29069 }); 29070 } else if (swiper.velocity) { 29071 swiper.updateProgress(newPosition); 29072 swiper.setTransition(momentumDuration); 29073 swiper.setTranslate(newPosition); 29074 swiper.transitionStart(true, swiper.swipeDirection); 29075 if (!swiper.animating) { 29076 swiper.animating = true; 29077 $wrapperEl.transitionEnd(function () { 29078 if (!swiper || swiper.destroyed) return; 29079 swiper.transitionEnd(); 29080 }); 29081 } 29082 } else { 29083 swiper.updateProgress(newPosition); 29084 } 29085 29086 swiper.updateActiveIndex(); 29087 swiper.updateSlidesClasses(); 29088 } else if (params.freeModeSticky) { 29089 swiper.slideToClosest(); 29090 return; 29091 } 29092 29093 if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) { 29094 swiper.updateProgress(); 29095 swiper.updateActiveIndex(); 29096 swiper.updateSlidesClasses(); 29097 } 29098 return; 29099 } 29100 29101 // Find current slide 29102 var stopIndex = 0; 29103 var groupSize = swiper.slidesSizesGrid[0]; 29104 for (var i = 0; i < slidesGrid.length; i += params.slidesPerGroup) { 29105 if (typeof slidesGrid[i + params.slidesPerGroup] !== 'undefined') { 29106 if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + params.slidesPerGroup]) { 29107 stopIndex = i; 29108 groupSize = slidesGrid[i + params.slidesPerGroup] - slidesGrid[i]; 29109 } 29110 } else if (currentPos >= slidesGrid[i]) { 29111 stopIndex = i; 29112 groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; 29113 } 29114 } 29115 29116 // Find current slide size 29117 var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; 29118 29119 if (timeDiff > params.longSwipesMs) { 29120 // Long touches 29121 if (!params.longSwipes) { 29122 swiper.slideTo(swiper.activeIndex); 29123 return; 29124 } 29125 if (swiper.swipeDirection === 'next') { 29126 if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + params.slidesPerGroup);else swiper.slideTo(stopIndex); 29127 } 29128 if (swiper.swipeDirection === 'prev') { 29129 if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + params.slidesPerGroup);else swiper.slideTo(stopIndex); 29130 } 29131 } else { 29132 // Short swipes 29133 if (!params.shortSwipes) { 29134 swiper.slideTo(swiper.activeIndex); 29135 return; 29136 } 29137 if (swiper.swipeDirection === 'next') { 29138 swiper.slideTo(stopIndex + params.slidesPerGroup); 29139 } 29140 if (swiper.swipeDirection === 'prev') { 29141 swiper.slideTo(stopIndex); 29142 } 29143 } 29144} 29145 29146function onResize() { 29147 var swiper = this; 29148 29149 var params = swiper.params, 29150 el = swiper.el; 29151 29152 29153 if (el && el.offsetWidth === 0) return; 29154 29155 // Breakpoints 29156 if (params.breakpoints) { 29157 swiper.setBreakpoint(); 29158 } 29159 29160 // Save locks 29161 var allowSlideNext = swiper.allowSlideNext, 29162 allowSlidePrev = swiper.allowSlidePrev, 29163 snapGrid = swiper.snapGrid; 29164 29165 // Disable locks on resize 29166 29167 swiper.allowSlideNext = true; 29168 swiper.allowSlidePrev = true; 29169 29170 swiper.updateSize(); 29171 swiper.updateSlides(); 29172 29173 if (params.freeMode) { 29174 var newTranslate = Math.min(Math.max(swiper.translate, swiper.maxTranslate()), swiper.minTranslate()); 29175 swiper.setTranslate(newTranslate); 29176 swiper.updateActiveIndex(); 29177 swiper.updateSlidesClasses(); 29178 29179 if (params.autoHeight) { 29180 swiper.updateAutoHeight(); 29181 } 29182 } else { 29183 swiper.updateSlidesClasses(); 29184 if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { 29185 swiper.slideTo(swiper.slides.length - 1, 0, false, true); 29186 } else { 29187 swiper.slideTo(swiper.activeIndex, 0, false, true); 29188 } 29189 } 29190 // Return locks after resize 29191 swiper.allowSlidePrev = allowSlidePrev; 29192 swiper.allowSlideNext = allowSlideNext; 29193 29194 if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { 29195 swiper.checkOverflow(); 29196 } 29197} 29198 29199function onClick(e) { 29200 var swiper = this; 29201 if (!swiper.allowClick) { 29202 if (swiper.params.preventClicks) e.preventDefault(); 29203 if (swiper.params.preventClicksPropagation && swiper.animating) { 29204 e.stopPropagation(); 29205 e.stopImmediatePropagation(); 29206 } 29207 } 29208} 29209 29210function attachEvents() { 29211 var swiper = this; 29212 var params = swiper.params, 29213 touchEvents = swiper.touchEvents, 29214 el = swiper.el, 29215 wrapperEl = swiper.wrapperEl; 29216 29217 29218 { 29219 swiper.onTouchStart = onTouchStart.bind(swiper); 29220 swiper.onTouchMove = onTouchMove.bind(swiper); 29221 swiper.onTouchEnd = onTouchEnd.bind(swiper); 29222 } 29223 29224 swiper.onClick = onClick.bind(swiper); 29225 29226 var target = params.touchEventsTarget === 'container' ? el : wrapperEl; 29227 var capture = !!params.nested; 29228 29229 // Touch Events 29230 { 29231 if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { 29232 target.addEventListener(touchEvents.start, swiper.onTouchStart, false); 29233 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].addEventListener(touchEvents.move, swiper.onTouchMove, capture); 29234 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].addEventListener(touchEvents.end, swiper.onTouchEnd, false); 29235 } else { 29236 if (Support.touch) { 29237 var passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; 29238 target.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener); 29239 target.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture: capture } : capture); 29240 target.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener); 29241 } 29242 if (params.simulateTouch && !Device.ios && !Device.android || params.simulateTouch && !Support.touch && Device.ios) { 29243 target.addEventListener('mousedown', swiper.onTouchStart, false); 29244 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].addEventListener('mousemove', swiper.onTouchMove, capture); 29245 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].addEventListener('mouseup', swiper.onTouchEnd, false); 29246 } 29247 } 29248 // Prevent Links Clicks 29249 if (params.preventClicks || params.preventClicksPropagation) { 29250 target.addEventListener('click', swiper.onClick, true); 29251 } 29252 } 29253 29254 // Resize handler 29255 swiper.on(Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true); 29256} 29257 29258function detachEvents() { 29259 var swiper = this; 29260 29261 var params = swiper.params, 29262 touchEvents = swiper.touchEvents, 29263 el = swiper.el, 29264 wrapperEl = swiper.wrapperEl; 29265 29266 29267 var target = params.touchEventsTarget === 'container' ? el : wrapperEl; 29268 var capture = !!params.nested; 29269 29270 // Touch Events 29271 { 29272 if (!Support.touch && (Support.pointerEvents || Support.prefixedPointerEvents)) { 29273 target.removeEventListener(touchEvents.start, swiper.onTouchStart, false); 29274 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].removeEventListener(touchEvents.move, swiper.onTouchMove, capture); 29275 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].removeEventListener(touchEvents.end, swiper.onTouchEnd, false); 29276 } else { 29277 if (Support.touch) { 29278 var passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; 29279 target.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener); 29280 target.removeEventListener(touchEvents.move, swiper.onTouchMove, capture); 29281 target.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener); 29282 } 29283 if (params.simulateTouch && !Device.ios && !Device.android || params.simulateTouch && !Support.touch && Device.ios) { 29284 target.removeEventListener('mousedown', swiper.onTouchStart, false); 29285 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].removeEventListener('mousemove', swiper.onTouchMove, capture); 29286 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].removeEventListener('mouseup', swiper.onTouchEnd, false); 29287 } 29288 } 29289 // Prevent Links Clicks 29290 if (params.preventClicks || params.preventClicksPropagation) { 29291 target.removeEventListener('click', swiper.onClick, true); 29292 } 29293 } 29294 29295 // Resize handler 29296 swiper.off(Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize); 29297} 29298 29299var events = { 29300 attachEvents: attachEvents, 29301 detachEvents: detachEvents 29302}; 29303 29304function setBreakpoint() { 29305 var swiper = this; 29306 var activeIndex = swiper.activeIndex, 29307 initialized = swiper.initialized, 29308 _swiper$loopedSlides = swiper.loopedSlides, 29309 loopedSlides = _swiper$loopedSlides === undefined ? 0 : _swiper$loopedSlides, 29310 params = swiper.params; 29311 29312 var breakpoints = params.breakpoints; 29313 if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; 29314 29315 // Set breakpoint for window width and update parameters 29316 var breakpoint = swiper.getBreakpoint(breakpoints); 29317 29318 if (breakpoint && swiper.currentBreakpoint !== breakpoint) { 29319 var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; 29320 if (breakpointOnlyParams) { 29321 ['slidesPerView', 'spaceBetween', 'slidesPerGroup'].forEach(function (param) { 29322 var paramValue = breakpointOnlyParams[param]; 29323 if (typeof paramValue === 'undefined') return; 29324 if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) { 29325 breakpointOnlyParams[param] = 'auto'; 29326 } else if (param === 'slidesPerView') { 29327 breakpointOnlyParams[param] = parseFloat(paramValue); 29328 } else { 29329 breakpointOnlyParams[param] = parseInt(paramValue, 10); 29330 } 29331 }); 29332 } 29333 29334 var breakpointParams = breakpointOnlyParams || swiper.originalParams; 29335 var needsReLoop = params.loop && breakpointParams.slidesPerView !== params.slidesPerView; 29336 29337 Utils.extend(swiper.params, breakpointParams); 29338 29339 Utils.extend(swiper, { 29340 allowTouchMove: swiper.params.allowTouchMove, 29341 allowSlideNext: swiper.params.allowSlideNext, 29342 allowSlidePrev: swiper.params.allowSlidePrev 29343 }); 29344 29345 swiper.currentBreakpoint = breakpoint; 29346 29347 if (needsReLoop && initialized) { 29348 swiper.loopDestroy(); 29349 swiper.loopCreate(); 29350 swiper.updateSlides(); 29351 swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false); 29352 } 29353 swiper.emit('breakpoint', breakpointParams); 29354 } 29355} 29356 29357function getBreakpoint(breakpoints) { 29358 var swiper = this; 29359 // Get breakpoint for window width 29360 if (!breakpoints) return undefined; 29361 var breakpoint = false; 29362 var points = []; 29363 Object.keys(breakpoints).forEach(function (point) { 29364 points.push(point); 29365 }); 29366 points.sort(function (a, b) { 29367 return parseInt(a, 10) - parseInt(b, 10); 29368 }); 29369 for (var i = 0; i < points.length; i += 1) { 29370 var point = points[i]; 29371 if (swiper.params.breakpointsInverse) { 29372 if (point <= ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].innerWidth) { 29373 breakpoint = point; 29374 } 29375 } else if (point >= ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].innerWidth && !breakpoint) { 29376 breakpoint = point; 29377 } 29378 } 29379 return breakpoint || 'max'; 29380} 29381 29382var breakpoints = { setBreakpoint: setBreakpoint, getBreakpoint: getBreakpoint }; 29383 29384var Browser = function Browser() { 29385 function isSafari() { 29386 var ua = ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].navigator.userAgent.toLowerCase(); 29387 return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0; 29388 } 29389 return { 29390 isIE: !!ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].navigator.userAgent.match(/Trident/g) || !!ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].navigator.userAgent.match(/MSIE/g), 29391 isEdge: !!ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].navigator.userAgent.match(/Edge/g), 29392 isSafari: isSafari(), 29393 isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].navigator.userAgent) 29394 }; 29395}(); 29396 29397function addClasses() { 29398 var swiper = this; 29399 var classNames = swiper.classNames, 29400 params = swiper.params, 29401 rtl = swiper.rtl, 29402 $el = swiper.$el; 29403 29404 var suffixes = []; 29405 29406 suffixes.push(params.direction); 29407 29408 if (params.freeMode) { 29409 suffixes.push('free-mode'); 29410 } 29411 if (!Support.flexbox) { 29412 suffixes.push('no-flexbox'); 29413 } 29414 if (params.autoHeight) { 29415 suffixes.push('autoheight'); 29416 } 29417 if (rtl) { 29418 suffixes.push('rtl'); 29419 } 29420 if (params.slidesPerColumn > 1) { 29421 suffixes.push('multirow'); 29422 } 29423 if (Device.android) { 29424 suffixes.push('android'); 29425 } 29426 if (Device.ios) { 29427 suffixes.push('ios'); 29428 } 29429 // WP8 Touch Events Fix 29430 if ((Browser.isIE || Browser.isEdge) && (Support.pointerEvents || Support.prefixedPointerEvents)) { 29431 suffixes.push('wp8-' + params.direction); 29432 } 29433 29434 suffixes.forEach(function (suffix) { 29435 classNames.push(params.containerModifierClass + suffix); 29436 }); 29437 29438 $el.addClass(classNames.join(' ')); 29439} 29440 29441function removeClasses() { 29442 var swiper = this; 29443 var $el = swiper.$el, 29444 classNames = swiper.classNames; 29445 29446 29447 $el.removeClass(classNames.join(' ')); 29448} 29449 29450var classes = { addClasses: addClasses, removeClasses: removeClasses }; 29451 29452function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) { 29453 var image = void 0; 29454 function onReady() { 29455 if (callback) callback(); 29456 } 29457 if (!imageEl.complete || !checkForComplete) { 29458 if (src) { 29459 image = new ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].Image(); 29460 image.onload = onReady; 29461 image.onerror = onReady; 29462 if (sizes) { 29463 image.sizes = sizes; 29464 } 29465 if (srcset) { 29466 image.srcset = srcset; 29467 } 29468 if (src) { 29469 image.src = src; 29470 } 29471 } else { 29472 onReady(); 29473 } 29474 } else { 29475 // image already loaded... 29476 onReady(); 29477 } 29478} 29479 29480function preloadImages() { 29481 var swiper = this; 29482 swiper.imagesToLoad = swiper.$el.find('img'); 29483 function onReady() { 29484 if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return; 29485 if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1; 29486 if (swiper.imagesLoaded === swiper.imagesToLoad.length) { 29487 if (swiper.params.updateOnImagesReady) swiper.update(); 29488 swiper.emit('imagesReady'); 29489 } 29490 } 29491 for (var i = 0; i < swiper.imagesToLoad.length; i += 1) { 29492 var imageEl = swiper.imagesToLoad[i]; 29493 swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady); 29494 } 29495} 29496 29497var images = { 29498 loadImage: loadImage, 29499 preloadImages: preloadImages 29500}; 29501 29502function checkOverflow() { 29503 var swiper = this; 29504 var wasLocked = swiper.isLocked; 29505 29506 swiper.isLocked = swiper.snapGrid.length === 1; 29507 swiper.allowSlideNext = !swiper.isLocked; 29508 swiper.allowSlidePrev = !swiper.isLocked; 29509 29510 // events 29511 if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); 29512 29513 if (wasLocked && wasLocked !== swiper.isLocked) { 29514 swiper.isEnd = false; 29515 swiper.navigation.update(); 29516 } 29517} 29518 29519var checkOverflow$1 = { checkOverflow: checkOverflow }; 29520 29521var defaults = { 29522 init: true, 29523 direction: 'horizontal', 29524 touchEventsTarget: 'container', 29525 initialSlide: 0, 29526 speed: 300, 29527 // 29528 preventInteractionOnTransition: false, 29529 29530 // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView). 29531 edgeSwipeDetection: false, 29532 edgeSwipeThreshold: 20, 29533 29534 // Free mode 29535 freeMode: false, 29536 freeModeMomentum: true, 29537 freeModeMomentumRatio: 1, 29538 freeModeMomentumBounce: true, 29539 freeModeMomentumBounceRatio: 1, 29540 freeModeMomentumVelocityRatio: 1, 29541 freeModeSticky: false, 29542 freeModeMinimumVelocity: 0.02, 29543 29544 // Autoheight 29545 autoHeight: false, 29546 29547 // Set wrapper width 29548 setWrapperSize: false, 29549 29550 // Virtual Translate 29551 virtualTranslate: false, 29552 29553 // Effects 29554 effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' 29555 29556 // Breakpoints 29557 breakpoints: undefined, 29558 breakpointsInverse: false, 29559 29560 // Slides grid 29561 spaceBetween: 0, 29562 slidesPerView: 1, 29563 slidesPerColumn: 1, 29564 slidesPerColumnFill: 'column', 29565 slidesPerGroup: 1, 29566 centeredSlides: false, 29567 slidesOffsetBefore: 0, // in px 29568 slidesOffsetAfter: 0, // in px 29569 normalizeSlideIndex: true, 29570 centerInsufficientSlides: false, 29571 29572 // Disable swiper and hide navigation when container not overflow 29573 watchOverflow: false, 29574 29575 // Round length 29576 roundLengths: false, 29577 29578 // Touches 29579 touchRatio: 1, 29580 touchAngle: 45, 29581 simulateTouch: true, 29582 shortSwipes: true, 29583 longSwipes: true, 29584 longSwipesRatio: 0.5, 29585 longSwipesMs: 300, 29586 followFinger: true, 29587 allowTouchMove: true, 29588 threshold: 0, 29589 touchMoveStopPropagation: true, 29590 touchStartPreventDefault: true, 29591 touchStartForcePreventDefault: false, 29592 touchReleaseOnEdges: false, 29593 29594 // Unique Navigation Elements 29595 uniqueNavElements: true, 29596 29597 // Resistance 29598 resistance: true, 29599 resistanceRatio: 0.85, 29600 29601 // Progress 29602 watchSlidesProgress: false, 29603 watchSlidesVisibility: false, 29604 29605 // Cursor 29606 grabCursor: false, 29607 29608 // Clicks 29609 preventClicks: true, 29610 preventClicksPropagation: true, 29611 slideToClickedSlide: false, 29612 29613 // Images 29614 preloadImages: true, 29615 updateOnImagesReady: true, 29616 29617 // loop 29618 loop: false, 29619 loopAdditionalSlides: 0, 29620 loopedSlides: null, 29621 loopFillGroupWithBlank: false, 29622 29623 // Swiping/no swiping 29624 allowSlidePrev: true, 29625 allowSlideNext: true, 29626 swipeHandler: null, // '.swipe-handler', 29627 noSwiping: true, 29628 noSwipingClass: 'swiper-no-swiping', 29629 noSwipingSelector: null, 29630 29631 // Passive Listeners 29632 passiveListeners: true, 29633 29634 // NS 29635 containerModifierClass: 'swiper-container-', // NEW 29636 slideClass: 'swiper-slide', 29637 slideBlankClass: 'swiper-slide-invisible-blank', 29638 slideActiveClass: 'swiper-slide-active', 29639 slideDuplicateActiveClass: 'swiper-slide-duplicate-active', 29640 slideVisibleClass: 'swiper-slide-visible', 29641 slideDuplicateClass: 'swiper-slide-duplicate', 29642 slideNextClass: 'swiper-slide-next', 29643 slideDuplicateNextClass: 'swiper-slide-duplicate-next', 29644 slidePrevClass: 'swiper-slide-prev', 29645 slideDuplicatePrevClass: 'swiper-slide-duplicate-prev', 29646 wrapperClass: 'swiper-wrapper', 29647 29648 // Callbacks 29649 runCallbacksOnInit: true 29650}; 29651 29652var prototypes = { 29653 update: update, 29654 translate: translate, 29655 transition: transition$1, 29656 slide: slide, 29657 loop: loop, 29658 grabCursor: grabCursor, 29659 manipulation: manipulation, 29660 events: events, 29661 breakpoints: breakpoints, 29662 checkOverflow: checkOverflow$1, 29663 classes: classes, 29664 images: images 29665}; 29666 29667var extendedDefaults = {}; 29668 29669var Swiper = function (_SwiperClass) { 29670 _inherits(Swiper, _SwiperClass); 29671 29672 function Swiper() { 29673 var _ret3; 29674 29675 _classCallCheck(this, Swiper); 29676 29677 var el = void 0; 29678 var params = void 0; 29679 29680 for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { 29681 args[_key5] = arguments[_key5]; 29682 } 29683 29684 if (args.length === 1 && args[0].constructor && args[0].constructor === Object) { 29685 params = args[0]; 29686 } else { 29687 el = args[0]; 29688 params = args[1]; 29689 } 29690 if (!params) params = {}; 29691 29692 params = Utils.extend({}, params); 29693 if (el && !params.el) params.el = el; 29694 29695 var _this = _possibleConstructorReturn(this, (Swiper.__proto__ || Object.getPrototypeOf(Swiper)).call(this, params)); 29696 29697 Object.keys(prototypes).forEach(function (prototypeGroup) { 29698 Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) { 29699 if (!Swiper.prototype[protoMethod]) { 29700 Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; 29701 } 29702 }); 29703 }); 29704 29705 // Swiper Instance 29706 var swiper = _this; 29707 if (typeof swiper.modules === 'undefined') { 29708 swiper.modules = {}; 29709 } 29710 Object.keys(swiper.modules).forEach(function (moduleName) { 29711 var module = swiper.modules[moduleName]; 29712 if (module.params) { 29713 var moduleParamName = Object.keys(module.params)[0]; 29714 var moduleParams = module.params[moduleParamName]; 29715 if ((typeof moduleParams === 'undefined' ? 'undefined' : _typeof(moduleParams)) !== 'object' || moduleParams === null) return; 29716 if (!(moduleParamName in params && 'enabled' in moduleParams)) return; 29717 if (params[moduleParamName] === true) { 29718 params[moduleParamName] = { enabled: true }; 29719 } 29720 if (_typeof(params[moduleParamName]) === 'object' && !('enabled' in params[moduleParamName])) { 29721 params[moduleParamName].enabled = true; 29722 } 29723 if (!params[moduleParamName]) params[moduleParamName] = { enabled: false }; 29724 } 29725 }); 29726 29727 // Extend defaults with modules params 29728 var swiperParams = Utils.extend({}, defaults); 29729 swiper.useModulesParams(swiperParams); 29730 29731 // Extend defaults with passed params 29732 swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params); 29733 swiper.originalParams = Utils.extend({}, swiper.params); 29734 swiper.passedParams = Utils.extend({}, params); 29735 29736 // Save Dom lib 29737 swiper.$ = dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"]; 29738 29739 // Find el 29740 var $el = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(swiper.params.el); 29741 el = $el[0]; 29742 29743 if (!el) { 29744 var _ret; 29745 29746 return _ret = undefined, _possibleConstructorReturn(_this, _ret); 29747 } 29748 29749 if ($el.length > 1) { 29750 var _ret2; 29751 29752 var swipers = []; 29753 $el.each(function (index$$1, containerEl) { 29754 var newParams = Utils.extend({}, params, { el: containerEl }); 29755 swipers.push(new Swiper(newParams)); 29756 }); 29757 return _ret2 = swipers, _possibleConstructorReturn(_this, _ret2); 29758 } 29759 29760 el.swiper = swiper; 29761 $el.data('swiper', swiper); 29762 29763 // Find Wrapper 29764 var $wrapperEl = $el.children('.' + swiper.params.wrapperClass); 29765 29766 // Extend Swiper 29767 Utils.extend(swiper, { 29768 $el: $el, 29769 el: el, 29770 $wrapperEl: $wrapperEl, 29771 wrapperEl: $wrapperEl[0], 29772 29773 // Classes 29774 classNames: [], 29775 29776 // Slides 29777 slides: Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(), 29778 slidesGrid: [], 29779 snapGrid: [], 29780 slidesSizesGrid: [], 29781 29782 // isDirection 29783 isHorizontal: function isHorizontal() { 29784 return swiper.params.direction === 'horizontal'; 29785 }, 29786 isVertical: function isVertical() { 29787 return swiper.params.direction === 'vertical'; 29788 }, 29789 29790 // RTL 29791 rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl', 29792 rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'), 29793 wrongRTL: $wrapperEl.css('display') === '-webkit-box', 29794 29795 // Indexes 29796 activeIndex: 0, 29797 realIndex: 0, 29798 29799 // 29800 isBeginning: true, 29801 isEnd: false, 29802 29803 // Props 29804 translate: 0, 29805 previousTranslate: 0, 29806 progress: 0, 29807 velocity: 0, 29808 animating: false, 29809 29810 // Locks 29811 allowSlideNext: swiper.params.allowSlideNext, 29812 allowSlidePrev: swiper.params.allowSlidePrev, 29813 29814 // Touch Events 29815 touchEvents: function touchEvents() { 29816 var touch = ['touchstart', 'touchmove', 'touchend']; 29817 var desktop = ['mousedown', 'mousemove', 'mouseup']; 29818 if (Support.pointerEvents) { 29819 desktop = ['pointerdown', 'pointermove', 'pointerup']; 29820 } else if (Support.prefixedPointerEvents) { 29821 desktop = ['MSPointerDown', 'MSPointerMove', 'MSPointerUp']; 29822 } 29823 swiper.touchEventsTouch = { 29824 start: touch[0], 29825 move: touch[1], 29826 end: touch[2] 29827 }; 29828 swiper.touchEventsDesktop = { 29829 start: desktop[0], 29830 move: desktop[1], 29831 end: desktop[2] 29832 }; 29833 return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop; 29834 }(), 29835 touchEventsData: { 29836 isTouched: undefined, 29837 isMoved: undefined, 29838 allowTouchCallbacks: undefined, 29839 touchStartTime: undefined, 29840 isScrolling: undefined, 29841 currentTranslate: undefined, 29842 startTranslate: undefined, 29843 allowThresholdMove: undefined, 29844 // Form elements to match 29845 formElements: 'input, select, option, textarea, button, video', 29846 // Last click time 29847 lastClickTime: Utils.now(), 29848 clickTimeout: undefined, 29849 // Velocities 29850 velocities: [], 29851 allowMomentumBounce: undefined, 29852 isTouchEvent: undefined, 29853 startMoving: undefined 29854 }, 29855 29856 // Clicks 29857 allowClick: true, 29858 29859 // Touches 29860 allowTouchMove: swiper.params.allowTouchMove, 29861 29862 touches: { 29863 startX: 0, 29864 startY: 0, 29865 currentX: 0, 29866 currentY: 0, 29867 diff: 0 29868 }, 29869 29870 // Images 29871 imagesToLoad: [], 29872 imagesLoaded: 0 29873 29874 }); 29875 29876 // Install Modules 29877 swiper.useModules(); 29878 29879 // Init 29880 if (swiper.params.init) { 29881 swiper.init(); 29882 } 29883 29884 // Return app instance 29885 return _ret3 = swiper, _possibleConstructorReturn(_this, _ret3); 29886 } 29887 29888 _createClass(Swiper, [{ 29889 key: 'slidesPerViewDynamic', 29890 value: function slidesPerViewDynamic() { 29891 var swiper = this; 29892 var params = swiper.params, 29893 slides = swiper.slides, 29894 slidesGrid = swiper.slidesGrid, 29895 swiperSize = swiper.size, 29896 activeIndex = swiper.activeIndex; 29897 29898 var spv = 1; 29899 if (params.centeredSlides) { 29900 var slideSize = slides[activeIndex].swiperSlideSize; 29901 var breakLoop = void 0; 29902 for (var i = activeIndex + 1; i < slides.length; i += 1) { 29903 if (slides[i] && !breakLoop) { 29904 slideSize += slides[i].swiperSlideSize; 29905 spv += 1; 29906 if (slideSize > swiperSize) breakLoop = true; 29907 } 29908 } 29909 for (var _i7 = activeIndex - 1; _i7 >= 0; _i7 -= 1) { 29910 if (slides[_i7] && !breakLoop) { 29911 slideSize += slides[_i7].swiperSlideSize; 29912 spv += 1; 29913 if (slideSize > swiperSize) breakLoop = true; 29914 } 29915 } 29916 } else { 29917 for (var _i8 = activeIndex + 1; _i8 < slides.length; _i8 += 1) { 29918 if (slidesGrid[_i8] - slidesGrid[activeIndex] < swiperSize) { 29919 spv += 1; 29920 } 29921 } 29922 } 29923 return spv; 29924 } 29925 }, { 29926 key: 'update', 29927 value: function update() { 29928 var swiper = this; 29929 if (!swiper || swiper.destroyed) return; 29930 var snapGrid = swiper.snapGrid, 29931 params = swiper.params; 29932 // Breakpoints 29933 29934 if (params.breakpoints) { 29935 swiper.setBreakpoint(); 29936 } 29937 swiper.updateSize(); 29938 swiper.updateSlides(); 29939 swiper.updateProgress(); 29940 swiper.updateSlidesClasses(); 29941 29942 function setTranslate() { 29943 var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; 29944 var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); 29945 swiper.setTranslate(newTranslate); 29946 swiper.updateActiveIndex(); 29947 swiper.updateSlidesClasses(); 29948 } 29949 var translated = void 0; 29950 if (swiper.params.freeMode) { 29951 setTranslate(); 29952 if (swiper.params.autoHeight) { 29953 swiper.updateAutoHeight(); 29954 } 29955 } else { 29956 if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { 29957 translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true); 29958 } else { 29959 translated = swiper.slideTo(swiper.activeIndex, 0, false, true); 29960 } 29961 if (!translated) { 29962 setTranslate(); 29963 } 29964 } 29965 if (params.watchOverflow && snapGrid !== swiper.snapGrid) { 29966 swiper.checkOverflow(); 29967 } 29968 swiper.emit('update'); 29969 } 29970 }, { 29971 key: 'init', 29972 value: function init() { 29973 var swiper = this; 29974 if (swiper.initialized) return; 29975 29976 swiper.emit('beforeInit'); 29977 29978 // Set breakpoint 29979 if (swiper.params.breakpoints) { 29980 swiper.setBreakpoint(); 29981 } 29982 29983 // Add Classes 29984 swiper.addClasses(); 29985 29986 // Create loop 29987 if (swiper.params.loop) { 29988 swiper.loopCreate(); 29989 } 29990 29991 // Update size 29992 swiper.updateSize(); 29993 29994 // Update slides 29995 swiper.updateSlides(); 29996 29997 if (swiper.params.watchOverflow) { 29998 swiper.checkOverflow(); 29999 } 30000 30001 // Set Grab Cursor 30002 if (swiper.params.grabCursor) { 30003 swiper.setGrabCursor(); 30004 } 30005 30006 if (swiper.params.preloadImages) { 30007 swiper.preloadImages(); 30008 } 30009 30010 // Slide To Initial Slide 30011 if (swiper.params.loop) { 30012 swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit); 30013 } else { 30014 swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit); 30015 } 30016 30017 // Attach events 30018 swiper.attachEvents(); 30019 30020 // Init Flag 30021 swiper.initialized = true; 30022 30023 // Emit 30024 swiper.emit('init'); 30025 } 30026 }, { 30027 key: 'destroy', 30028 value: function destroy() { 30029 var deleteInstance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 30030 var cleanStyles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 30031 30032 var swiper = this; 30033 var params = swiper.params, 30034 $el = swiper.$el, 30035 $wrapperEl = swiper.$wrapperEl, 30036 slides = swiper.slides; 30037 30038 30039 if (typeof swiper.params === 'undefined' || swiper.destroyed) { 30040 return null; 30041 } 30042 30043 swiper.emit('beforeDestroy'); 30044 30045 // Init Flag 30046 swiper.initialized = false; 30047 30048 // Detach events 30049 swiper.detachEvents(); 30050 30051 // Destroy loop 30052 if (params.loop) { 30053 swiper.loopDestroy(); 30054 } 30055 30056 // Cleanup styles 30057 if (cleanStyles) { 30058 swiper.removeClasses(); 30059 $el.removeAttr('style'); 30060 $wrapperEl.removeAttr('style'); 30061 if (slides && slides.length) { 30062 slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index').removeAttr('data-swiper-column').removeAttr('data-swiper-row'); 30063 } 30064 } 30065 30066 swiper.emit('destroy'); 30067 30068 // Detach emitter events 30069 Object.keys(swiper.eventsListeners).forEach(function (eventName) { 30070 swiper.off(eventName); 30071 }); 30072 30073 if (deleteInstance !== false) { 30074 swiper.$el[0].swiper = null; 30075 swiper.$el.data('swiper', null); 30076 Utils.deleteProps(swiper); 30077 } 30078 swiper.destroyed = true; 30079 30080 return null; 30081 } 30082 }], [{ 30083 key: 'extendDefaults', 30084 value: function extendDefaults(newDefaults) { 30085 Utils.extend(extendedDefaults, newDefaults); 30086 } 30087 }, { 30088 key: 'extendedDefaults', 30089 get: function get() { 30090 return extendedDefaults; 30091 } 30092 }, { 30093 key: 'defaults', 30094 get: function get() { 30095 return defaults; 30096 } 30097 }, { 30098 key: 'Class', 30099 get: function get() { 30100 return SwiperClass; 30101 } 30102 }, { 30103 key: '$', 30104 get: function get() { 30105 return dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"]; 30106 } 30107 }]); 30108 30109 return Swiper; 30110}(SwiperClass); 30111 30112var Device$1 = { 30113 name: 'device', 30114 proto: { 30115 device: Device 30116 }, 30117 static: { 30118 device: Device 30119 } 30120}; 30121 30122var Support$1 = { 30123 name: 'support', 30124 proto: { 30125 support: Support 30126 }, 30127 static: { 30128 support: Support 30129 } 30130}; 30131 30132var Browser$1 = { 30133 name: 'browser', 30134 proto: { 30135 browser: Browser 30136 }, 30137 static: { 30138 browser: Browser 30139 } 30140}; 30141 30142var Resize = { 30143 name: 'resize', 30144 create: function create() { 30145 var swiper = this; 30146 Utils.extend(swiper, { 30147 resize: { 30148 resizeHandler: function resizeHandler() { 30149 if (!swiper || swiper.destroyed || !swiper.initialized) return; 30150 swiper.emit('beforeResize'); 30151 swiper.emit('resize'); 30152 }, 30153 orientationChangeHandler: function orientationChangeHandler() { 30154 if (!swiper || swiper.destroyed || !swiper.initialized) return; 30155 swiper.emit('orientationchange'); 30156 } 30157 } 30158 }); 30159 }, 30160 30161 on: { 30162 init: function init() { 30163 var swiper = this; 30164 // Emit resize 30165 ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].addEventListener('resize', swiper.resize.resizeHandler); 30166 30167 // Emit orientationchange 30168 ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].addEventListener('orientationchange', swiper.resize.orientationChangeHandler); 30169 }, 30170 destroy: function destroy() { 30171 var swiper = this; 30172 ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].removeEventListener('resize', swiper.resize.resizeHandler); 30173 ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].removeEventListener('orientationchange', swiper.resize.orientationChangeHandler); 30174 } 30175 } 30176}; 30177 30178var Observer = { 30179 func: ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].MutationObserver || ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].WebkitMutationObserver, 30180 attach: function attach(target) { 30181 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 30182 30183 var swiper = this; 30184 30185 var ObserverFunc = Observer.func; 30186 var observer = new ObserverFunc(function (mutations) { 30187 // The observerUpdate event should only be triggered 30188 // once despite the number of mutations. Additional 30189 // triggers are redundant and are very costly 30190 if (mutations.length === 1) { 30191 swiper.emit('observerUpdate', mutations[0]); 30192 return; 30193 } 30194 var observerUpdate = function observerUpdate() { 30195 swiper.emit('observerUpdate', mutations[0]); 30196 }; 30197 30198 if (ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].requestAnimationFrame) { 30199 ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].requestAnimationFrame(observerUpdate); 30200 } else { 30201 ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].setTimeout(observerUpdate, 0); 30202 } 30203 }); 30204 30205 observer.observe(target, { 30206 attributes: typeof options.attributes === 'undefined' ? true : options.attributes, 30207 childList: typeof options.childList === 'undefined' ? true : options.childList, 30208 characterData: typeof options.characterData === 'undefined' ? true : options.characterData 30209 }); 30210 30211 swiper.observer.observers.push(observer); 30212 }, 30213 init: function init() { 30214 var swiper = this; 30215 if (!Support.observer || !swiper.params.observer) return; 30216 if (swiper.params.observeParents) { 30217 var containerParents = swiper.$el.parents(); 30218 for (var i = 0; i < containerParents.length; i += 1) { 30219 swiper.observer.attach(containerParents[i]); 30220 } 30221 } 30222 // Observe container 30223 swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren }); 30224 30225 // Observe wrapper 30226 swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false }); 30227 }, 30228 destroy: function destroy() { 30229 var swiper = this; 30230 swiper.observer.observers.forEach(function (observer) { 30231 observer.disconnect(); 30232 }); 30233 swiper.observer.observers = []; 30234 } 30235}; 30236 30237var Observer$1 = { 30238 name: 'observer', 30239 params: { 30240 observer: false, 30241 observeParents: false, 30242 observeSlideChildren: false 30243 }, 30244 create: function create() { 30245 var swiper = this; 30246 Utils.extend(swiper, { 30247 observer: { 30248 init: Observer.init.bind(swiper), 30249 attach: Observer.attach.bind(swiper), 30250 destroy: Observer.destroy.bind(swiper), 30251 observers: [] 30252 } 30253 }); 30254 }, 30255 30256 on: { 30257 init: function init() { 30258 var swiper = this; 30259 swiper.observer.init(); 30260 }, 30261 destroy: function destroy() { 30262 var swiper = this; 30263 swiper.observer.destroy(); 30264 } 30265 } 30266}; 30267 30268var Virtual = { 30269 update: function update(force) { 30270 var swiper = this; 30271 var _swiper$params = swiper.params, 30272 slidesPerView = _swiper$params.slidesPerView, 30273 slidesPerGroup = _swiper$params.slidesPerGroup, 30274 centeredSlides = _swiper$params.centeredSlides; 30275 var _swiper$params$virtua = swiper.params.virtual, 30276 addSlidesBefore = _swiper$params$virtua.addSlidesBefore, 30277 addSlidesAfter = _swiper$params$virtua.addSlidesAfter; 30278 var _swiper$virtual = swiper.virtual, 30279 previousFrom = _swiper$virtual.from, 30280 previousTo = _swiper$virtual.to, 30281 slides = _swiper$virtual.slides, 30282 previousSlidesGrid = _swiper$virtual.slidesGrid, 30283 renderSlide = _swiper$virtual.renderSlide, 30284 previousOffset = _swiper$virtual.offset; 30285 30286 swiper.updateActiveIndex(); 30287 var activeIndex = swiper.activeIndex || 0; 30288 30289 var offsetProp = void 0; 30290 if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top'; 30291 30292 var slidesAfter = void 0; 30293 var slidesBefore = void 0; 30294 if (centeredSlides) { 30295 slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore; 30296 slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter; 30297 } else { 30298 slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore; 30299 slidesBefore = slidesPerGroup + addSlidesAfter; 30300 } 30301 var from = Math.max((activeIndex || 0) - slidesBefore, 0); 30302 var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1); 30303 var offset$$1 = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); 30304 30305 Utils.extend(swiper.virtual, { 30306 from: from, 30307 to: to, 30308 offset: offset$$1, 30309 slidesGrid: swiper.slidesGrid 30310 }); 30311 30312 function onRendered() { 30313 swiper.updateSlides(); 30314 swiper.updateProgress(); 30315 swiper.updateSlidesClasses(); 30316 if (swiper.lazy && swiper.params.lazy.enabled) { 30317 swiper.lazy.load(); 30318 } 30319 } 30320 30321 if (previousFrom === from && previousTo === to && !force) { 30322 if (swiper.slidesGrid !== previousSlidesGrid && offset$$1 !== previousOffset) { 30323 swiper.slides.css(offsetProp, offset$$1 + 'px'); 30324 } 30325 swiper.updateProgress(); 30326 return; 30327 } 30328 if (swiper.params.virtual.renderExternal) { 30329 swiper.params.virtual.renderExternal.call(swiper, { 30330 offset: offset$$1, 30331 from: from, 30332 to: to, 30333 slides: function getSlides() { 30334 var slidesToRender = []; 30335 for (var i = from; i <= to; i += 1) { 30336 slidesToRender.push(slides[i]); 30337 } 30338 return slidesToRender; 30339 }() 30340 }); 30341 onRendered(); 30342 return; 30343 } 30344 var prependIndexes = []; 30345 var appendIndexes = []; 30346 if (force) { 30347 swiper.$wrapperEl.find('.' + swiper.params.slideClass).remove(); 30348 } else { 30349 for (var i = previousFrom; i <= previousTo; i += 1) { 30350 if (i < from || i > to) { 30351 swiper.$wrapperEl.find('.' + swiper.params.slideClass + '[data-swiper-slide-index="' + i + '"]').remove(); 30352 } 30353 } 30354 } 30355 for (var _i9 = 0; _i9 < slides.length; _i9 += 1) { 30356 if (_i9 >= from && _i9 <= to) { 30357 if (typeof previousTo === 'undefined' || force) { 30358 appendIndexes.push(_i9); 30359 } else { 30360 if (_i9 > previousTo) appendIndexes.push(_i9); 30361 if (_i9 < previousFrom) prependIndexes.push(_i9); 30362 } 30363 } 30364 } 30365 appendIndexes.forEach(function (index$$1) { 30366 swiper.$wrapperEl.append(renderSlide(slides[index$$1], index$$1)); 30367 }); 30368 prependIndexes.sort(function (a, b) { 30369 return b - a; 30370 }).forEach(function (index$$1) { 30371 swiper.$wrapperEl.prepend(renderSlide(slides[index$$1], index$$1)); 30372 }); 30373 swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, offset$$1 + 'px'); 30374 onRendered(); 30375 }, 30376 renderSlide: function renderSlide(slide, index$$1) { 30377 var swiper = this; 30378 var params = swiper.params.virtual; 30379 if (params.cache && swiper.virtual.cache[index$$1]) { 30380 return swiper.virtual.cache[index$$1]; 30381 } 30382 var $slideEl = params.renderSlide ? Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(params.renderSlide.call(swiper, slide, index$$1)) : Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])('<div class="' + swiper.params.slideClass + '" data-swiper-slide-index="' + index$$1 + '">' + slide + '</div>'); 30383 if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index$$1); 30384 if (params.cache) swiper.virtual.cache[index$$1] = $slideEl; 30385 return $slideEl; 30386 }, 30387 appendSlide: function appendSlide(slide) { 30388 var swiper = this; 30389 swiper.virtual.slides.push(slide); 30390 swiper.virtual.update(true); 30391 }, 30392 prependSlide: function prependSlide(slide) { 30393 var swiper = this; 30394 swiper.virtual.slides.unshift(slide); 30395 if (swiper.params.virtual.cache) { 30396 var cache = swiper.virtual.cache; 30397 var newCache = {}; 30398 Object.keys(cache).forEach(function (cachedIndex) { 30399 newCache[cachedIndex + 1] = cache[cachedIndex]; 30400 }); 30401 swiper.virtual.cache = newCache; 30402 } 30403 swiper.virtual.update(true); 30404 swiper.slideNext(0); 30405 } 30406}; 30407 30408var Virtual$1 = { 30409 name: 'virtual', 30410 params: { 30411 virtual: { 30412 enabled: false, 30413 slides: [], 30414 cache: true, 30415 renderSlide: null, 30416 renderExternal: null, 30417 addSlidesBefore: 0, 30418 addSlidesAfter: 0 30419 } 30420 }, 30421 create: function create() { 30422 var swiper = this; 30423 Utils.extend(swiper, { 30424 virtual: { 30425 update: Virtual.update.bind(swiper), 30426 appendSlide: Virtual.appendSlide.bind(swiper), 30427 prependSlide: Virtual.prependSlide.bind(swiper), 30428 renderSlide: Virtual.renderSlide.bind(swiper), 30429 slides: swiper.params.virtual.slides, 30430 cache: {} 30431 } 30432 }); 30433 }, 30434 30435 on: { 30436 beforeInit: function beforeInit() { 30437 var swiper = this; 30438 if (!swiper.params.virtual.enabled) return; 30439 swiper.classNames.push(swiper.params.containerModifierClass + 'virtual'); 30440 var overwriteParams = { 30441 watchSlidesProgress: true 30442 }; 30443 Utils.extend(swiper.params, overwriteParams); 30444 Utils.extend(swiper.originalParams, overwriteParams); 30445 30446 if (!swiper.params.initialSlide) { 30447 swiper.virtual.update(); 30448 } 30449 }, 30450 setTranslate: function setTranslate() { 30451 var swiper = this; 30452 if (!swiper.params.virtual.enabled) return; 30453 swiper.virtual.update(); 30454 } 30455 } 30456}; 30457 30458var Keyboard = { 30459 handle: function handle(event) { 30460 var swiper = this; 30461 var rtl = swiper.rtlTranslate; 30462 30463 var e = event; 30464 if (e.originalEvent) e = e.originalEvent; // jquery fix 30465 var kc = e.keyCode || e.charCode; 30466 // Directions locks 30467 if (!swiper.allowSlideNext && (swiper.isHorizontal() && kc === 39 || swiper.isVertical() && kc === 40)) { 30468 return false; 30469 } 30470 if (!swiper.allowSlidePrev && (swiper.isHorizontal() && kc === 37 || swiper.isVertical() && kc === 38)) { 30471 return false; 30472 } 30473 if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { 30474 return undefined; 30475 } 30476 if (ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].activeElement && ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].activeElement.nodeName && (ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].activeElement.nodeName.toLowerCase() === 'input' || ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].activeElement.nodeName.toLowerCase() === 'textarea')) { 30477 return undefined; 30478 } 30479 if (swiper.params.keyboard.onlyInViewport && (kc === 37 || kc === 39 || kc === 38 || kc === 40)) { 30480 var inView = false; 30481 // Check that swiper should be inside of visible area of window 30482 if (swiper.$el.parents('.' + swiper.params.slideClass).length > 0 && swiper.$el.parents('.' + swiper.params.slideActiveClass).length === 0) { 30483 return undefined; 30484 } 30485 var windowWidth = ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].innerWidth; 30486 var windowHeight = ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].innerHeight; 30487 var swiperOffset = swiper.$el.offset(); 30488 if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft; 30489 var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]]; 30490 for (var i = 0; i < swiperCoord.length; i += 1) { 30491 var point = swiperCoord[i]; 30492 if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) { 30493 inView = true; 30494 } 30495 } 30496 if (!inView) return undefined; 30497 } 30498 if (swiper.isHorizontal()) { 30499 if (kc === 37 || kc === 39) { 30500 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 30501 } 30502 if (kc === 39 && !rtl || kc === 37 && rtl) swiper.slideNext(); 30503 if (kc === 37 && !rtl || kc === 39 && rtl) swiper.slidePrev(); 30504 } else { 30505 if (kc === 38 || kc === 40) { 30506 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 30507 } 30508 if (kc === 40) swiper.slideNext(); 30509 if (kc === 38) swiper.slidePrev(); 30510 } 30511 swiper.emit('keyPress', kc); 30512 return undefined; 30513 }, 30514 enable: function enable() { 30515 var swiper = this; 30516 if (swiper.keyboard.enabled) return; 30517 Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"]).on('keydown', swiper.keyboard.handle); 30518 swiper.keyboard.enabled = true; 30519 }, 30520 disable: function disable() { 30521 var swiper = this; 30522 if (!swiper.keyboard.enabled) return; 30523 Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"]).off('keydown', swiper.keyboard.handle); 30524 swiper.keyboard.enabled = false; 30525 } 30526}; 30527 30528var Keyboard$1 = { 30529 name: 'keyboard', 30530 params: { 30531 keyboard: { 30532 enabled: false, 30533 onlyInViewport: true 30534 } 30535 }, 30536 create: function create() { 30537 var swiper = this; 30538 Utils.extend(swiper, { 30539 keyboard: { 30540 enabled: false, 30541 enable: Keyboard.enable.bind(swiper), 30542 disable: Keyboard.disable.bind(swiper), 30543 handle: Keyboard.handle.bind(swiper) 30544 } 30545 }); 30546 }, 30547 30548 on: { 30549 init: function init() { 30550 var swiper = this; 30551 if (swiper.params.keyboard.enabled) { 30552 swiper.keyboard.enable(); 30553 } 30554 }, 30555 destroy: function destroy() { 30556 var swiper = this; 30557 if (swiper.keyboard.enabled) { 30558 swiper.keyboard.disable(); 30559 } 30560 } 30561 } 30562}; 30563 30564function isEventSupported() { 30565 var eventName = 'onwheel'; 30566 var isSupported = eventName in ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"]; 30567 30568 if (!isSupported) { 30569 var element = ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].createElement('div'); 30570 element.setAttribute(eventName, 'return;'); 30571 isSupported = typeof element[eventName] === 'function'; 30572 } 30573 30574 if (!isSupported && ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].implementation && ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].implementation.hasFeature 30575 // always returns true in newer browsers as per the standard. 30576 // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature 30577 && ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].implementation.hasFeature('', '') !== true) { 30578 // This is the only way to test support for the `wheel` event in IE9+. 30579 isSupported = ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].implementation.hasFeature('Events.wheel', '3.0'); 30580 } 30581 30582 return isSupported; 30583} 30584var Mousewheel = { 30585 lastScrollTime: Utils.now(), 30586 event: function getEvent() { 30587 if (ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll'; 30588 return isEventSupported() ? 'wheel' : 'mousewheel'; 30589 }(), 30590 normalize: function normalize(e) { 30591 // Reasonable defaults 30592 var PIXEL_STEP = 10; 30593 var LINE_HEIGHT = 40; 30594 var PAGE_HEIGHT = 800; 30595 30596 var sX = 0; 30597 var sY = 0; // spinX, spinY 30598 var pX = 0; 30599 var pY = 0; // pixelX, pixelY 30600 30601 // Legacy 30602 if ('detail' in e) { 30603 sY = e.detail; 30604 } 30605 if ('wheelDelta' in e) { 30606 sY = -e.wheelDelta / 120; 30607 } 30608 if ('wheelDeltaY' in e) { 30609 sY = -e.wheelDeltaY / 120; 30610 } 30611 if ('wheelDeltaX' in e) { 30612 sX = -e.wheelDeltaX / 120; 30613 } 30614 30615 // side scrolling on FF with DOMMouseScroll 30616 if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { 30617 sX = sY; 30618 sY = 0; 30619 } 30620 30621 pX = sX * PIXEL_STEP; 30622 pY = sY * PIXEL_STEP; 30623 30624 if ('deltaY' in e) { 30625 pY = e.deltaY; 30626 } 30627 if ('deltaX' in e) { 30628 pX = e.deltaX; 30629 } 30630 30631 if ((pX || pY) && e.deltaMode) { 30632 if (e.deltaMode === 1) { 30633 // delta in LINE units 30634 pX *= LINE_HEIGHT; 30635 pY *= LINE_HEIGHT; 30636 } else { 30637 // delta in PAGE units 30638 pX *= PAGE_HEIGHT; 30639 pY *= PAGE_HEIGHT; 30640 } 30641 } 30642 30643 // Fall-back if spin cannot be determined 30644 if (pX && !sX) { 30645 sX = pX < 1 ? -1 : 1; 30646 } 30647 if (pY && !sY) { 30648 sY = pY < 1 ? -1 : 1; 30649 } 30650 30651 return { 30652 spinX: sX, 30653 spinY: sY, 30654 pixelX: pX, 30655 pixelY: pY 30656 }; 30657 }, 30658 handleMouseEnter: function handleMouseEnter() { 30659 var swiper = this; 30660 swiper.mouseEntered = true; 30661 }, 30662 handleMouseLeave: function handleMouseLeave() { 30663 var swiper = this; 30664 swiper.mouseEntered = false; 30665 }, 30666 handle: function handle(event) { 30667 var e = event; 30668 var swiper = this; 30669 var params = swiper.params.mousewheel; 30670 30671 if (!swiper.mouseEntered && !params.releaseOnEdges) return true; 30672 30673 if (e.originalEvent) e = e.originalEvent; // jquery fix 30674 var delta = 0; 30675 var rtlFactor = swiper.rtlTranslate ? -1 : 1; 30676 30677 var data$$1 = Mousewheel.normalize(e); 30678 30679 if (params.forceToAxis) { 30680 if (swiper.isHorizontal()) { 30681 if (Math.abs(data$$1.pixelX) > Math.abs(data$$1.pixelY)) delta = data$$1.pixelX * rtlFactor;else return true; 30682 } else if (Math.abs(data$$1.pixelY) > Math.abs(data$$1.pixelX)) delta = data$$1.pixelY;else return true; 30683 } else { 30684 delta = Math.abs(data$$1.pixelX) > Math.abs(data$$1.pixelY) ? -data$$1.pixelX * rtlFactor : -data$$1.pixelY; 30685 } 30686 30687 if (delta === 0) return true; 30688 30689 if (params.invert) delta = -delta; 30690 30691 if (!swiper.params.freeMode) { 30692 if (Utils.now() - swiper.mousewheel.lastScrollTime > 60) { 30693 if (delta < 0) { 30694 if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { 30695 swiper.slideNext(); 30696 swiper.emit('scroll', e); 30697 } else if (params.releaseOnEdges) return true; 30698 } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { 30699 swiper.slidePrev(); 30700 swiper.emit('scroll', e); 30701 } else if (params.releaseOnEdges) return true; 30702 } 30703 swiper.mousewheel.lastScrollTime = new ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].Date().getTime(); 30704 } else { 30705 // Freemode or scrollContainer: 30706 if (swiper.params.loop) { 30707 swiper.loopFix(); 30708 } 30709 var position = swiper.getTranslate() + delta * params.sensitivity; 30710 var wasBeginning = swiper.isBeginning; 30711 var wasEnd = swiper.isEnd; 30712 30713 if (position >= swiper.minTranslate()) position = swiper.minTranslate(); 30714 if (position <= swiper.maxTranslate()) position = swiper.maxTranslate(); 30715 30716 swiper.setTransition(0); 30717 swiper.setTranslate(position); 30718 swiper.updateProgress(); 30719 swiper.updateActiveIndex(); 30720 swiper.updateSlidesClasses(); 30721 30722 if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) { 30723 swiper.updateSlidesClasses(); 30724 } 30725 30726 if (swiper.params.freeModeSticky) { 30727 clearTimeout(swiper.mousewheel.timeout); 30728 swiper.mousewheel.timeout = Utils.nextTick(function () { 30729 swiper.slideToClosest(); 30730 }, 300); 30731 } 30732 // Emit event 30733 swiper.emit('scroll', e); 30734 30735 // Stop autoplay 30736 if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); 30737 // Return page scroll on edge positions 30738 if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true; 30739 } 30740 30741 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 30742 return false; 30743 }, 30744 enable: function enable() { 30745 var swiper = this; 30746 if (!Mousewheel.event) return false; 30747 if (swiper.mousewheel.enabled) return false; 30748 var target = swiper.$el; 30749 if (swiper.params.mousewheel.eventsTarged !== 'container') { 30750 target = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(swiper.params.mousewheel.eventsTarged); 30751 } 30752 target.on('mouseenter', swiper.mousewheel.handleMouseEnter); 30753 target.on('mouseleave', swiper.mousewheel.handleMouseLeave); 30754 target.on(Mousewheel.event, swiper.mousewheel.handle); 30755 swiper.mousewheel.enabled = true; 30756 return true; 30757 }, 30758 disable: function disable() { 30759 var swiper = this; 30760 if (!Mousewheel.event) return false; 30761 if (!swiper.mousewheel.enabled) return false; 30762 var target = swiper.$el; 30763 if (swiper.params.mousewheel.eventsTarged !== 'container') { 30764 target = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(swiper.params.mousewheel.eventsTarged); 30765 } 30766 target.off(Mousewheel.event, swiper.mousewheel.handle); 30767 swiper.mousewheel.enabled = false; 30768 return true; 30769 } 30770}; 30771 30772var Mousewheel$1 = { 30773 name: 'mousewheel', 30774 params: { 30775 mousewheel: { 30776 enabled: false, 30777 releaseOnEdges: false, 30778 invert: false, 30779 forceToAxis: false, 30780 sensitivity: 1, 30781 eventsTarged: 'container' 30782 } 30783 }, 30784 create: function create() { 30785 var swiper = this; 30786 Utils.extend(swiper, { 30787 mousewheel: { 30788 enabled: false, 30789 enable: Mousewheel.enable.bind(swiper), 30790 disable: Mousewheel.disable.bind(swiper), 30791 handle: Mousewheel.handle.bind(swiper), 30792 handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper), 30793 handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper), 30794 lastScrollTime: Utils.now() 30795 } 30796 }); 30797 }, 30798 30799 on: { 30800 init: function init() { 30801 var swiper = this; 30802 if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable(); 30803 }, 30804 destroy: function destroy() { 30805 var swiper = this; 30806 if (swiper.mousewheel.enabled) swiper.mousewheel.disable(); 30807 } 30808 } 30809}; 30810 30811var Navigation = { 30812 update: function update() { 30813 // Update Navigation Buttons 30814 var swiper = this; 30815 var params = swiper.params.navigation; 30816 30817 if (swiper.params.loop) return; 30818 var _swiper$navigation = swiper.navigation, 30819 $nextEl = _swiper$navigation.$nextEl, 30820 $prevEl = _swiper$navigation.$prevEl; 30821 30822 30823 if ($prevEl && $prevEl.length > 0) { 30824 if (swiper.isBeginning) { 30825 $prevEl.addClass(params.disabledClass); 30826 } else { 30827 $prevEl.removeClass(params.disabledClass); 30828 } 30829 $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); 30830 } 30831 if ($nextEl && $nextEl.length > 0) { 30832 if (swiper.isEnd) { 30833 $nextEl.addClass(params.disabledClass); 30834 } else { 30835 $nextEl.removeClass(params.disabledClass); 30836 } 30837 $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); 30838 } 30839 }, 30840 onPrevClick: function onPrevClick(e) { 30841 var swiper = this; 30842 e.preventDefault(); 30843 if (swiper.isBeginning && !swiper.params.loop) return; 30844 swiper.slidePrev(); 30845 }, 30846 onNextClick: function onNextClick(e) { 30847 var swiper = this; 30848 e.preventDefault(); 30849 if (swiper.isEnd && !swiper.params.loop) return; 30850 swiper.slideNext(); 30851 }, 30852 init: function init() { 30853 var swiper = this; 30854 var params = swiper.params.navigation; 30855 if (!(params.nextEl || params.prevEl)) return; 30856 30857 var $nextEl = void 0; 30858 var $prevEl = void 0; 30859 if (params.nextEl) { 30860 $nextEl = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(params.nextEl); 30861 if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) { 30862 $nextEl = swiper.$el.find(params.nextEl); 30863 } 30864 } 30865 if (params.prevEl) { 30866 $prevEl = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(params.prevEl); 30867 if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) { 30868 $prevEl = swiper.$el.find(params.prevEl); 30869 } 30870 } 30871 30872 if ($nextEl && $nextEl.length > 0) { 30873 $nextEl.on('click', swiper.navigation.onNextClick); 30874 } 30875 if ($prevEl && $prevEl.length > 0) { 30876 $prevEl.on('click', swiper.navigation.onPrevClick); 30877 } 30878 30879 Utils.extend(swiper.navigation, { 30880 $nextEl: $nextEl, 30881 nextEl: $nextEl && $nextEl[0], 30882 $prevEl: $prevEl, 30883 prevEl: $prevEl && $prevEl[0] 30884 }); 30885 }, 30886 destroy: function destroy() { 30887 var swiper = this; 30888 var _swiper$navigation2 = swiper.navigation, 30889 $nextEl = _swiper$navigation2.$nextEl, 30890 $prevEl = _swiper$navigation2.$prevEl; 30891 30892 if ($nextEl && $nextEl.length) { 30893 $nextEl.off('click', swiper.navigation.onNextClick); 30894 $nextEl.removeClass(swiper.params.navigation.disabledClass); 30895 } 30896 if ($prevEl && $prevEl.length) { 30897 $prevEl.off('click', swiper.navigation.onPrevClick); 30898 $prevEl.removeClass(swiper.params.navigation.disabledClass); 30899 } 30900 } 30901}; 30902 30903var Navigation$1 = { 30904 name: 'navigation', 30905 params: { 30906 navigation: { 30907 nextEl: null, 30908 prevEl: null, 30909 30910 hideOnClick: false, 30911 disabledClass: 'swiper-button-disabled', 30912 hiddenClass: 'swiper-button-hidden', 30913 lockClass: 'swiper-button-lock' 30914 } 30915 }, 30916 create: function create() { 30917 var swiper = this; 30918 Utils.extend(swiper, { 30919 navigation: { 30920 init: Navigation.init.bind(swiper), 30921 update: Navigation.update.bind(swiper), 30922 destroy: Navigation.destroy.bind(swiper), 30923 onNextClick: Navigation.onNextClick.bind(swiper), 30924 onPrevClick: Navigation.onPrevClick.bind(swiper) 30925 } 30926 }); 30927 }, 30928 30929 on: { 30930 init: function init() { 30931 var swiper = this; 30932 swiper.navigation.init(); 30933 swiper.navigation.update(); 30934 }, 30935 toEdge: function toEdge() { 30936 var swiper = this; 30937 swiper.navigation.update(); 30938 }, 30939 fromEdge: function fromEdge() { 30940 var swiper = this; 30941 swiper.navigation.update(); 30942 }, 30943 destroy: function destroy() { 30944 var swiper = this; 30945 swiper.navigation.destroy(); 30946 }, 30947 click: function click(e) { 30948 var swiper = this; 30949 var _swiper$navigation3 = swiper.navigation, 30950 $nextEl = _swiper$navigation3.$nextEl, 30951 $prevEl = _swiper$navigation3.$prevEl; 30952 30953 if (swiper.params.navigation.hideOnClick && !Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(e.target).is($prevEl) && !Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(e.target).is($nextEl)) { 30954 if ($nextEl) $nextEl.toggleClass(swiper.params.navigation.hiddenClass); 30955 if ($prevEl) $prevEl.toggleClass(swiper.params.navigation.hiddenClass); 30956 } 30957 } 30958 } 30959}; 30960 30961var Pagination = { 30962 update: function update() { 30963 // Render || Update Pagination bullets/items 30964 var swiper = this; 30965 var rtl = swiper.rtl; 30966 var params = swiper.params.pagination; 30967 if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return; 30968 var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 30969 var $el = swiper.pagination.$el; 30970 // Current/Total 30971 var current = void 0; 30972 var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 30973 if (swiper.params.loop) { 30974 current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup); 30975 if (current > slidesLength - 1 - swiper.loopedSlides * 2) { 30976 current -= slidesLength - swiper.loopedSlides * 2; 30977 } 30978 if (current > total - 1) current -= total; 30979 if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current; 30980 } else if (typeof swiper.snapIndex !== 'undefined') { 30981 current = swiper.snapIndex; 30982 } else { 30983 current = swiper.activeIndex || 0; 30984 } 30985 // Types 30986 if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { 30987 var bullets = swiper.pagination.bullets; 30988 var firstIndex = void 0; 30989 var lastIndex = void 0; 30990 var midIndex = void 0; 30991 if (params.dynamicBullets) { 30992 swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true); 30993 $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + 'px'); 30994 if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) { 30995 swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex; 30996 if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) { 30997 swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1; 30998 } else if (swiper.pagination.dynamicBulletIndex < 0) { 30999 swiper.pagination.dynamicBulletIndex = 0; 31000 } 31001 } 31002 firstIndex = current - swiper.pagination.dynamicBulletIndex; 31003 lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1); 31004 midIndex = (lastIndex + firstIndex) / 2; 31005 } 31006 bullets.removeClass(params.bulletActiveClass + ' ' + params.bulletActiveClass + '-next ' + params.bulletActiveClass + '-next-next ' + params.bulletActiveClass + '-prev ' + params.bulletActiveClass + '-prev-prev ' + params.bulletActiveClass + '-main'); 31007 if ($el.length > 1) { 31008 bullets.each(function (index$$1, bullet) { 31009 var $bullet = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(bullet); 31010 var bulletIndex = $bullet.index(); 31011 if (bulletIndex === current) { 31012 $bullet.addClass(params.bulletActiveClass); 31013 } 31014 if (params.dynamicBullets) { 31015 if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { 31016 $bullet.addClass(params.bulletActiveClass + '-main'); 31017 } 31018 if (bulletIndex === firstIndex) { 31019 $bullet.prev().addClass(params.bulletActiveClass + '-prev').prev().addClass(params.bulletActiveClass + '-prev-prev'); 31020 } 31021 if (bulletIndex === lastIndex) { 31022 $bullet.next().addClass(params.bulletActiveClass + '-next').next().addClass(params.bulletActiveClass + '-next-next'); 31023 } 31024 } 31025 }); 31026 } else { 31027 var $bullet = bullets.eq(current); 31028 $bullet.addClass(params.bulletActiveClass); 31029 if (params.dynamicBullets) { 31030 var $firstDisplayedBullet = bullets.eq(firstIndex); 31031 var $lastDisplayedBullet = bullets.eq(lastIndex); 31032 for (var i = firstIndex; i <= lastIndex; i += 1) { 31033 bullets.eq(i).addClass(params.bulletActiveClass + '-main'); 31034 } 31035 $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + '-prev').prev().addClass(params.bulletActiveClass + '-prev-prev'); 31036 $lastDisplayedBullet.next().addClass(params.bulletActiveClass + '-next').next().addClass(params.bulletActiveClass + '-next-next'); 31037 } 31038 } 31039 if (params.dynamicBullets) { 31040 var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); 31041 var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize; 31042 var offsetProp = rtl ? 'right' : 'left'; 31043 bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + 'px'); 31044 } 31045 } 31046 if (params.type === 'fraction') { 31047 $el.find('.' + params.currentClass).text(params.formatFractionCurrent(current + 1)); 31048 $el.find('.' + params.totalClass).text(params.formatFractionTotal(total)); 31049 } 31050 if (params.type === 'progressbar') { 31051 var progressbarDirection = void 0; 31052 if (params.progressbarOpposite) { 31053 progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal'; 31054 } else { 31055 progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical'; 31056 } 31057 var scale = (current + 1) / total; 31058 var scaleX = 1; 31059 var scaleY = 1; 31060 if (progressbarDirection === 'horizontal') { 31061 scaleX = scale; 31062 } else { 31063 scaleY = scale; 31064 } 31065 $el.find('.' + params.progressbarFillClass).transform('translate3d(0,0,0) scaleX(' + scaleX + ') scaleY(' + scaleY + ')').transition(swiper.params.speed); 31066 } 31067 if (params.type === 'custom' && params.renderCustom) { 31068 $el.html(params.renderCustom(swiper, current + 1, total)); 31069 swiper.emit('paginationRender', swiper, $el[0]); 31070 } else { 31071 swiper.emit('paginationUpdate', swiper, $el[0]); 31072 } 31073 $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); 31074 }, 31075 render: function render() { 31076 // Render Container 31077 var swiper = this; 31078 var params = swiper.params.pagination; 31079 if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return; 31080 var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 31081 31082 var $el = swiper.pagination.$el; 31083 var paginationHTML = ''; 31084 if (params.type === 'bullets') { 31085 var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 31086 for (var i = 0; i < numberOfBullets; i += 1) { 31087 if (params.renderBullet) { 31088 paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); 31089 } else { 31090 paginationHTML += '<' + params.bulletElement + ' class="' + params.bulletClass + '"></' + params.bulletElement + '>'; 31091 } 31092 } 31093 $el.html(paginationHTML); 31094 swiper.pagination.bullets = $el.find('.' + params.bulletClass); 31095 } 31096 if (params.type === 'fraction') { 31097 if (params.renderFraction) { 31098 paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); 31099 } else { 31100 paginationHTML = '<span class="' + params.currentClass + '"></span>' + ' / ' + ('<span class="' + params.totalClass + '"></span>'); 31101 } 31102 $el.html(paginationHTML); 31103 } 31104 if (params.type === 'progressbar') { 31105 if (params.renderProgressbar) { 31106 paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); 31107 } else { 31108 paginationHTML = '<span class="' + params.progressbarFillClass + '"></span>'; 31109 } 31110 $el.html(paginationHTML); 31111 } 31112 if (params.type !== 'custom') { 31113 swiper.emit('paginationRender', swiper.pagination.$el[0]); 31114 } 31115 }, 31116 init: function init() { 31117 var swiper = this; 31118 var params = swiper.params.pagination; 31119 if (!params.el) return; 31120 31121 var $el = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(params.el); 31122 if ($el.length === 0) return; 31123 31124 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && swiper.$el.find(params.el).length === 1) { 31125 $el = swiper.$el.find(params.el); 31126 } 31127 31128 if (params.type === 'bullets' && params.clickable) { 31129 $el.addClass(params.clickableClass); 31130 } 31131 31132 $el.addClass(params.modifierClass + params.type); 31133 31134 if (params.type === 'bullets' && params.dynamicBullets) { 31135 $el.addClass('' + params.modifierClass + params.type + '-dynamic'); 31136 swiper.pagination.dynamicBulletIndex = 0; 31137 if (params.dynamicMainBullets < 1) { 31138 params.dynamicMainBullets = 1; 31139 } 31140 } 31141 if (params.type === 'progressbar' && params.progressbarOpposite) { 31142 $el.addClass(params.progressbarOppositeClass); 31143 } 31144 31145 if (params.clickable) { 31146 $el.on('click', '.' + params.bulletClass, function onClick(e) { 31147 e.preventDefault(); 31148 var index$$1 = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(this).index() * swiper.params.slidesPerGroup; 31149 if (swiper.params.loop) index$$1 += swiper.loopedSlides; 31150 swiper.slideTo(index$$1); 31151 }); 31152 } 31153 31154 Utils.extend(swiper.pagination, { 31155 $el: $el, 31156 el: $el[0] 31157 }); 31158 }, 31159 destroy: function destroy() { 31160 var swiper = this; 31161 var params = swiper.params.pagination; 31162 if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return; 31163 var $el = swiper.pagination.$el; 31164 31165 $el.removeClass(params.hiddenClass); 31166 $el.removeClass(params.modifierClass + params.type); 31167 if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass); 31168 if (params.clickable) { 31169 $el.off('click', '.' + params.bulletClass); 31170 } 31171 } 31172}; 31173 31174var Pagination$1 = { 31175 name: 'pagination', 31176 params: { 31177 pagination: { 31178 el: null, 31179 bulletElement: 'span', 31180 clickable: false, 31181 hideOnClick: false, 31182 renderBullet: null, 31183 renderProgressbar: null, 31184 renderFraction: null, 31185 renderCustom: null, 31186 progressbarOpposite: false, 31187 type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom' 31188 dynamicBullets: false, 31189 dynamicMainBullets: 1, 31190 formatFractionCurrent: function formatFractionCurrent(number) { 31191 return number; 31192 }, 31193 formatFractionTotal: function formatFractionTotal(number) { 31194 return number; 31195 }, 31196 bulletClass: 'swiper-pagination-bullet', 31197 bulletActiveClass: 'swiper-pagination-bullet-active', 31198 modifierClass: 'swiper-pagination-', // NEW 31199 currentClass: 'swiper-pagination-current', 31200 totalClass: 'swiper-pagination-total', 31201 hiddenClass: 'swiper-pagination-hidden', 31202 progressbarFillClass: 'swiper-pagination-progressbar-fill', 31203 progressbarOppositeClass: 'swiper-pagination-progressbar-opposite', 31204 clickableClass: 'swiper-pagination-clickable', // NEW 31205 lockClass: 'swiper-pagination-lock' 31206 } 31207 }, 31208 create: function create() { 31209 var swiper = this; 31210 Utils.extend(swiper, { 31211 pagination: { 31212 init: Pagination.init.bind(swiper), 31213 render: Pagination.render.bind(swiper), 31214 update: Pagination.update.bind(swiper), 31215 destroy: Pagination.destroy.bind(swiper), 31216 dynamicBulletIndex: 0 31217 } 31218 }); 31219 }, 31220 31221 on: { 31222 init: function init() { 31223 var swiper = this; 31224 swiper.pagination.init(); 31225 swiper.pagination.render(); 31226 swiper.pagination.update(); 31227 }, 31228 activeIndexChange: function activeIndexChange() { 31229 var swiper = this; 31230 if (swiper.params.loop) { 31231 swiper.pagination.update(); 31232 } else if (typeof swiper.snapIndex === 'undefined') { 31233 swiper.pagination.update(); 31234 } 31235 }, 31236 snapIndexChange: function snapIndexChange() { 31237 var swiper = this; 31238 if (!swiper.params.loop) { 31239 swiper.pagination.update(); 31240 } 31241 }, 31242 slidesLengthChange: function slidesLengthChange() { 31243 var swiper = this; 31244 if (swiper.params.loop) { 31245 swiper.pagination.render(); 31246 swiper.pagination.update(); 31247 } 31248 }, 31249 snapGridLengthChange: function snapGridLengthChange() { 31250 var swiper = this; 31251 if (!swiper.params.loop) { 31252 swiper.pagination.render(); 31253 swiper.pagination.update(); 31254 } 31255 }, 31256 destroy: function destroy() { 31257 var swiper = this; 31258 swiper.pagination.destroy(); 31259 }, 31260 click: function click(e) { 31261 var swiper = this; 31262 if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(e.target).hasClass(swiper.params.pagination.bulletClass)) { 31263 swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass); 31264 } 31265 } 31266 } 31267}; 31268 31269var Scrollbar = { 31270 setTranslate: function setTranslate() { 31271 var swiper = this; 31272 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 31273 var scrollbar = swiper.scrollbar, 31274 rtl = swiper.rtlTranslate, 31275 progress = swiper.progress; 31276 var dragSize = scrollbar.dragSize, 31277 trackSize = scrollbar.trackSize, 31278 $dragEl = scrollbar.$dragEl, 31279 $el = scrollbar.$el; 31280 31281 var params = swiper.params.scrollbar; 31282 31283 var newSize = dragSize; 31284 var newPos = (trackSize - dragSize) * progress; 31285 if (rtl) { 31286 newPos = -newPos; 31287 if (newPos > 0) { 31288 newSize = dragSize - newPos; 31289 newPos = 0; 31290 } else if (-newPos + dragSize > trackSize) { 31291 newSize = trackSize + newPos; 31292 } 31293 } else if (newPos < 0) { 31294 newSize = dragSize + newPos; 31295 newPos = 0; 31296 } else if (newPos + dragSize > trackSize) { 31297 newSize = trackSize - newPos; 31298 } 31299 if (swiper.isHorizontal()) { 31300 if (Support.transforms3d) { 31301 $dragEl.transform('translate3d(' + newPos + 'px, 0, 0)'); 31302 } else { 31303 $dragEl.transform('translateX(' + newPos + 'px)'); 31304 } 31305 $dragEl[0].style.width = newSize + 'px'; 31306 } else { 31307 if (Support.transforms3d) { 31308 $dragEl.transform('translate3d(0px, ' + newPos + 'px, 0)'); 31309 } else { 31310 $dragEl.transform('translateY(' + newPos + 'px)'); 31311 } 31312 $dragEl[0].style.height = newSize + 'px'; 31313 } 31314 if (params.hide) { 31315 clearTimeout(swiper.scrollbar.timeout); 31316 $el[0].style.opacity = 1; 31317 swiper.scrollbar.timeout = setTimeout(function () { 31318 $el[0].style.opacity = 0; 31319 $el.transition(400); 31320 }, 1000); 31321 } 31322 }, 31323 setTransition: function setTransition(duration) { 31324 var swiper = this; 31325 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 31326 swiper.scrollbar.$dragEl.transition(duration); 31327 }, 31328 updateSize: function updateSize() { 31329 var swiper = this; 31330 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 31331 31332 var scrollbar = swiper.scrollbar; 31333 var $dragEl = scrollbar.$dragEl, 31334 $el = scrollbar.$el; 31335 31336 31337 $dragEl[0].style.width = ''; 31338 $dragEl[0].style.height = ''; 31339 var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight; 31340 31341 var divider = swiper.size / swiper.virtualSize; 31342 var moveDivider = divider * (trackSize / swiper.size); 31343 var dragSize = void 0; 31344 if (swiper.params.scrollbar.dragSize === 'auto') { 31345 dragSize = trackSize * divider; 31346 } else { 31347 dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); 31348 } 31349 31350 if (swiper.isHorizontal()) { 31351 $dragEl[0].style.width = dragSize + 'px'; 31352 } else { 31353 $dragEl[0].style.height = dragSize + 'px'; 31354 } 31355 31356 if (divider >= 1) { 31357 $el[0].style.display = 'none'; 31358 } else { 31359 $el[0].style.display = ''; 31360 } 31361 if (swiper.params.scrollbarHide) { 31362 $el[0].style.opacity = 0; 31363 } 31364 Utils.extend(scrollbar, { 31365 trackSize: trackSize, 31366 divider: divider, 31367 moveDivider: moveDivider, 31368 dragSize: dragSize 31369 }); 31370 scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass); 31371 }, 31372 setDragPosition: function setDragPosition(e) { 31373 var swiper = this; 31374 var scrollbar = swiper.scrollbar, 31375 rtl = swiper.rtlTranslate; 31376 var $el = scrollbar.$el, 31377 dragSize = scrollbar.dragSize, 31378 trackSize = scrollbar.trackSize; 31379 31380 31381 var pointerPosition = void 0; 31382 if (swiper.isHorizontal()) { 31383 pointerPosition = e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX || e.clientX; 31384 } else { 31385 pointerPosition = e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY || e.clientY; 31386 } 31387 var positionRatio = void 0; 31388 positionRatio = (pointerPosition - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - dragSize / 2) / (trackSize - dragSize); 31389 positionRatio = Math.max(Math.min(positionRatio, 1), 0); 31390 if (rtl) { 31391 positionRatio = 1 - positionRatio; 31392 } 31393 31394 var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio; 31395 31396 swiper.updateProgress(position); 31397 swiper.setTranslate(position); 31398 swiper.updateActiveIndex(); 31399 swiper.updateSlidesClasses(); 31400 }, 31401 onDragStart: function onDragStart(e) { 31402 var swiper = this; 31403 var params = swiper.params.scrollbar; 31404 var scrollbar = swiper.scrollbar, 31405 $wrapperEl = swiper.$wrapperEl; 31406 var $el = scrollbar.$el, 31407 $dragEl = scrollbar.$dragEl; 31408 31409 swiper.scrollbar.isTouched = true; 31410 e.preventDefault(); 31411 e.stopPropagation(); 31412 31413 $wrapperEl.transition(100); 31414 $dragEl.transition(100); 31415 scrollbar.setDragPosition(e); 31416 31417 clearTimeout(swiper.scrollbar.dragTimeout); 31418 31419 $el.transition(0); 31420 if (params.hide) { 31421 $el.css('opacity', 1); 31422 } 31423 swiper.emit('scrollbarDragStart', e); 31424 }, 31425 onDragMove: function onDragMove(e) { 31426 var swiper = this; 31427 var scrollbar = swiper.scrollbar, 31428 $wrapperEl = swiper.$wrapperEl; 31429 var $el = scrollbar.$el, 31430 $dragEl = scrollbar.$dragEl; 31431 31432 31433 if (!swiper.scrollbar.isTouched) return; 31434 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 31435 scrollbar.setDragPosition(e); 31436 $wrapperEl.transition(0); 31437 $el.transition(0); 31438 $dragEl.transition(0); 31439 swiper.emit('scrollbarDragMove', e); 31440 }, 31441 onDragEnd: function onDragEnd(e) { 31442 var swiper = this; 31443 31444 var params = swiper.params.scrollbar; 31445 var scrollbar = swiper.scrollbar; 31446 var $el = scrollbar.$el; 31447 31448 31449 if (!swiper.scrollbar.isTouched) return; 31450 swiper.scrollbar.isTouched = false; 31451 if (params.hide) { 31452 clearTimeout(swiper.scrollbar.dragTimeout); 31453 swiper.scrollbar.dragTimeout = Utils.nextTick(function () { 31454 $el.css('opacity', 0); 31455 $el.transition(400); 31456 }, 1000); 31457 } 31458 swiper.emit('scrollbarDragEnd', e); 31459 if (params.snapOnRelease) { 31460 swiper.slideToClosest(); 31461 } 31462 }, 31463 enableDraggable: function enableDraggable() { 31464 var swiper = this; 31465 if (!swiper.params.scrollbar.el) return; 31466 var scrollbar = swiper.scrollbar, 31467 touchEventsTouch = swiper.touchEventsTouch, 31468 touchEventsDesktop = swiper.touchEventsDesktop, 31469 params = swiper.params; 31470 31471 var $el = scrollbar.$el; 31472 var target = $el[0]; 31473 var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false; 31474 var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; 31475 if (!Support.touch) { 31476 target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener); 31477 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener); 31478 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener); 31479 } else { 31480 target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener); 31481 target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener); 31482 target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener); 31483 } 31484 }, 31485 disableDraggable: function disableDraggable() { 31486 var swiper = this; 31487 if (!swiper.params.scrollbar.el) return; 31488 var scrollbar = swiper.scrollbar, 31489 touchEventsTouch = swiper.touchEventsTouch, 31490 touchEventsDesktop = swiper.touchEventsDesktop, 31491 params = swiper.params; 31492 31493 var $el = scrollbar.$el; 31494 var target = $el[0]; 31495 var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false; 31496 var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; 31497 if (!Support.touch) { 31498 target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener); 31499 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener); 31500 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener); 31501 } else { 31502 target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener); 31503 target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener); 31504 target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener); 31505 } 31506 }, 31507 init: function init() { 31508 var swiper = this; 31509 if (!swiper.params.scrollbar.el) return; 31510 var scrollbar = swiper.scrollbar, 31511 $swiperEl = swiper.$el; 31512 31513 var params = swiper.params.scrollbar; 31514 31515 var $el = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(params.el); 31516 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) { 31517 $el = $swiperEl.find(params.el); 31518 } 31519 31520 var $dragEl = $el.find('.' + swiper.params.scrollbar.dragClass); 31521 if ($dragEl.length === 0) { 31522 $dragEl = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])('<div class="' + swiper.params.scrollbar.dragClass + '"></div>'); 31523 $el.append($dragEl); 31524 } 31525 31526 Utils.extend(scrollbar, { 31527 $el: $el, 31528 el: $el[0], 31529 $dragEl: $dragEl, 31530 dragEl: $dragEl[0] 31531 }); 31532 31533 if (params.draggable) { 31534 scrollbar.enableDraggable(); 31535 } 31536 }, 31537 destroy: function destroy() { 31538 var swiper = this; 31539 swiper.scrollbar.disableDraggable(); 31540 } 31541}; 31542 31543var Scrollbar$1 = { 31544 name: 'scrollbar', 31545 params: { 31546 scrollbar: { 31547 el: null, 31548 dragSize: 'auto', 31549 hide: false, 31550 draggable: false, 31551 snapOnRelease: true, 31552 lockClass: 'swiper-scrollbar-lock', 31553 dragClass: 'swiper-scrollbar-drag' 31554 } 31555 }, 31556 create: function create() { 31557 var swiper = this; 31558 Utils.extend(swiper, { 31559 scrollbar: { 31560 init: Scrollbar.init.bind(swiper), 31561 destroy: Scrollbar.destroy.bind(swiper), 31562 updateSize: Scrollbar.updateSize.bind(swiper), 31563 setTranslate: Scrollbar.setTranslate.bind(swiper), 31564 setTransition: Scrollbar.setTransition.bind(swiper), 31565 enableDraggable: Scrollbar.enableDraggable.bind(swiper), 31566 disableDraggable: Scrollbar.disableDraggable.bind(swiper), 31567 setDragPosition: Scrollbar.setDragPosition.bind(swiper), 31568 onDragStart: Scrollbar.onDragStart.bind(swiper), 31569 onDragMove: Scrollbar.onDragMove.bind(swiper), 31570 onDragEnd: Scrollbar.onDragEnd.bind(swiper), 31571 isTouched: false, 31572 timeout: null, 31573 dragTimeout: null 31574 } 31575 }); 31576 }, 31577 31578 on: { 31579 init: function init() { 31580 var swiper = this; 31581 swiper.scrollbar.init(); 31582 swiper.scrollbar.updateSize(); 31583 swiper.scrollbar.setTranslate(); 31584 }, 31585 update: function update() { 31586 var swiper = this; 31587 swiper.scrollbar.updateSize(); 31588 }, 31589 resize: function resize() { 31590 var swiper = this; 31591 swiper.scrollbar.updateSize(); 31592 }, 31593 observerUpdate: function observerUpdate() { 31594 var swiper = this; 31595 swiper.scrollbar.updateSize(); 31596 }, 31597 setTranslate: function setTranslate() { 31598 var swiper = this; 31599 swiper.scrollbar.setTranslate(); 31600 }, 31601 setTransition: function setTransition(duration) { 31602 var swiper = this; 31603 swiper.scrollbar.setTransition(duration); 31604 }, 31605 destroy: function destroy() { 31606 var swiper = this; 31607 swiper.scrollbar.destroy(); 31608 } 31609 } 31610}; 31611 31612var Parallax = { 31613 setTransform: function setTransform(el, progress) { 31614 var swiper = this; 31615 var rtl = swiper.rtl; 31616 31617 31618 var $el = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(el); 31619 var rtlFactor = rtl ? -1 : 1; 31620 31621 var p = $el.attr('data-swiper-parallax') || '0'; 31622 var x = $el.attr('data-swiper-parallax-x'); 31623 var y = $el.attr('data-swiper-parallax-y'); 31624 var scale = $el.attr('data-swiper-parallax-scale'); 31625 var opacity = $el.attr('data-swiper-parallax-opacity'); 31626 31627 if (x || y) { 31628 x = x || '0'; 31629 y = y || '0'; 31630 } else if (swiper.isHorizontal()) { 31631 x = p; 31632 y = '0'; 31633 } else { 31634 y = p; 31635 x = '0'; 31636 } 31637 31638 if (x.indexOf('%') >= 0) { 31639 x = parseInt(x, 10) * progress * rtlFactor + '%'; 31640 } else { 31641 x = x * progress * rtlFactor + 'px'; 31642 } 31643 if (y.indexOf('%') >= 0) { 31644 y = parseInt(y, 10) * progress + '%'; 31645 } else { 31646 y = y * progress + 'px'; 31647 } 31648 31649 if (typeof opacity !== 'undefined' && opacity !== null) { 31650 var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress)); 31651 $el[0].style.opacity = currentOpacity; 31652 } 31653 if (typeof scale === 'undefined' || scale === null) { 31654 $el.transform('translate3d(' + x + ', ' + y + ', 0px)'); 31655 } else { 31656 var currentScale = scale - (scale - 1) * (1 - Math.abs(progress)); 31657 $el.transform('translate3d(' + x + ', ' + y + ', 0px) scale(' + currentScale + ')'); 31658 } 31659 }, 31660 setTranslate: function setTranslate() { 31661 var swiper = this; 31662 var $el = swiper.$el, 31663 slides = swiper.slides, 31664 progress = swiper.progress, 31665 snapGrid = swiper.snapGrid; 31666 31667 $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]').each(function (index$$1, el) { 31668 swiper.parallax.setTransform(el, progress); 31669 }); 31670 slides.each(function (slideIndex, slideEl) { 31671 var slideProgress = slideEl.progress; 31672 if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { 31673 slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1); 31674 } 31675 slideProgress = Math.min(Math.max(slideProgress, -1), 1); 31676 Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]').each(function (index$$1, el) { 31677 swiper.parallax.setTransform(el, slideProgress); 31678 }); 31679 }); 31680 }, 31681 setTransition: function setTransition() { 31682 var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed; 31683 31684 var swiper = this; 31685 var $el = swiper.$el; 31686 31687 $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y]').each(function (index$$1, parallaxEl) { 31688 var $parallaxEl = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(parallaxEl); 31689 var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration; 31690 if (duration === 0) parallaxDuration = 0; 31691 $parallaxEl.transition(parallaxDuration); 31692 }); 31693 } 31694}; 31695 31696var Parallax$1 = { 31697 name: 'parallax', 31698 params: { 31699 parallax: { 31700 enabled: false 31701 } 31702 }, 31703 create: function create() { 31704 var swiper = this; 31705 Utils.extend(swiper, { 31706 parallax: { 31707 setTransform: Parallax.setTransform.bind(swiper), 31708 setTranslate: Parallax.setTranslate.bind(swiper), 31709 setTransition: Parallax.setTransition.bind(swiper) 31710 } 31711 }); 31712 }, 31713 31714 on: { 31715 beforeInit: function beforeInit() { 31716 var swiper = this; 31717 if (!swiper.params.parallax.enabled) return; 31718 swiper.params.watchSlidesProgress = true; 31719 swiper.originalParams.watchSlidesProgress = true; 31720 }, 31721 init: function init() { 31722 var swiper = this; 31723 if (!swiper.params.parallax) return; 31724 swiper.parallax.setTranslate(); 31725 }, 31726 setTranslate: function setTranslate() { 31727 var swiper = this; 31728 if (!swiper.params.parallax) return; 31729 swiper.parallax.setTranslate(); 31730 }, 31731 setTransition: function setTransition(duration) { 31732 var swiper = this; 31733 if (!swiper.params.parallax) return; 31734 swiper.parallax.setTransition(duration); 31735 } 31736 } 31737}; 31738 31739var Zoom = { 31740 // Calc Scale From Multi-touches 31741 getDistanceBetweenTouches: function getDistanceBetweenTouches(e) { 31742 if (e.targetTouches.length < 2) return 1; 31743 var x1 = e.targetTouches[0].pageX; 31744 var y1 = e.targetTouches[0].pageY; 31745 var x2 = e.targetTouches[1].pageX; 31746 var y2 = e.targetTouches[1].pageY; 31747 var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)); 31748 return distance; 31749 }, 31750 31751 // Events 31752 onGestureStart: function onGestureStart(e) { 31753 var swiper = this; 31754 var params = swiper.params.zoom; 31755 var zoom = swiper.zoom; 31756 var gesture = zoom.gesture; 31757 31758 zoom.fakeGestureTouched = false; 31759 zoom.fakeGestureMoved = false; 31760 if (!Support.gestures) { 31761 if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) { 31762 return; 31763 } 31764 zoom.fakeGestureTouched = true; 31765 gesture.scaleStart = Zoom.getDistanceBetweenTouches(e); 31766 } 31767 if (!gesture.$slideEl || !gesture.$slideEl.length) { 31768 gesture.$slideEl = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(e.target).closest('.swiper-slide'); 31769 if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); 31770 gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas'); 31771 gesture.$imageWrapEl = gesture.$imageEl.parent('.' + params.containerClass); 31772 gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; 31773 if (gesture.$imageWrapEl.length === 0) { 31774 gesture.$imageEl = undefined; 31775 return; 31776 } 31777 } 31778 gesture.$imageEl.transition(0); 31779 swiper.zoom.isScaling = true; 31780 }, 31781 onGestureChange: function onGestureChange(e) { 31782 var swiper = this; 31783 var params = swiper.params.zoom; 31784 var zoom = swiper.zoom; 31785 var gesture = zoom.gesture; 31786 31787 if (!Support.gestures) { 31788 if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) { 31789 return; 31790 } 31791 zoom.fakeGestureMoved = true; 31792 gesture.scaleMove = Zoom.getDistanceBetweenTouches(e); 31793 } 31794 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 31795 if (Support.gestures) { 31796 zoom.scale = e.scale * zoom.currentScale; 31797 } else { 31798 zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.currentScale; 31799 } 31800 if (zoom.scale > gesture.maxRatio) { 31801 zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5); 31802 } 31803 if (zoom.scale < params.minRatio) { 31804 zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5); 31805 } 31806 gesture.$imageEl.transform('translate3d(0,0,0) scale(' + zoom.scale + ')'); 31807 }, 31808 onGestureEnd: function onGestureEnd(e) { 31809 var swiper = this; 31810 var params = swiper.params.zoom; 31811 var zoom = swiper.zoom; 31812 var gesture = zoom.gesture; 31813 31814 if (!Support.gestures) { 31815 if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) { 31816 return; 31817 } 31818 if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android) { 31819 return; 31820 } 31821 zoom.fakeGestureTouched = false; 31822 zoom.fakeGestureMoved = false; 31823 } 31824 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 31825 zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); 31826 gesture.$imageEl.transition(swiper.params.speed).transform('translate3d(0,0,0) scale(' + zoom.scale + ')'); 31827 zoom.currentScale = zoom.scale; 31828 zoom.isScaling = false; 31829 if (zoom.scale === 1) gesture.$slideEl = undefined; 31830 }, 31831 onTouchStart: function onTouchStart(e) { 31832 var swiper = this; 31833 var zoom = swiper.zoom; 31834 var gesture = zoom.gesture, 31835 image = zoom.image; 31836 31837 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 31838 if (image.isTouched) return; 31839 if (Device.android) e.preventDefault(); 31840 image.isTouched = true; 31841 image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; 31842 image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; 31843 }, 31844 onTouchMove: function onTouchMove(e) { 31845 var swiper = this; 31846 var zoom = swiper.zoom; 31847 var gesture = zoom.gesture, 31848 image = zoom.image, 31849 velocity = zoom.velocity; 31850 31851 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 31852 swiper.allowClick = false; 31853 if (!image.isTouched || !gesture.$slideEl) return; 31854 31855 if (!image.isMoved) { 31856 image.width = gesture.$imageEl[0].offsetWidth; 31857 image.height = gesture.$imageEl[0].offsetHeight; 31858 image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0; 31859 image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0; 31860 gesture.slideWidth = gesture.$slideEl[0].offsetWidth; 31861 gesture.slideHeight = gesture.$slideEl[0].offsetHeight; 31862 gesture.$imageWrapEl.transition(0); 31863 if (swiper.rtl) { 31864 image.startX = -image.startX; 31865 image.startY = -image.startY; 31866 } 31867 } 31868 // Define if we need image drag 31869 var scaledWidth = image.width * zoom.scale; 31870 var scaledHeight = image.height * zoom.scale; 31871 31872 if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return; 31873 31874 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 31875 image.maxX = -image.minX; 31876 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 31877 image.maxY = -image.minY; 31878 31879 image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; 31880 image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; 31881 31882 if (!image.isMoved && !zoom.isScaling) { 31883 if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) { 31884 image.isTouched = false; 31885 return; 31886 }if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) { 31887 image.isTouched = false; 31888 return; 31889 } 31890 } 31891 e.preventDefault(); 31892 e.stopPropagation(); 31893 31894 image.isMoved = true; 31895 image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX; 31896 image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY; 31897 31898 if (image.currentX < image.minX) { 31899 image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8); 31900 } 31901 if (image.currentX > image.maxX) { 31902 image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8); 31903 } 31904 31905 if (image.currentY < image.minY) { 31906 image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8); 31907 } 31908 if (image.currentY > image.maxY) { 31909 image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8); 31910 } 31911 31912 // Velocity 31913 if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x; 31914 if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y; 31915 if (!velocity.prevTime) velocity.prevTime = Date.now(); 31916 velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; 31917 velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; 31918 if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0; 31919 if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0; 31920 velocity.prevPositionX = image.touchesCurrent.x; 31921 velocity.prevPositionY = image.touchesCurrent.y; 31922 velocity.prevTime = Date.now(); 31923 31924 gesture.$imageWrapEl.transform('translate3d(' + image.currentX + 'px, ' + image.currentY + 'px,0)'); 31925 }, 31926 onTouchEnd: function onTouchEnd() { 31927 var swiper = this; 31928 var zoom = swiper.zoom; 31929 var gesture = zoom.gesture, 31930 image = zoom.image, 31931 velocity = zoom.velocity; 31932 31933 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 31934 if (!image.isTouched || !image.isMoved) { 31935 image.isTouched = false; 31936 image.isMoved = false; 31937 return; 31938 } 31939 image.isTouched = false; 31940 image.isMoved = false; 31941 var momentumDurationX = 300; 31942 var momentumDurationY = 300; 31943 var momentumDistanceX = velocity.x * momentumDurationX; 31944 var newPositionX = image.currentX + momentumDistanceX; 31945 var momentumDistanceY = velocity.y * momentumDurationY; 31946 var newPositionY = image.currentY + momentumDistanceY; 31947 31948 // Fix duration 31949 if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); 31950 if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); 31951 var momentumDuration = Math.max(momentumDurationX, momentumDurationY); 31952 31953 image.currentX = newPositionX; 31954 image.currentY = newPositionY; 31955 31956 // Define if we need image drag 31957 var scaledWidth = image.width * zoom.scale; 31958 var scaledHeight = image.height * zoom.scale; 31959 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 31960 image.maxX = -image.minX; 31961 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 31962 image.maxY = -image.minY; 31963 image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); 31964 image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); 31965 31966 gesture.$imageWrapEl.transition(momentumDuration).transform('translate3d(' + image.currentX + 'px, ' + image.currentY + 'px,0)'); 31967 }, 31968 onTransitionEnd: function onTransitionEnd() { 31969 var swiper = this; 31970 var zoom = swiper.zoom; 31971 var gesture = zoom.gesture; 31972 31973 if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) { 31974 gesture.$imageEl.transform('translate3d(0,0,0) scale(1)'); 31975 gesture.$imageWrapEl.transform('translate3d(0,0,0)'); 31976 31977 zoom.scale = 1; 31978 zoom.currentScale = 1; 31979 31980 gesture.$slideEl = undefined; 31981 gesture.$imageEl = undefined; 31982 gesture.$imageWrapEl = undefined; 31983 } 31984 }, 31985 31986 // Toggle Zoom 31987 toggle: function toggle(e) { 31988 var swiper = this; 31989 var zoom = swiper.zoom; 31990 31991 if (zoom.scale && zoom.scale !== 1) { 31992 // Zoom Out 31993 zoom.out(); 31994 } else { 31995 // Zoom In 31996 zoom.in(e); 31997 } 31998 }, 31999 in: function _in(e) { 32000 var swiper = this; 32001 32002 var zoom = swiper.zoom; 32003 var params = swiper.params.zoom; 32004 var gesture = zoom.gesture, 32005 image = zoom.image; 32006 32007 32008 if (!gesture.$slideEl) { 32009 gesture.$slideEl = swiper.clickedSlide ? Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex); 32010 gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas'); 32011 gesture.$imageWrapEl = gesture.$imageEl.parent('.' + params.containerClass); 32012 } 32013 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 32014 32015 gesture.$slideEl.addClass('' + params.zoomedSlideClass); 32016 32017 var touchX = void 0; 32018 var touchY = void 0; 32019 var offsetX = void 0; 32020 var offsetY = void 0; 32021 var diffX = void 0; 32022 var diffY = void 0; 32023 var translateX = void 0; 32024 var translateY = void 0; 32025 var imageWidth = void 0; 32026 var imageHeight = void 0; 32027 var scaledWidth = void 0; 32028 var scaledHeight = void 0; 32029 var translateMinX = void 0; 32030 var translateMinY = void 0; 32031 var translateMaxX = void 0; 32032 var translateMaxY = void 0; 32033 var slideWidth = void 0; 32034 var slideHeight = void 0; 32035 32036 if (typeof image.touchesStart.x === 'undefined' && e) { 32037 touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX; 32038 touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY; 32039 } else { 32040 touchX = image.touchesStart.x; 32041 touchY = image.touchesStart.y; 32042 } 32043 32044 zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; 32045 zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; 32046 if (e) { 32047 slideWidth = gesture.$slideEl[0].offsetWidth; 32048 slideHeight = gesture.$slideEl[0].offsetHeight; 32049 offsetX = gesture.$slideEl.offset().left; 32050 offsetY = gesture.$slideEl.offset().top; 32051 diffX = offsetX + slideWidth / 2 - touchX; 32052 diffY = offsetY + slideHeight / 2 - touchY; 32053 32054 imageWidth = gesture.$imageEl[0].offsetWidth; 32055 imageHeight = gesture.$imageEl[0].offsetHeight; 32056 scaledWidth = imageWidth * zoom.scale; 32057 scaledHeight = imageHeight * zoom.scale; 32058 32059 translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0); 32060 translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0); 32061 translateMaxX = -translateMinX; 32062 translateMaxY = -translateMinY; 32063 32064 translateX = diffX * zoom.scale; 32065 translateY = diffY * zoom.scale; 32066 32067 if (translateX < translateMinX) { 32068 translateX = translateMinX; 32069 } 32070 if (translateX > translateMaxX) { 32071 translateX = translateMaxX; 32072 } 32073 32074 if (translateY < translateMinY) { 32075 translateY = translateMinY; 32076 } 32077 if (translateY > translateMaxY) { 32078 translateY = translateMaxY; 32079 } 32080 } else { 32081 translateX = 0; 32082 translateY = 0; 32083 } 32084 gesture.$imageWrapEl.transition(300).transform('translate3d(' + translateX + 'px, ' + translateY + 'px,0)'); 32085 gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(' + zoom.scale + ')'); 32086 }, 32087 out: function out() { 32088 var swiper = this; 32089 32090 var zoom = swiper.zoom; 32091 var params = swiper.params.zoom; 32092 var gesture = zoom.gesture; 32093 32094 32095 if (!gesture.$slideEl) { 32096 gesture.$slideEl = swiper.clickedSlide ? Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(swiper.clickedSlide) : swiper.slides.eq(swiper.activeIndex); 32097 gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas'); 32098 gesture.$imageWrapEl = gesture.$imageEl.parent('.' + params.containerClass); 32099 } 32100 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 32101 32102 zoom.scale = 1; 32103 zoom.currentScale = 1; 32104 gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)'); 32105 gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)'); 32106 gesture.$slideEl.removeClass('' + params.zoomedSlideClass); 32107 gesture.$slideEl = undefined; 32108 }, 32109 32110 // Attach/Detach Events 32111 enable: function enable() { 32112 var swiper = this; 32113 var zoom = swiper.zoom; 32114 if (zoom.enabled) return; 32115 zoom.enabled = true; 32116 32117 var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false; 32118 32119 // Scale image 32120 if (Support.gestures) { 32121 swiper.$wrapperEl.on('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener); 32122 swiper.$wrapperEl.on('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener); 32123 swiper.$wrapperEl.on('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener); 32124 } else if (swiper.touchEvents.start === 'touchstart') { 32125 swiper.$wrapperEl.on(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener); 32126 swiper.$wrapperEl.on(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener); 32127 swiper.$wrapperEl.on(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener); 32128 } 32129 32130 // Move image 32131 swiper.$wrapperEl.on(swiper.touchEvents.move, '.' + swiper.params.zoom.containerClass, zoom.onTouchMove); 32132 }, 32133 disable: function disable() { 32134 var swiper = this; 32135 var zoom = swiper.zoom; 32136 if (!zoom.enabled) return; 32137 32138 swiper.zoom.enabled = false; 32139 32140 var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false; 32141 32142 // Scale image 32143 if (Support.gestures) { 32144 swiper.$wrapperEl.off('gesturestart', '.swiper-slide', zoom.onGestureStart, passiveListener); 32145 swiper.$wrapperEl.off('gesturechange', '.swiper-slide', zoom.onGestureChange, passiveListener); 32146 swiper.$wrapperEl.off('gestureend', '.swiper-slide', zoom.onGestureEnd, passiveListener); 32147 } else if (swiper.touchEvents.start === 'touchstart') { 32148 swiper.$wrapperEl.off(swiper.touchEvents.start, '.swiper-slide', zoom.onGestureStart, passiveListener); 32149 swiper.$wrapperEl.off(swiper.touchEvents.move, '.swiper-slide', zoom.onGestureChange, passiveListener); 32150 swiper.$wrapperEl.off(swiper.touchEvents.end, '.swiper-slide', zoom.onGestureEnd, passiveListener); 32151 } 32152 32153 // Move image 32154 swiper.$wrapperEl.off(swiper.touchEvents.move, '.' + swiper.params.zoom.containerClass, zoom.onTouchMove); 32155 } 32156}; 32157 32158var Zoom$1 = { 32159 name: 'zoom', 32160 params: { 32161 zoom: { 32162 enabled: false, 32163 maxRatio: 3, 32164 minRatio: 1, 32165 toggle: true, 32166 containerClass: 'swiper-zoom-container', 32167 zoomedSlideClass: 'swiper-slide-zoomed' 32168 } 32169 }, 32170 create: function create() { 32171 var swiper = this; 32172 var zoom = { 32173 enabled: false, 32174 scale: 1, 32175 currentScale: 1, 32176 isScaling: false, 32177 gesture: { 32178 $slideEl: undefined, 32179 slideWidth: undefined, 32180 slideHeight: undefined, 32181 $imageEl: undefined, 32182 $imageWrapEl: undefined, 32183 maxRatio: 3 32184 }, 32185 image: { 32186 isTouched: undefined, 32187 isMoved: undefined, 32188 currentX: undefined, 32189 currentY: undefined, 32190 minX: undefined, 32191 minY: undefined, 32192 maxX: undefined, 32193 maxY: undefined, 32194 width: undefined, 32195 height: undefined, 32196 startX: undefined, 32197 startY: undefined, 32198 touchesStart: {}, 32199 touchesCurrent: {} 32200 }, 32201 velocity: { 32202 x: undefined, 32203 y: undefined, 32204 prevPositionX: undefined, 32205 prevPositionY: undefined, 32206 prevTime: undefined 32207 } 32208 }; 32209 32210 'onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out'.split(' ').forEach(function (methodName) { 32211 zoom[methodName] = Zoom[methodName].bind(swiper); 32212 }); 32213 Utils.extend(swiper, { 32214 zoom: zoom 32215 }); 32216 32217 var scale = 1; 32218 Object.defineProperty(swiper.zoom, 'scale', { 32219 get: function get() { 32220 return scale; 32221 }, 32222 set: function set(value) { 32223 if (scale !== value) { 32224 var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined; 32225 var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined; 32226 swiper.emit('zoomChange', value, imageEl, slideEl); 32227 } 32228 scale = value; 32229 } 32230 }); 32231 }, 32232 32233 on: { 32234 init: function init() { 32235 var swiper = this; 32236 if (swiper.params.zoom.enabled) { 32237 swiper.zoom.enable(); 32238 } 32239 }, 32240 destroy: function destroy() { 32241 var swiper = this; 32242 swiper.zoom.disable(); 32243 }, 32244 touchStart: function touchStart(e) { 32245 var swiper = this; 32246 if (!swiper.zoom.enabled) return; 32247 swiper.zoom.onTouchStart(e); 32248 }, 32249 touchEnd: function touchEnd(e) { 32250 var swiper = this; 32251 if (!swiper.zoom.enabled) return; 32252 swiper.zoom.onTouchEnd(e); 32253 }, 32254 doubleTap: function doubleTap(e) { 32255 var swiper = this; 32256 if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { 32257 swiper.zoom.toggle(e); 32258 } 32259 }, 32260 transitionEnd: function transitionEnd() { 32261 var swiper = this; 32262 if (swiper.zoom.enabled && swiper.params.zoom.enabled) { 32263 swiper.zoom.onTransitionEnd(); 32264 } 32265 } 32266 } 32267}; 32268 32269var Lazy = { 32270 loadInSlide: function loadInSlide(index$$1) { 32271 var loadInDuplicate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 32272 32273 var swiper = this; 32274 var params = swiper.params.lazy; 32275 if (typeof index$$1 === 'undefined') return; 32276 if (swiper.slides.length === 0) return; 32277 var isVirtual = swiper.virtual && swiper.params.virtual.enabled; 32278 32279 var $slideEl = isVirtual ? swiper.$wrapperEl.children('.' + swiper.params.slideClass + '[data-swiper-slide-index="' + index$$1 + '"]') : swiper.slides.eq(index$$1); 32280 32281 var $images = $slideEl.find('.' + params.elementClass + ':not(.' + params.loadedClass + '):not(.' + params.loadingClass + ')'); 32282 if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) { 32283 $images = $images.add($slideEl[0]); 32284 } 32285 if ($images.length === 0) return; 32286 32287 $images.each(function (imageIndex, imageEl) { 32288 var $imageEl = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(imageEl); 32289 $imageEl.addClass(params.loadingClass); 32290 32291 var background = $imageEl.attr('data-background'); 32292 var src = $imageEl.attr('data-src'); 32293 var srcset = $imageEl.attr('data-srcset'); 32294 var sizes = $imageEl.attr('data-sizes'); 32295 32296 swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () { 32297 if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return; 32298 if (background) { 32299 $imageEl.css('background-image', 'url("' + background + '")'); 32300 $imageEl.removeAttr('data-background'); 32301 } else { 32302 if (srcset) { 32303 $imageEl.attr('srcset', srcset); 32304 $imageEl.removeAttr('data-srcset'); 32305 } 32306 if (sizes) { 32307 $imageEl.attr('sizes', sizes); 32308 $imageEl.removeAttr('data-sizes'); 32309 } 32310 if (src) { 32311 $imageEl.attr('src', src); 32312 $imageEl.removeAttr('data-src'); 32313 } 32314 } 32315 32316 $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass); 32317 $slideEl.find('.' + params.preloaderClass).remove(); 32318 if (swiper.params.loop && loadInDuplicate) { 32319 var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index'); 32320 if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) { 32321 var originalSlide = swiper.$wrapperEl.children('[data-swiper-slide-index="' + slideOriginalIndex + '"]:not(.' + swiper.params.slideDuplicateClass + ')'); 32322 swiper.lazy.loadInSlide(originalSlide.index(), false); 32323 } else { 32324 var duplicatedSlide = swiper.$wrapperEl.children('.' + swiper.params.slideDuplicateClass + '[data-swiper-slide-index="' + slideOriginalIndex + '"]'); 32325 swiper.lazy.loadInSlide(duplicatedSlide.index(), false); 32326 } 32327 } 32328 swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]); 32329 }); 32330 32331 swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]); 32332 }); 32333 }, 32334 load: function load() { 32335 var swiper = this; 32336 var $wrapperEl = swiper.$wrapperEl, 32337 swiperParams = swiper.params, 32338 slides = swiper.slides, 32339 activeIndex = swiper.activeIndex; 32340 32341 var isVirtual = swiper.virtual && swiperParams.virtual.enabled; 32342 var params = swiperParams.lazy; 32343 32344 var slidesPerView = swiperParams.slidesPerView; 32345 if (slidesPerView === 'auto') { 32346 slidesPerView = 0; 32347 } 32348 32349 function slideExist(index$$1) { 32350 if (isVirtual) { 32351 if ($wrapperEl.children('.' + swiperParams.slideClass + '[data-swiper-slide-index="' + index$$1 + '"]').length) { 32352 return true; 32353 } 32354 } else if (slides[index$$1]) return true; 32355 return false; 32356 } 32357 function slideIndex(slideEl) { 32358 if (isVirtual) { 32359 return Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(slideEl).attr('data-swiper-slide-index'); 32360 } 32361 return Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(slideEl).index(); 32362 } 32363 32364 if (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true; 32365 if (swiper.params.watchSlidesVisibility) { 32366 $wrapperEl.children('.' + swiperParams.slideVisibleClass).each(function (elIndex, slideEl) { 32367 var index$$1 = isVirtual ? Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(slideEl).attr('data-swiper-slide-index') : Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(slideEl).index(); 32368 swiper.lazy.loadInSlide(index$$1); 32369 }); 32370 } else if (slidesPerView > 1) { 32371 for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) { 32372 if (slideExist(i)) swiper.lazy.loadInSlide(i); 32373 } 32374 } else { 32375 swiper.lazy.loadInSlide(activeIndex); 32376 } 32377 if (params.loadPrevNext) { 32378 if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) { 32379 var amount = params.loadPrevNextAmount; 32380 var spv = slidesPerView; 32381 var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length); 32382 var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); 32383 // Next Slides 32384 for (var _i10 = activeIndex + slidesPerView; _i10 < maxIndex; _i10 += 1) { 32385 if (slideExist(_i10)) swiper.lazy.loadInSlide(_i10); 32386 } 32387 // Prev Slides 32388 for (var _i11 = minIndex; _i11 < activeIndex; _i11 += 1) { 32389 if (slideExist(_i11)) swiper.lazy.loadInSlide(_i11); 32390 } 32391 } else { 32392 var nextSlide = $wrapperEl.children('.' + swiperParams.slideNextClass); 32393 if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide)); 32394 32395 var prevSlide = $wrapperEl.children('.' + swiperParams.slidePrevClass); 32396 if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide)); 32397 } 32398 } 32399 } 32400}; 32401 32402var Lazy$1 = { 32403 name: 'lazy', 32404 params: { 32405 lazy: { 32406 enabled: false, 32407 loadPrevNext: false, 32408 loadPrevNextAmount: 1, 32409 loadOnTransitionStart: false, 32410 32411 elementClass: 'swiper-lazy', 32412 loadingClass: 'swiper-lazy-loading', 32413 loadedClass: 'swiper-lazy-loaded', 32414 preloaderClass: 'swiper-lazy-preloader' 32415 } 32416 }, 32417 create: function create() { 32418 var swiper = this; 32419 Utils.extend(swiper, { 32420 lazy: { 32421 initialImageLoaded: false, 32422 load: Lazy.load.bind(swiper), 32423 loadInSlide: Lazy.loadInSlide.bind(swiper) 32424 } 32425 }); 32426 }, 32427 32428 on: { 32429 beforeInit: function beforeInit() { 32430 var swiper = this; 32431 if (swiper.params.lazy.enabled && swiper.params.preloadImages) { 32432 swiper.params.preloadImages = false; 32433 } 32434 }, 32435 init: function init() { 32436 var swiper = this; 32437 if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) { 32438 swiper.lazy.load(); 32439 } 32440 }, 32441 scroll: function scroll() { 32442 var swiper = this; 32443 if (swiper.params.freeMode && !swiper.params.freeModeSticky) { 32444 swiper.lazy.load(); 32445 } 32446 }, 32447 resize: function resize() { 32448 var swiper = this; 32449 if (swiper.params.lazy.enabled) { 32450 swiper.lazy.load(); 32451 } 32452 }, 32453 scrollbarDragMove: function scrollbarDragMove() { 32454 var swiper = this; 32455 if (swiper.params.lazy.enabled) { 32456 swiper.lazy.load(); 32457 } 32458 }, 32459 transitionStart: function transitionStart() { 32460 var swiper = this; 32461 if (swiper.params.lazy.enabled) { 32462 if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) { 32463 swiper.lazy.load(); 32464 } 32465 } 32466 }, 32467 transitionEnd: function transitionEnd() { 32468 var swiper = this; 32469 if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) { 32470 swiper.lazy.load(); 32471 } 32472 } 32473 } 32474}; 32475 32476/* eslint no-bitwise: ["error", { "allow": [">>"] }] */ 32477 32478var Controller = { 32479 LinearSpline: function LinearSpline(x, y) { 32480 var binarySearch = function search() { 32481 var maxIndex = void 0; 32482 var minIndex = void 0; 32483 var guess = void 0; 32484 return function (array, val) { 32485 minIndex = -1; 32486 maxIndex = array.length; 32487 while (maxIndex - minIndex > 1) { 32488 guess = maxIndex + minIndex >> 1; 32489 if (array[guess] <= val) { 32490 minIndex = guess; 32491 } else { 32492 maxIndex = guess; 32493 } 32494 } 32495 return maxIndex; 32496 }; 32497 }(); 32498 this.x = x; 32499 this.y = y; 32500 this.lastIndex = x.length - 1; 32501 // Given an x value (x2), return the expected y2 value: 32502 // (x1,y1) is the known point before given value, 32503 // (x3,y3) is the known point after given value. 32504 var i1 = void 0; 32505 var i3 = void 0; 32506 32507 this.interpolate = function interpolate(x2) { 32508 if (!x2) return 0; 32509 32510 // Get the indexes of x1 and x3 (the array indexes before and after given x2): 32511 i3 = binarySearch(this.x, x2); 32512 i1 = i3 - 1; 32513 32514 // We have our indexes i1 & i3, so we can calculate already: 32515 // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1 32516 return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1]; 32517 }; 32518 return this; 32519 }, 32520 // xxx: for now i will just save one spline function to to 32521 getInterpolateFunction: function getInterpolateFunction(c) { 32522 var swiper = this; 32523 if (!swiper.controller.spline) { 32524 swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid); 32525 } 32526 }, 32527 setTranslate: function setTranslate(_setTranslate, byController) { 32528 var swiper = this; 32529 var controlled = swiper.controller.control; 32530 var multiplier = void 0; 32531 var controlledTranslate = void 0; 32532 function setControlledTranslate(c) { 32533 // this will create an Interpolate function based on the snapGrids 32534 // x is the Grid of the scrolled scroller and y will be the controlled scroller 32535 // it makes sense to create this only once and recall it for the interpolation 32536 // the function does a lot of value caching for performance 32537 var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate; 32538 if (swiper.params.controller.by === 'slide') { 32539 swiper.controller.getInterpolateFunction(c); 32540 // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid 32541 // but it did not work out 32542 controlledTranslate = -swiper.controller.spline.interpolate(-translate); 32543 } 32544 32545 if (!controlledTranslate || swiper.params.controller.by === 'container') { 32546 multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); 32547 controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate(); 32548 } 32549 32550 if (swiper.params.controller.inverse) { 32551 controlledTranslate = c.maxTranslate() - controlledTranslate; 32552 } 32553 c.updateProgress(controlledTranslate); 32554 c.setTranslate(controlledTranslate, swiper); 32555 c.updateActiveIndex(); 32556 c.updateSlidesClasses(); 32557 } 32558 if (Array.isArray(controlled)) { 32559 for (var i = 0; i < controlled.length; i += 1) { 32560 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 32561 setControlledTranslate(controlled[i]); 32562 } 32563 } 32564 } else if (controlled instanceof Swiper && byController !== controlled) { 32565 setControlledTranslate(controlled); 32566 } 32567 }, 32568 setTransition: function setTransition(duration, byController) { 32569 var swiper = this; 32570 var controlled = swiper.controller.control; 32571 var i = void 0; 32572 function setControlledTransition(c) { 32573 c.setTransition(duration, swiper); 32574 if (duration !== 0) { 32575 c.transitionStart(); 32576 if (c.params.autoHeight) { 32577 Utils.nextTick(function () { 32578 c.updateAutoHeight(); 32579 }); 32580 } 32581 c.$wrapperEl.transitionEnd(function () { 32582 if (!controlled) return; 32583 if (c.params.loop && swiper.params.controller.by === 'slide') { 32584 c.loopFix(); 32585 } 32586 c.transitionEnd(); 32587 }); 32588 } 32589 } 32590 if (Array.isArray(controlled)) { 32591 for (i = 0; i < controlled.length; i += 1) { 32592 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 32593 setControlledTransition(controlled[i]); 32594 } 32595 } 32596 } else if (controlled instanceof Swiper && byController !== controlled) { 32597 setControlledTransition(controlled); 32598 } 32599 } 32600}; 32601var Controller$1 = { 32602 name: 'controller', 32603 params: { 32604 controller: { 32605 control: undefined, 32606 inverse: false, 32607 by: 'slide' // or 'container' 32608 } 32609 }, 32610 create: function create() { 32611 var swiper = this; 32612 Utils.extend(swiper, { 32613 controller: { 32614 control: swiper.params.controller.control, 32615 getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper), 32616 setTranslate: Controller.setTranslate.bind(swiper), 32617 setTransition: Controller.setTransition.bind(swiper) 32618 } 32619 }); 32620 }, 32621 32622 on: { 32623 update: function update() { 32624 var swiper = this; 32625 if (!swiper.controller.control) return; 32626 if (swiper.controller.spline) { 32627 swiper.controller.spline = undefined; 32628 delete swiper.controller.spline; 32629 } 32630 }, 32631 resize: function resize() { 32632 var swiper = this; 32633 if (!swiper.controller.control) return; 32634 if (swiper.controller.spline) { 32635 swiper.controller.spline = undefined; 32636 delete swiper.controller.spline; 32637 } 32638 }, 32639 observerUpdate: function observerUpdate() { 32640 var swiper = this; 32641 if (!swiper.controller.control) return; 32642 if (swiper.controller.spline) { 32643 swiper.controller.spline = undefined; 32644 delete swiper.controller.spline; 32645 } 32646 }, 32647 setTranslate: function setTranslate(translate, byController) { 32648 var swiper = this; 32649 if (!swiper.controller.control) return; 32650 swiper.controller.setTranslate(translate, byController); 32651 }, 32652 setTransition: function setTransition(duration, byController) { 32653 var swiper = this; 32654 if (!swiper.controller.control) return; 32655 swiper.controller.setTransition(duration, byController); 32656 } 32657 } 32658}; 32659 32660var a11y = { 32661 makeElFocusable: function makeElFocusable($el) { 32662 $el.attr('tabIndex', '0'); 32663 return $el; 32664 }, 32665 addElRole: function addElRole($el, role) { 32666 $el.attr('role', role); 32667 return $el; 32668 }, 32669 addElLabel: function addElLabel($el, label) { 32670 $el.attr('aria-label', label); 32671 return $el; 32672 }, 32673 disableEl: function disableEl($el) { 32674 $el.attr('aria-disabled', true); 32675 return $el; 32676 }, 32677 enableEl: function enableEl($el) { 32678 $el.attr('aria-disabled', false); 32679 return $el; 32680 }, 32681 onEnterKey: function onEnterKey(e) { 32682 var swiper = this; 32683 var params = swiper.params.a11y; 32684 if (e.keyCode !== 13) return; 32685 var $targetEl = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(e.target); 32686 if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) { 32687 if (!(swiper.isEnd && !swiper.params.loop)) { 32688 swiper.slideNext(); 32689 } 32690 if (swiper.isEnd) { 32691 swiper.a11y.notify(params.lastSlideMessage); 32692 } else { 32693 swiper.a11y.notify(params.nextSlideMessage); 32694 } 32695 } 32696 if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) { 32697 if (!(swiper.isBeginning && !swiper.params.loop)) { 32698 swiper.slidePrev(); 32699 } 32700 if (swiper.isBeginning) { 32701 swiper.a11y.notify(params.firstSlideMessage); 32702 } else { 32703 swiper.a11y.notify(params.prevSlideMessage); 32704 } 32705 } 32706 if (swiper.pagination && $targetEl.is('.' + swiper.params.pagination.bulletClass)) { 32707 $targetEl[0].click(); 32708 } 32709 }, 32710 notify: function notify(message) { 32711 var swiper = this; 32712 var notification = swiper.a11y.liveRegion; 32713 if (notification.length === 0) return; 32714 notification.html(''); 32715 notification.html(message); 32716 }, 32717 updateNavigation: function updateNavigation() { 32718 var swiper = this; 32719 32720 if (swiper.params.loop) return; 32721 var _swiper$navigation4 = swiper.navigation, 32722 $nextEl = _swiper$navigation4.$nextEl, 32723 $prevEl = _swiper$navigation4.$prevEl; 32724 32725 32726 if ($prevEl && $prevEl.length > 0) { 32727 if (swiper.isBeginning) { 32728 swiper.a11y.disableEl($prevEl); 32729 } else { 32730 swiper.a11y.enableEl($prevEl); 32731 } 32732 } 32733 if ($nextEl && $nextEl.length > 0) { 32734 if (swiper.isEnd) { 32735 swiper.a11y.disableEl($nextEl); 32736 } else { 32737 swiper.a11y.enableEl($nextEl); 32738 } 32739 } 32740 }, 32741 updatePagination: function updatePagination() { 32742 var swiper = this; 32743 var params = swiper.params.a11y; 32744 if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { 32745 swiper.pagination.bullets.each(function (bulletIndex, bulletEl) { 32746 var $bulletEl = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(bulletEl); 32747 swiper.a11y.makeElFocusable($bulletEl); 32748 swiper.a11y.addElRole($bulletEl, 'button'); 32749 swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/{{index}}/, $bulletEl.index() + 1)); 32750 }); 32751 } 32752 }, 32753 init: function init() { 32754 var swiper = this; 32755 32756 swiper.$el.append(swiper.a11y.liveRegion); 32757 32758 // Navigation 32759 var params = swiper.params.a11y; 32760 var $nextEl = void 0; 32761 var $prevEl = void 0; 32762 if (swiper.navigation && swiper.navigation.$nextEl) { 32763 $nextEl = swiper.navigation.$nextEl; 32764 } 32765 if (swiper.navigation && swiper.navigation.$prevEl) { 32766 $prevEl = swiper.navigation.$prevEl; 32767 } 32768 if ($nextEl) { 32769 swiper.a11y.makeElFocusable($nextEl); 32770 swiper.a11y.addElRole($nextEl, 'button'); 32771 swiper.a11y.addElLabel($nextEl, params.nextSlideMessage); 32772 $nextEl.on('keydown', swiper.a11y.onEnterKey); 32773 } 32774 if ($prevEl) { 32775 swiper.a11y.makeElFocusable($prevEl); 32776 swiper.a11y.addElRole($prevEl, 'button'); 32777 swiper.a11y.addElLabel($prevEl, params.prevSlideMessage); 32778 $prevEl.on('keydown', swiper.a11y.onEnterKey); 32779 } 32780 32781 // Pagination 32782 if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { 32783 swiper.pagination.$el.on('keydown', '.' + swiper.params.pagination.bulletClass, swiper.a11y.onEnterKey); 32784 } 32785 }, 32786 destroy: function destroy() { 32787 var swiper = this; 32788 if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.liveRegion.remove(); 32789 32790 var $nextEl = void 0; 32791 var $prevEl = void 0; 32792 if (swiper.navigation && swiper.navigation.$nextEl) { 32793 $nextEl = swiper.navigation.$nextEl; 32794 } 32795 if (swiper.navigation && swiper.navigation.$prevEl) { 32796 $prevEl = swiper.navigation.$prevEl; 32797 } 32798 if ($nextEl) { 32799 $nextEl.off('keydown', swiper.a11y.onEnterKey); 32800 } 32801 if ($prevEl) { 32802 $prevEl.off('keydown', swiper.a11y.onEnterKey); 32803 } 32804 32805 // Pagination 32806 if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { 32807 swiper.pagination.$el.off('keydown', '.' + swiper.params.pagination.bulletClass, swiper.a11y.onEnterKey); 32808 } 32809 } 32810}; 32811var A11y = { 32812 name: 'a11y', 32813 params: { 32814 a11y: { 32815 enabled: true, 32816 notificationClass: 'swiper-notification', 32817 prevSlideMessage: 'Previous slide', 32818 nextSlideMessage: 'Next slide', 32819 firstSlideMessage: 'This is the first slide', 32820 lastSlideMessage: 'This is the last slide', 32821 paginationBulletMessage: 'Go to slide {{index}}' 32822 } 32823 }, 32824 create: function create() { 32825 var swiper = this; 32826 Utils.extend(swiper, { 32827 a11y: { 32828 liveRegion: Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])('<span class="' + swiper.params.a11y.notificationClass + '" aria-live="assertive" aria-atomic="true"></span>') 32829 } 32830 }); 32831 Object.keys(a11y).forEach(function (methodName) { 32832 swiper.a11y[methodName] = a11y[methodName].bind(swiper); 32833 }); 32834 }, 32835 32836 on: { 32837 init: function init() { 32838 var swiper = this; 32839 if (!swiper.params.a11y.enabled) return; 32840 swiper.a11y.init(); 32841 swiper.a11y.updateNavigation(); 32842 }, 32843 toEdge: function toEdge() { 32844 var swiper = this; 32845 if (!swiper.params.a11y.enabled) return; 32846 swiper.a11y.updateNavigation(); 32847 }, 32848 fromEdge: function fromEdge() { 32849 var swiper = this; 32850 if (!swiper.params.a11y.enabled) return; 32851 swiper.a11y.updateNavigation(); 32852 }, 32853 paginationUpdate: function paginationUpdate() { 32854 var swiper = this; 32855 if (!swiper.params.a11y.enabled) return; 32856 swiper.a11y.updatePagination(); 32857 }, 32858 destroy: function destroy() { 32859 var swiper = this; 32860 if (!swiper.params.a11y.enabled) return; 32861 swiper.a11y.destroy(); 32862 } 32863 } 32864}; 32865 32866var History = { 32867 init: function init() { 32868 var swiper = this; 32869 if (!swiper.params.history) return; 32870 if (!ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].history || !ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].history.pushState) { 32871 swiper.params.history.enabled = false; 32872 swiper.params.hashNavigation.enabled = true; 32873 return; 32874 } 32875 var history = swiper.history; 32876 history.initialized = true; 32877 history.paths = History.getPathValues(); 32878 if (!history.paths.key && !history.paths.value) return; 32879 history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit); 32880 if (!swiper.params.history.replaceState) { 32881 ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].addEventListener('popstate', swiper.history.setHistoryPopState); 32882 } 32883 }, 32884 destroy: function destroy() { 32885 var swiper = this; 32886 if (!swiper.params.history.replaceState) { 32887 ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].removeEventListener('popstate', swiper.history.setHistoryPopState); 32888 } 32889 }, 32890 setHistoryPopState: function setHistoryPopState() { 32891 var swiper = this; 32892 swiper.history.paths = History.getPathValues(); 32893 swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false); 32894 }, 32895 getPathValues: function getPathValues() { 32896 var pathArray = ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].location.pathname.slice(1).split('/').filter(function (part) { 32897 return part !== ''; 32898 }); 32899 var total = pathArray.length; 32900 var key = pathArray[total - 2]; 32901 var value = pathArray[total - 1]; 32902 return { key: key, value: value }; 32903 }, 32904 setHistory: function setHistory(key, index$$1) { 32905 var swiper = this; 32906 if (!swiper.history.initialized || !swiper.params.history.enabled) return; 32907 var slide = swiper.slides.eq(index$$1); 32908 var value = History.slugify(slide.attr('data-history')); 32909 if (!ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].location.pathname.includes(key)) { 32910 value = key + '/' + value; 32911 } 32912 var currentState = ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].history.state; 32913 if (currentState && currentState.value === value) { 32914 return; 32915 } 32916 if (swiper.params.history.replaceState) { 32917 ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].history.replaceState({ value: value }, null, value); 32918 } else { 32919 ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].history.pushState({ value: value }, null, value); 32920 } 32921 }, 32922 slugify: function slugify(text$$1) { 32923 return text$$1.toString().toLowerCase().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, ''); 32924 }, 32925 scrollToSlide: function scrollToSlide(speed, value, runCallbacks) { 32926 var swiper = this; 32927 if (value) { 32928 for (var i = 0, length = swiper.slides.length; i < length; i += 1) { 32929 var _slide3 = swiper.slides.eq(i); 32930 var slideHistory = History.slugify(_slide3.attr('data-history')); 32931 if (slideHistory === value && !_slide3.hasClass(swiper.params.slideDuplicateClass)) { 32932 var index$$1 = _slide3.index(); 32933 swiper.slideTo(index$$1, speed, runCallbacks); 32934 } 32935 } 32936 } else { 32937 swiper.slideTo(0, speed, runCallbacks); 32938 } 32939 } 32940}; 32941 32942var History$1 = { 32943 name: 'history', 32944 params: { 32945 history: { 32946 enabled: false, 32947 replaceState: false, 32948 key: 'slides' 32949 } 32950 }, 32951 create: function create() { 32952 var swiper = this; 32953 Utils.extend(swiper, { 32954 history: { 32955 init: History.init.bind(swiper), 32956 setHistory: History.setHistory.bind(swiper), 32957 setHistoryPopState: History.setHistoryPopState.bind(swiper), 32958 scrollToSlide: History.scrollToSlide.bind(swiper), 32959 destroy: History.destroy.bind(swiper) 32960 } 32961 }); 32962 }, 32963 32964 on: { 32965 init: function init() { 32966 var swiper = this; 32967 if (swiper.params.history.enabled) { 32968 swiper.history.init(); 32969 } 32970 }, 32971 destroy: function destroy() { 32972 var swiper = this; 32973 if (swiper.params.history.enabled) { 32974 swiper.history.destroy(); 32975 } 32976 }, 32977 transitionEnd: function transitionEnd() { 32978 var swiper = this; 32979 if (swiper.history.initialized) { 32980 swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex); 32981 } 32982 } 32983 } 32984}; 32985 32986var HashNavigation = { 32987 onHashCange: function onHashCange() { 32988 var swiper = this; 32989 var newHash = ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].location.hash.replace('#', ''); 32990 var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash'); 32991 if (newHash !== activeSlideHash) { 32992 var newIndex = swiper.$wrapperEl.children('.' + swiper.params.slideClass + '[data-hash="' + newHash + '"]').index(); 32993 if (typeof newIndex === 'undefined') return; 32994 swiper.slideTo(newIndex); 32995 } 32996 }, 32997 setHash: function setHash() { 32998 var swiper = this; 32999 if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return; 33000 if (swiper.params.hashNavigation.replaceState && ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].history && ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].history.replaceState) { 33001 ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"].history.replaceState(null, null, '#' + swiper.slides.eq(swiper.activeIndex).attr('data-hash') || ''); 33002 } else { 33003 var _slide4 = swiper.slides.eq(swiper.activeIndex); 33004 var hash = _slide4.attr('data-hash') || _slide4.attr('data-history'); 33005 ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].location.hash = hash || ''; 33006 } 33007 }, 33008 init: function init() { 33009 var swiper = this; 33010 if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return; 33011 swiper.hashNavigation.initialized = true; 33012 var hash = ssr_window__WEBPACK_IMPORTED_MODULE_1__["document"].location.hash.replace('#', ''); 33013 if (hash) { 33014 var speed = 0; 33015 for (var i = 0, length = swiper.slides.length; i < length; i += 1) { 33016 var _slide5 = swiper.slides.eq(i); 33017 var slideHash = _slide5.attr('data-hash') || _slide5.attr('data-history'); 33018 if (slideHash === hash && !_slide5.hasClass(swiper.params.slideDuplicateClass)) { 33019 var index$$1 = _slide5.index(); 33020 swiper.slideTo(index$$1, speed, swiper.params.runCallbacksOnInit, true); 33021 } 33022 } 33023 } 33024 if (swiper.params.hashNavigation.watchState) { 33025 Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"]).on('hashchange', swiper.hashNavigation.onHashCange); 33026 } 33027 }, 33028 destroy: function destroy() { 33029 var swiper = this; 33030 if (swiper.params.hashNavigation.watchState) { 33031 Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(ssr_window__WEBPACK_IMPORTED_MODULE_1__["window"]).off('hashchange', swiper.hashNavigation.onHashCange); 33032 } 33033 } 33034}; 33035var HashNavigation$1 = { 33036 name: 'hash-navigation', 33037 params: { 33038 hashNavigation: { 33039 enabled: false, 33040 replaceState: false, 33041 watchState: false 33042 } 33043 }, 33044 create: function create() { 33045 var swiper = this; 33046 Utils.extend(swiper, { 33047 hashNavigation: { 33048 initialized: false, 33049 init: HashNavigation.init.bind(swiper), 33050 destroy: HashNavigation.destroy.bind(swiper), 33051 setHash: HashNavigation.setHash.bind(swiper), 33052 onHashCange: HashNavigation.onHashCange.bind(swiper) 33053 } 33054 }); 33055 }, 33056 33057 on: { 33058 init: function init() { 33059 var swiper = this; 33060 if (swiper.params.hashNavigation.enabled) { 33061 swiper.hashNavigation.init(); 33062 } 33063 }, 33064 destroy: function destroy() { 33065 var swiper = this; 33066 if (swiper.params.hashNavigation.enabled) { 33067 swiper.hashNavigation.destroy(); 33068 } 33069 }, 33070 transitionEnd: function transitionEnd() { 33071 var swiper = this; 33072 if (swiper.hashNavigation.initialized) { 33073 swiper.hashNavigation.setHash(); 33074 } 33075 } 33076 } 33077}; 33078 33079/* eslint no-underscore-dangle: "off" */ 33080 33081var Autoplay = { 33082 run: function run() { 33083 var swiper = this; 33084 var $activeSlideEl = swiper.slides.eq(swiper.activeIndex); 33085 var delay = swiper.params.autoplay.delay; 33086 if ($activeSlideEl.attr('data-swiper-autoplay')) { 33087 delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay; 33088 } 33089 swiper.autoplay.timeout = Utils.nextTick(function () { 33090 if (swiper.params.autoplay.reverseDirection) { 33091 if (swiper.params.loop) { 33092 swiper.loopFix(); 33093 swiper.slidePrev(swiper.params.speed, true, true); 33094 swiper.emit('autoplay'); 33095 } else if (!swiper.isBeginning) { 33096 swiper.slidePrev(swiper.params.speed, true, true); 33097 swiper.emit('autoplay'); 33098 } else if (!swiper.params.autoplay.stopOnLastSlide) { 33099 swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true); 33100 swiper.emit('autoplay'); 33101 } else { 33102 swiper.autoplay.stop(); 33103 } 33104 } else if (swiper.params.loop) { 33105 swiper.loopFix(); 33106 swiper.slideNext(swiper.params.speed, true, true); 33107 swiper.emit('autoplay'); 33108 } else if (!swiper.isEnd) { 33109 swiper.slideNext(swiper.params.speed, true, true); 33110 swiper.emit('autoplay'); 33111 } else if (!swiper.params.autoplay.stopOnLastSlide) { 33112 swiper.slideTo(0, swiper.params.speed, true, true); 33113 swiper.emit('autoplay'); 33114 } else { 33115 swiper.autoplay.stop(); 33116 } 33117 }, delay); 33118 }, 33119 start: function start() { 33120 var swiper = this; 33121 if (typeof swiper.autoplay.timeout !== 'undefined') return false; 33122 if (swiper.autoplay.running) return false; 33123 swiper.autoplay.running = true; 33124 swiper.emit('autoplayStart'); 33125 swiper.autoplay.run(); 33126 return true; 33127 }, 33128 stop: function stop() { 33129 var swiper = this; 33130 if (!swiper.autoplay.running) return false; 33131 if (typeof swiper.autoplay.timeout === 'undefined') return false; 33132 33133 if (swiper.autoplay.timeout) { 33134 clearTimeout(swiper.autoplay.timeout); 33135 swiper.autoplay.timeout = undefined; 33136 } 33137 swiper.autoplay.running = false; 33138 swiper.emit('autoplayStop'); 33139 return true; 33140 }, 33141 pause: function pause(speed) { 33142 var swiper = this; 33143 if (!swiper.autoplay.running) return; 33144 if (swiper.autoplay.paused) return; 33145 if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout); 33146 swiper.autoplay.paused = true; 33147 if (speed === 0 || !swiper.params.autoplay.waitForTransition) { 33148 swiper.autoplay.paused = false; 33149 swiper.autoplay.run(); 33150 } else { 33151 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd); 33152 swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd); 33153 } 33154 } 33155}; 33156 33157var Autoplay$1 = { 33158 name: 'autoplay', 33159 params: { 33160 autoplay: { 33161 enabled: false, 33162 delay: 3000, 33163 waitForTransition: true, 33164 disableOnInteraction: true, 33165 stopOnLastSlide: false, 33166 reverseDirection: false 33167 } 33168 }, 33169 create: function create() { 33170 var swiper = this; 33171 Utils.extend(swiper, { 33172 autoplay: { 33173 running: false, 33174 paused: false, 33175 run: Autoplay.run.bind(swiper), 33176 start: Autoplay.start.bind(swiper), 33177 stop: Autoplay.stop.bind(swiper), 33178 pause: Autoplay.pause.bind(swiper), 33179 onTransitionEnd: function onTransitionEnd(e) { 33180 if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return; 33181 if (e.target !== this) return; 33182 swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd); 33183 swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd); 33184 swiper.autoplay.paused = false; 33185 if (!swiper.autoplay.running) { 33186 swiper.autoplay.stop(); 33187 } else { 33188 swiper.autoplay.run(); 33189 } 33190 } 33191 } 33192 }); 33193 }, 33194 33195 on: { 33196 init: function init() { 33197 var swiper = this; 33198 if (swiper.params.autoplay.enabled) { 33199 swiper.autoplay.start(); 33200 } 33201 }, 33202 beforeTransitionStart: function beforeTransitionStart(speed, internal) { 33203 var swiper = this; 33204 if (swiper.autoplay.running) { 33205 if (internal || !swiper.params.autoplay.disableOnInteraction) { 33206 swiper.autoplay.pause(speed); 33207 } else { 33208 swiper.autoplay.stop(); 33209 } 33210 } 33211 }, 33212 sliderFirstMove: function sliderFirstMove() { 33213 var swiper = this; 33214 if (swiper.autoplay.running) { 33215 if (swiper.params.autoplay.disableOnInteraction) { 33216 swiper.autoplay.stop(); 33217 } else { 33218 swiper.autoplay.pause(); 33219 } 33220 } 33221 }, 33222 destroy: function destroy() { 33223 var swiper = this; 33224 if (swiper.autoplay.running) { 33225 swiper.autoplay.stop(); 33226 } 33227 } 33228 } 33229}; 33230 33231var Fade = { 33232 setTranslate: function setTranslate() { 33233 var swiper = this; 33234 var slides = swiper.slides; 33235 33236 for (var i = 0; i < slides.length; i += 1) { 33237 var $slideEl = swiper.slides.eq(i); 33238 var offset$$1 = $slideEl[0].swiperSlideOffset; 33239 var tx = -offset$$1; 33240 if (!swiper.params.virtualTranslate) tx -= swiper.translate; 33241 var ty = 0; 33242 if (!swiper.isHorizontal()) { 33243 ty = tx; 33244 tx = 0; 33245 } 33246 var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0); 33247 $slideEl.css({ 33248 opacity: slideOpacity 33249 }).transform('translate3d(' + tx + 'px, ' + ty + 'px, 0px)'); 33250 } 33251 }, 33252 setTransition: function setTransition(duration) { 33253 var swiper = this; 33254 var slides = swiper.slides, 33255 $wrapperEl = swiper.$wrapperEl; 33256 33257 slides.transition(duration); 33258 if (swiper.params.virtualTranslate && duration !== 0) { 33259 var eventTriggered = false; 33260 slides.transitionEnd(function () { 33261 if (eventTriggered) return; 33262 if (!swiper || swiper.destroyed) return; 33263 eventTriggered = true; 33264 swiper.animating = false; 33265 var triggerEvents = ['webkitTransitionEnd', 'transitionend']; 33266 for (var i = 0; i < triggerEvents.length; i += 1) { 33267 $wrapperEl.trigger(triggerEvents[i]); 33268 } 33269 }); 33270 } 33271 } 33272}; 33273 33274var EffectFade = { 33275 name: 'effect-fade', 33276 params: { 33277 fadeEffect: { 33278 crossFade: false 33279 } 33280 }, 33281 create: function create() { 33282 var swiper = this; 33283 Utils.extend(swiper, { 33284 fadeEffect: { 33285 setTranslate: Fade.setTranslate.bind(swiper), 33286 setTransition: Fade.setTransition.bind(swiper) 33287 } 33288 }); 33289 }, 33290 33291 on: { 33292 beforeInit: function beforeInit() { 33293 var swiper = this; 33294 if (swiper.params.effect !== 'fade') return; 33295 swiper.classNames.push(swiper.params.containerModifierClass + 'fade'); 33296 var overwriteParams = { 33297 slidesPerView: 1, 33298 slidesPerColumn: 1, 33299 slidesPerGroup: 1, 33300 watchSlidesProgress: true, 33301 spaceBetween: 0, 33302 virtualTranslate: true 33303 }; 33304 Utils.extend(swiper.params, overwriteParams); 33305 Utils.extend(swiper.originalParams, overwriteParams); 33306 }, 33307 setTranslate: function setTranslate() { 33308 var swiper = this; 33309 if (swiper.params.effect !== 'fade') return; 33310 swiper.fadeEffect.setTranslate(); 33311 }, 33312 setTransition: function setTransition(duration) { 33313 var swiper = this; 33314 if (swiper.params.effect !== 'fade') return; 33315 swiper.fadeEffect.setTransition(duration); 33316 } 33317 } 33318}; 33319 33320var Cube = { 33321 setTranslate: function setTranslate() { 33322 var swiper = this; 33323 var $el = swiper.$el, 33324 $wrapperEl = swiper.$wrapperEl, 33325 slides = swiper.slides, 33326 swiperWidth = swiper.width, 33327 swiperHeight = swiper.height, 33328 rtl = swiper.rtlTranslate, 33329 swiperSize = swiper.size; 33330 33331 var params = swiper.params.cubeEffect; 33332 var isHorizontal = swiper.isHorizontal(); 33333 var isVirtual = swiper.virtual && swiper.params.virtual.enabled; 33334 var wrapperRotate = 0; 33335 var $cubeShadowEl = void 0; 33336 if (params.shadow) { 33337 if (isHorizontal) { 33338 $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow'); 33339 if ($cubeShadowEl.length === 0) { 33340 $cubeShadowEl = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])('<div class="swiper-cube-shadow"></div>'); 33341 $wrapperEl.append($cubeShadowEl); 33342 } 33343 $cubeShadowEl.css({ height: swiperWidth + 'px' }); 33344 } else { 33345 $cubeShadowEl = $el.find('.swiper-cube-shadow'); 33346 if ($cubeShadowEl.length === 0) { 33347 $cubeShadowEl = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])('<div class="swiper-cube-shadow"></div>'); 33348 $el.append($cubeShadowEl); 33349 } 33350 } 33351 } 33352 for (var i = 0; i < slides.length; i += 1) { 33353 var $slideEl = slides.eq(i); 33354 var slideIndex = i; 33355 if (isVirtual) { 33356 slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10); 33357 } 33358 var slideAngle = slideIndex * 90; 33359 var round = Math.floor(slideAngle / 360); 33360 if (rtl) { 33361 slideAngle = -slideAngle; 33362 round = Math.floor(-slideAngle / 360); 33363 } 33364 var progress = Math.max(Math.min($slideEl[0].progress, 1), -1); 33365 var tx = 0; 33366 var ty = 0; 33367 var tz = 0; 33368 if (slideIndex % 4 === 0) { 33369 tx = -round * 4 * swiperSize; 33370 tz = 0; 33371 } else if ((slideIndex - 1) % 4 === 0) { 33372 tx = 0; 33373 tz = -round * 4 * swiperSize; 33374 } else if ((slideIndex - 2) % 4 === 0) { 33375 tx = swiperSize + round * 4 * swiperSize; 33376 tz = swiperSize; 33377 } else if ((slideIndex - 3) % 4 === 0) { 33378 tx = -swiperSize; 33379 tz = 3 * swiperSize + swiperSize * 4 * round; 33380 } 33381 if (rtl) { 33382 tx = -tx; 33383 } 33384 33385 if (!isHorizontal) { 33386 ty = tx; 33387 tx = 0; 33388 } 33389 33390 var transform$$1 = 'rotateX(' + (isHorizontal ? 0 : -slideAngle) + 'deg) rotateY(' + (isHorizontal ? slideAngle : 0) + 'deg) translate3d(' + tx + 'px, ' + ty + 'px, ' + tz + 'px)'; 33391 if (progress <= 1 && progress > -1) { 33392 wrapperRotate = slideIndex * 90 + progress * 90; 33393 if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90; 33394 } 33395 $slideEl.transform(transform$$1); 33396 if (params.slideShadows) { 33397 // Set shadows 33398 var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); 33399 var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); 33400 if (shadowBefore.length === 0) { 33401 shadowBefore = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])('<div class="swiper-slide-shadow-' + (isHorizontal ? 'left' : 'top') + '"></div>'); 33402 $slideEl.append(shadowBefore); 33403 } 33404 if (shadowAfter.length === 0) { 33405 shadowAfter = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])('<div class="swiper-slide-shadow-' + (isHorizontal ? 'right' : 'bottom') + '"></div>'); 33406 $slideEl.append(shadowAfter); 33407 } 33408 if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0); 33409 if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0); 33410 } 33411 } 33412 $wrapperEl.css({ 33413 '-webkit-transform-origin': '50% 50% -' + swiperSize / 2 + 'px', 33414 '-moz-transform-origin': '50% 50% -' + swiperSize / 2 + 'px', 33415 '-ms-transform-origin': '50% 50% -' + swiperSize / 2 + 'px', 33416 'transform-origin': '50% 50% -' + swiperSize / 2 + 'px' 33417 }); 33418 33419 if (params.shadow) { 33420 if (isHorizontal) { 33421 $cubeShadowEl.transform('translate3d(0px, ' + (swiperWidth / 2 + params.shadowOffset) + 'px, ' + -swiperWidth / 2 + 'px) rotateX(90deg) rotateZ(0deg) scale(' + params.shadowScale + ')'); 33422 } else { 33423 var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90; 33424 var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2); 33425 var scale1 = params.shadowScale; 33426 var scale2 = params.shadowScale / multiplier; 33427 var offset$$1 = params.shadowOffset; 33428 $cubeShadowEl.transform('scale3d(' + scale1 + ', 1, ' + scale2 + ') translate3d(0px, ' + (swiperHeight / 2 + offset$$1) + 'px, ' + -swiperHeight / 2 / scale2 + 'px) rotateX(-90deg)'); 33429 } 33430 } 33431 var zFactor = Browser.isSafari || Browser.isUiWebView ? -swiperSize / 2 : 0; 33432 $wrapperEl.transform('translate3d(0px,0,' + zFactor + 'px) rotateX(' + (swiper.isHorizontal() ? 0 : wrapperRotate) + 'deg) rotateY(' + (swiper.isHorizontal() ? -wrapperRotate : 0) + 'deg)'); 33433 }, 33434 setTransition: function setTransition(duration) { 33435 var swiper = this; 33436 var $el = swiper.$el, 33437 slides = swiper.slides; 33438 33439 slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration); 33440 if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { 33441 $el.find('.swiper-cube-shadow').transition(duration); 33442 } 33443 } 33444}; 33445 33446var EffectCube = { 33447 name: 'effect-cube', 33448 params: { 33449 cubeEffect: { 33450 slideShadows: true, 33451 shadow: true, 33452 shadowOffset: 20, 33453 shadowScale: 0.94 33454 } 33455 }, 33456 create: function create() { 33457 var swiper = this; 33458 Utils.extend(swiper, { 33459 cubeEffect: { 33460 setTranslate: Cube.setTranslate.bind(swiper), 33461 setTransition: Cube.setTransition.bind(swiper) 33462 } 33463 }); 33464 }, 33465 33466 on: { 33467 beforeInit: function beforeInit() { 33468 var swiper = this; 33469 if (swiper.params.effect !== 'cube') return; 33470 swiper.classNames.push(swiper.params.containerModifierClass + 'cube'); 33471 swiper.classNames.push(swiper.params.containerModifierClass + '3d'); 33472 var overwriteParams = { 33473 slidesPerView: 1, 33474 slidesPerColumn: 1, 33475 slidesPerGroup: 1, 33476 watchSlidesProgress: true, 33477 resistanceRatio: 0, 33478 spaceBetween: 0, 33479 centeredSlides: false, 33480 virtualTranslate: true 33481 }; 33482 Utils.extend(swiper.params, overwriteParams); 33483 Utils.extend(swiper.originalParams, overwriteParams); 33484 }, 33485 setTranslate: function setTranslate() { 33486 var swiper = this; 33487 if (swiper.params.effect !== 'cube') return; 33488 swiper.cubeEffect.setTranslate(); 33489 }, 33490 setTransition: function setTransition(duration) { 33491 var swiper = this; 33492 if (swiper.params.effect !== 'cube') return; 33493 swiper.cubeEffect.setTransition(duration); 33494 } 33495 } 33496}; 33497 33498var Flip = { 33499 setTranslate: function setTranslate() { 33500 var swiper = this; 33501 var slides = swiper.slides, 33502 rtl = swiper.rtlTranslate; 33503 33504 for (var i = 0; i < slides.length; i += 1) { 33505 var $slideEl = slides.eq(i); 33506 var progress = $slideEl[0].progress; 33507 if (swiper.params.flipEffect.limitRotation) { 33508 progress = Math.max(Math.min($slideEl[0].progress, 1), -1); 33509 } 33510 var offset$$1 = $slideEl[0].swiperSlideOffset; 33511 var rotate = -180 * progress; 33512 var rotateY = rotate; 33513 var rotateX = 0; 33514 var tx = -offset$$1; 33515 var ty = 0; 33516 if (!swiper.isHorizontal()) { 33517 ty = tx; 33518 tx = 0; 33519 rotateX = -rotateY; 33520 rotateY = 0; 33521 } else if (rtl) { 33522 rotateY = -rotateY; 33523 } 33524 33525 $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length; 33526 33527 if (swiper.params.flipEffect.slideShadows) { 33528 // Set shadows 33529 var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); 33530 var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); 33531 if (shadowBefore.length === 0) { 33532 shadowBefore = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])('<div class="swiper-slide-shadow-' + (swiper.isHorizontal() ? 'left' : 'top') + '"></div>'); 33533 $slideEl.append(shadowBefore); 33534 } 33535 if (shadowAfter.length === 0) { 33536 shadowAfter = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])('<div class="swiper-slide-shadow-' + (swiper.isHorizontal() ? 'right' : 'bottom') + '"></div>'); 33537 $slideEl.append(shadowAfter); 33538 } 33539 if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0); 33540 if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0); 33541 } 33542 $slideEl.transform('translate3d(' + tx + 'px, ' + ty + 'px, 0px) rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg)'); 33543 } 33544 }, 33545 setTransition: function setTransition(duration) { 33546 var swiper = this; 33547 var slides = swiper.slides, 33548 activeIndex = swiper.activeIndex, 33549 $wrapperEl = swiper.$wrapperEl; 33550 33551 slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration); 33552 if (swiper.params.virtualTranslate && duration !== 0) { 33553 var eventTriggered = false; 33554 // eslint-disable-next-line 33555 slides.eq(activeIndex).transitionEnd(function onTransitionEnd() { 33556 if (eventTriggered) return; 33557 if (!swiper || swiper.destroyed) return; 33558 // if (!$(this).hasClass(swiper.params.slideActiveClass)) return; 33559 eventTriggered = true; 33560 swiper.animating = false; 33561 var triggerEvents = ['webkitTransitionEnd', 'transitionend']; 33562 for (var i = 0; i < triggerEvents.length; i += 1) { 33563 $wrapperEl.trigger(triggerEvents[i]); 33564 } 33565 }); 33566 } 33567 } 33568}; 33569 33570var EffectFlip = { 33571 name: 'effect-flip', 33572 params: { 33573 flipEffect: { 33574 slideShadows: true, 33575 limitRotation: true 33576 } 33577 }, 33578 create: function create() { 33579 var swiper = this; 33580 Utils.extend(swiper, { 33581 flipEffect: { 33582 setTranslate: Flip.setTranslate.bind(swiper), 33583 setTransition: Flip.setTransition.bind(swiper) 33584 } 33585 }); 33586 }, 33587 33588 on: { 33589 beforeInit: function beforeInit() { 33590 var swiper = this; 33591 if (swiper.params.effect !== 'flip') return; 33592 swiper.classNames.push(swiper.params.containerModifierClass + 'flip'); 33593 swiper.classNames.push(swiper.params.containerModifierClass + '3d'); 33594 var overwriteParams = { 33595 slidesPerView: 1, 33596 slidesPerColumn: 1, 33597 slidesPerGroup: 1, 33598 watchSlidesProgress: true, 33599 spaceBetween: 0, 33600 virtualTranslate: true 33601 }; 33602 Utils.extend(swiper.params, overwriteParams); 33603 Utils.extend(swiper.originalParams, overwriteParams); 33604 }, 33605 setTranslate: function setTranslate() { 33606 var swiper = this; 33607 if (swiper.params.effect !== 'flip') return; 33608 swiper.flipEffect.setTranslate(); 33609 }, 33610 setTransition: function setTransition(duration) { 33611 var swiper = this; 33612 if (swiper.params.effect !== 'flip') return; 33613 swiper.flipEffect.setTransition(duration); 33614 } 33615 } 33616}; 33617 33618var Coverflow = { 33619 setTranslate: function setTranslate() { 33620 var swiper = this; 33621 var swiperWidth = swiper.width, 33622 swiperHeight = swiper.height, 33623 slides = swiper.slides, 33624 $wrapperEl = swiper.$wrapperEl, 33625 slidesSizesGrid = swiper.slidesSizesGrid; 33626 33627 var params = swiper.params.coverflowEffect; 33628 var isHorizontal = swiper.isHorizontal(); 33629 var transform$$1 = swiper.translate; 33630 var center = isHorizontal ? -transform$$1 + swiperWidth / 2 : -transform$$1 + swiperHeight / 2; 33631 var rotate = isHorizontal ? params.rotate : -params.rotate; 33632 var translate = params.depth; 33633 // Each slide offset from center 33634 for (var i = 0, length = slides.length; i < length; i += 1) { 33635 var $slideEl = slides.eq(i); 33636 var slideSize = slidesSizesGrid[i]; 33637 var slideOffset = $slideEl[0].swiperSlideOffset; 33638 var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier; 33639 33640 var rotateY = isHorizontal ? rotate * offsetMultiplier : 0; 33641 var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; 33642 // var rotateZ = 0 33643 var translateZ = -translate * Math.abs(offsetMultiplier); 33644 33645 var translateY = isHorizontal ? 0 : params.stretch * offsetMultiplier; 33646 var translateX = isHorizontal ? params.stretch * offsetMultiplier : 0; 33647 33648 // Fix for ultra small values 33649 if (Math.abs(translateX) < 0.001) translateX = 0; 33650 if (Math.abs(translateY) < 0.001) translateY = 0; 33651 if (Math.abs(translateZ) < 0.001) translateZ = 0; 33652 if (Math.abs(rotateY) < 0.001) rotateY = 0; 33653 if (Math.abs(rotateX) < 0.001) rotateX = 0; 33654 33655 var slideTransform = 'translate3d(' + translateX + 'px,' + translateY + 'px,' + translateZ + 'px) rotateX(' + rotateX + 'deg) rotateY(' + rotateY + 'deg)'; 33656 33657 $slideEl.transform(slideTransform); 33658 $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; 33659 if (params.slideShadows) { 33660 // Set shadows 33661 var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); 33662 var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); 33663 if ($shadowBeforeEl.length === 0) { 33664 $shadowBeforeEl = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])('<div class="swiper-slide-shadow-' + (isHorizontal ? 'left' : 'top') + '"></div>'); 33665 $slideEl.append($shadowBeforeEl); 33666 } 33667 if ($shadowAfterEl.length === 0) { 33668 $shadowAfterEl = Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])('<div class="swiper-slide-shadow-' + (isHorizontal ? 'right' : 'bottom') + '"></div>'); 33669 $slideEl.append($shadowAfterEl); 33670 } 33671 if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; 33672 if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0; 33673 } 33674 } 33675 33676 // Set correct perspective for IE10 33677 if (Support.pointerEvents || Support.prefixedPointerEvents) { 33678 var ws = $wrapperEl[0].style; 33679 ws.perspectiveOrigin = center + 'px 50%'; 33680 } 33681 }, 33682 setTransition: function setTransition(duration) { 33683 var swiper = this; 33684 swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration); 33685 } 33686}; 33687 33688var EffectCoverflow = { 33689 name: 'effect-coverflow', 33690 params: { 33691 coverflowEffect: { 33692 rotate: 50, 33693 stretch: 0, 33694 depth: 100, 33695 modifier: 1, 33696 slideShadows: true 33697 } 33698 }, 33699 create: function create() { 33700 var swiper = this; 33701 Utils.extend(swiper, { 33702 coverflowEffect: { 33703 setTranslate: Coverflow.setTranslate.bind(swiper), 33704 setTransition: Coverflow.setTransition.bind(swiper) 33705 } 33706 }); 33707 }, 33708 33709 on: { 33710 beforeInit: function beforeInit() { 33711 var swiper = this; 33712 if (swiper.params.effect !== 'coverflow') return; 33713 33714 swiper.classNames.push(swiper.params.containerModifierClass + 'coverflow'); 33715 swiper.classNames.push(swiper.params.containerModifierClass + '3d'); 33716 33717 swiper.params.watchSlidesProgress = true; 33718 swiper.originalParams.watchSlidesProgress = true; 33719 }, 33720 setTranslate: function setTranslate() { 33721 var swiper = this; 33722 if (swiper.params.effect !== 'coverflow') return; 33723 swiper.coverflowEffect.setTranslate(); 33724 }, 33725 setTransition: function setTransition(duration) { 33726 var swiper = this; 33727 if (swiper.params.effect !== 'coverflow') return; 33728 swiper.coverflowEffect.setTransition(duration); 33729 } 33730 } 33731}; 33732 33733var Thumbs = { 33734 init: function init() { 33735 var swiper = this; 33736 var thumbsParams = swiper.params.thumbs; 33737 33738 var SwiperClass = swiper.constructor; 33739 if (thumbsParams.swiper instanceof SwiperClass) { 33740 swiper.thumbs.swiper = thumbsParams.swiper; 33741 Utils.extend(swiper.thumbs.swiper.originalParams, { 33742 watchSlidesProgress: true, 33743 slideToClickedSlide: false 33744 }); 33745 Utils.extend(swiper.thumbs.swiper.params, { 33746 watchSlidesProgress: true, 33747 slideToClickedSlide: false 33748 }); 33749 } else if (Utils.isObject(thumbsParams.swiper)) { 33750 swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, { 33751 watchSlidesVisibility: true, 33752 watchSlidesProgress: true, 33753 slideToClickedSlide: false 33754 })); 33755 swiper.thumbs.swiperCreated = true; 33756 } 33757 swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass); 33758 swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick); 33759 }, 33760 onThumbClick: function onThumbClick() { 33761 var swiper = this; 33762 var thumbsSwiper = swiper.thumbs.swiper; 33763 if (!thumbsSwiper) return; 33764 var clickedIndex = thumbsSwiper.clickedIndex; 33765 var clickedSlide = thumbsSwiper.clickedSlide; 33766 if (clickedSlide && Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return; 33767 if (typeof clickedIndex === 'undefined' || clickedIndex === null) return; 33768 var slideToIndex = void 0; 33769 if (thumbsSwiper.params.loop) { 33770 slideToIndex = parseInt(Object(dom7_dist_dom7_modular__WEBPACK_IMPORTED_MODULE_0__["$"])(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10); 33771 } else { 33772 slideToIndex = clickedIndex; 33773 } 33774 if (swiper.params.loop) { 33775 var currentIndex = swiper.activeIndex; 33776 if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) { 33777 swiper.loopFix(); 33778 // eslint-disable-next-line 33779 swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 33780 currentIndex = swiper.activeIndex; 33781 } 33782 var prevIndex = swiper.slides.eq(currentIndex).prevAll('[data-swiper-slide-index="' + slideToIndex + '"]').eq(0).index(); 33783 var nextIndex = swiper.slides.eq(currentIndex).nextAll('[data-swiper-slide-index="' + slideToIndex + '"]').eq(0).index(); 33784 if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex; 33785 } 33786 swiper.slideTo(slideToIndex); 33787 }, 33788 update: function update(initial) { 33789 var swiper = this; 33790 var thumbsSwiper = swiper.thumbs.swiper; 33791 if (!thumbsSwiper) return; 33792 33793 var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; 33794 33795 if (swiper.realIndex !== thumbsSwiper.realIndex) { 33796 var currentThumbsIndex = thumbsSwiper.activeIndex; 33797 var newThumbsIndex = void 0; 33798 if (thumbsSwiper.params.loop) { 33799 if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) { 33800 thumbsSwiper.loopFix(); 33801 // eslint-disable-next-line 33802 thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft; 33803 currentThumbsIndex = thumbsSwiper.activeIndex; 33804 } 33805 // Find actual thumbs index to slide to 33806 var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll('[data-swiper-slide-index="' + swiper.realIndex + '"]').eq(0).index(); 33807 var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll('[data-swiper-slide-index="' + swiper.realIndex + '"]').eq(0).index(); 33808 if (typeof prevThumbsIndex === 'undefined') newThumbsIndex = nextThumbsIndex;else if (typeof nextThumbsIndex === 'undefined') newThumbsIndex = prevThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) newThumbsIndex = currentThumbsIndex;else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) newThumbsIndex = nextThumbsIndex;else newThumbsIndex = prevThumbsIndex; 33809 } else { 33810 newThumbsIndex = swiper.realIndex; 33811 } 33812 if (thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) { 33813 if (thumbsSwiper.params.centeredSlides) { 33814 if (newThumbsIndex > currentThumbsIndex) { 33815 newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1; 33816 } else { 33817 newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1; 33818 } 33819 } else if (newThumbsIndex > currentThumbsIndex) { 33820 newThumbsIndex = newThumbsIndex - slidesPerView + 1; 33821 } 33822 thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined); 33823 } 33824 } 33825 33826 // Activate thumbs 33827 var thumbsToActivate = 1; 33828 var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass; 33829 33830 if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) { 33831 thumbsToActivate = swiper.params.slidesPerView; 33832 } 33833 33834 thumbsSwiper.slides.removeClass(thumbActiveClass); 33835 if (thumbsSwiper.params.loop) { 33836 for (var i = 0; i < thumbsToActivate; i += 1) { 33837 thumbsSwiper.$wrapperEl.children('[data-swiper-slide-index="' + (swiper.realIndex + i) + '"]').addClass(thumbActiveClass); 33838 } 33839 } else { 33840 for (var _i12 = 0; _i12 < thumbsToActivate; _i12 += 1) { 33841 thumbsSwiper.slides.eq(swiper.realIndex + _i12).addClass(thumbActiveClass); 33842 } 33843 } 33844 } 33845}; 33846var Thumbs$1 = { 33847 name: 'thumbs', 33848 params: { 33849 thumbs: { 33850 swiper: null, 33851 slideThumbActiveClass: 'swiper-slide-thumb-active', 33852 thumbsContainerClass: 'swiper-container-thumbs' 33853 } 33854 }, 33855 create: function create() { 33856 var swiper = this; 33857 Utils.extend(swiper, { 33858 thumbs: { 33859 swiper: null, 33860 init: Thumbs.init.bind(swiper), 33861 update: Thumbs.update.bind(swiper), 33862 onThumbClick: Thumbs.onThumbClick.bind(swiper) 33863 } 33864 }); 33865 }, 33866 33867 on: { 33868 beforeInit: function beforeInit() { 33869 var swiper = this; 33870 var thumbs = swiper.params.thumbs; 33871 33872 if (!thumbs || !thumbs.swiper) return; 33873 swiper.thumbs.init(); 33874 swiper.thumbs.update(true); 33875 }, 33876 slideChange: function slideChange() { 33877 var swiper = this; 33878 if (!swiper.thumbs.swiper) return; 33879 swiper.thumbs.update(); 33880 }, 33881 update: function update() { 33882 var swiper = this; 33883 if (!swiper.thumbs.swiper) return; 33884 swiper.thumbs.update(); 33885 }, 33886 resize: function resize() { 33887 var swiper = this; 33888 if (!swiper.thumbs.swiper) return; 33889 swiper.thumbs.update(); 33890 }, 33891 observerUpdate: function observerUpdate() { 33892 var swiper = this; 33893 if (!swiper.thumbs.swiper) return; 33894 swiper.thumbs.update(); 33895 }, 33896 setTransition: function setTransition(duration) { 33897 var swiper = this; 33898 var thumbsSwiper = swiper.thumbs.swiper; 33899 if (!thumbsSwiper) return; 33900 thumbsSwiper.setTransition(duration); 33901 }, 33902 beforeDestroy: function beforeDestroy() { 33903 var swiper = this; 33904 var thumbsSwiper = swiper.thumbs.swiper; 33905 if (!thumbsSwiper) return; 33906 if (swiper.thumbs.swiperCreated && thumbsSwiper) { 33907 thumbsSwiper.destroy(); 33908 } 33909 } 33910 } 33911}; 33912 33913// Swiper Class 33914 33915var components = [Device$1, Support$1, Browser$1, Resize, Observer$1, Virtual$1, Keyboard$1, Mousewheel$1, Navigation$1, Pagination$1, Scrollbar$1, Parallax$1, Zoom$1, Lazy$1, Controller$1, A11y, History$1, HashNavigation$1, Autoplay$1, EffectFade, EffectCube, EffectFlip, EffectCoverflow, Thumbs$1]; 33916 33917if (typeof Swiper.use === 'undefined') { 33918 Swiper.use = Swiper.Class.use; 33919 Swiper.installModule = Swiper.Class.installModule; 33920} 33921 33922Swiper.use(components); 33923 33924/* harmony default export */ __webpack_exports__["default"] = (Swiper); 33925 33926/***/ }), 33927
vendor: 41,478 bytes, lines 33928-34832
33928/***/ "./node_modules/ua-parser-js/src/ua-parser.js": 33929/*!****************************************************!*\ 33930 !*** ./node_modules/ua-parser-js/src/ua-parser.js ***! 33931 \****************************************************/ 33932/*! no static exports found */ 33933/***/ (function(module, exports, __webpack_require__) { 33934 33935var __WEBPACK_AMD_DEFINE_RESULT__;/*! 33936 * UAParser.js v0.7.20 33937 * Lightweight JavaScript-based User-Agent string parser 33938 * https://github.com/faisalman/ua-parser-js 33939 * 33940 * Copyright © 2012-2019 Faisal Salman <[email protected]> 33941 * Licensed under MIT License 33942 */ 33943 33944(function (window, undefined) { 33945 33946 'use strict'; 33947 33948 ////////////// 33949 // Constants 33950 ///////////// 33951 33952 33953 var LIBVERSION = '0.7.20', 33954 EMPTY = '', 33955 UNKNOWN = '?', 33956 FUNC_TYPE = 'function', 33957 UNDEF_TYPE = 'undefined', 33958 OBJ_TYPE = 'object', 33959 STR_TYPE = 'string', 33960 MAJOR = 'major', // deprecated 33961 MODEL = 'model', 33962 NAME = 'name', 33963 TYPE = 'type', 33964 VENDOR = 'vendor', 33965 VERSION = 'version', 33966 ARCHITECTURE= 'architecture', 33967 CONSOLE = 'console', 33968 MOBILE = 'mobile', 33969 TABLET = 'tablet', 33970 SMARTTV = 'smarttv', 33971 WEARABLE = 'wearable', 33972 EMBEDDED = 'embedded'; 33973 33974 33975 /////////// 33976 // Helper 33977 ////////// 33978 33979 33980 var util = { 33981 extend : function (regexes, extensions) { 33982 var mergedRegexes = {}; 33983 for (var i in regexes) { 33984 if (extensions[i] && extensions[i].length % 2 === 0) { 33985 mergedRegexes[i] = extensions[i].concat(regexes[i]); 33986 } else { 33987 mergedRegexes[i] = regexes[i]; 33988 } 33989 } 33990 return mergedRegexes; 33991 }, 33992 has : function (str1, str2) { 33993 if (typeof str1 === "string") { 33994 return str2.toLowerCase().indexOf(str1.toLowerCase()) !== -1; 33995 } else { 33996 return false; 33997 } 33998 }, 33999 lowerize : function (str) { 34000 return str.toLowerCase(); 34001 }, 34002 major : function (version) { 34003 return typeof(version) === STR_TYPE ? version.replace(/[^\d\.]/g,'').split(".")[0] : undefined; 34004 }, 34005 trim : function (str) { 34006 return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); 34007 } 34008 }; 34009 34010 34011 /////////////// 34012 // Map helper 34013 ////////////// 34014 34015 34016 var mapper = { 34017 34018 rgx : function (ua, arrays) { 34019 34020 var i = 0, j, k, p, q, matches, match; 34021 34022 // loop through all regexes maps 34023 while (i < arrays.length && !matches) { 34024 34025 var regex = arrays[i], // even sequence (0,2,4,..) 34026 props = arrays[i + 1]; // odd sequence (1,3,5,..) 34027 j = k = 0; 34028 34029 // try matching uastring with regexes 34030 while (j < regex.length && !matches) { 34031 34032 matches = regex[j++].exec(ua); 34033 34034 if (!!matches) { 34035 for (p = 0; p < props.length; p++) { 34036 match = matches[++k]; 34037 q = props[p]; 34038 // check if given property is actually array 34039 if (typeof q === OBJ_TYPE && q.length > 0) { 34040 if (q.length == 2) { 34041 if (typeof q[1] == FUNC_TYPE) { 34042 // assign modified match 34043 this[q[0]] = q[1].call(this, match); 34044 } else { 34045 // assign given value, ignore regex match 34046 this[q[0]] = q[1]; 34047 } 34048 } else if (q.length == 3) { 34049 // check whether function or regex 34050 if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) { 34051 // call function (usually string mapper) 34052 this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined; 34053 } else { 34054 // sanitize match using given regex 34055 this[q[0]] = match ? match.replace(q[1], q[2]) : undefined; 34056 } 34057 } else if (q.length == 4) { 34058 this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined; 34059 } 34060 } else { 34061 this[q] = match ? match : undefined; 34062 } 34063 } 34064 } 34065 } 34066 i += 2; 34067 } 34068 }, 34069 34070 str : function (str, map) { 34071 34072 for (var i in map) { 34073 // check if array 34074 if (typeof map[i] === OBJ_TYPE && map[i].length > 0) { 34075 for (var j = 0; j < map[i].length; j++) { 34076 if (util.has(map[i][j], str)) { 34077 return (i === UNKNOWN) ? undefined : i; 34078 } 34079 } 34080 } else if (util.has(map[i], str)) { 34081 return (i === UNKNOWN) ? undefined : i; 34082 } 34083 } 34084 return str; 34085 } 34086 }; 34087 34088 34089 /////////////// 34090 // String map 34091 ////////////// 34092 34093 34094 var maps = { 34095 34096 browser : { 34097 oldsafari : { 34098 version : { 34099 '1.0' : '/8', 34100 '1.2' : '/1', 34101 '1.3' : '/3', 34102 '2.0' : '/412', 34103 '2.0.2' : '/416', 34104 '2.0.3' : '/417', 34105 '2.0.4' : '/419', 34106 '?' : '/' 34107 } 34108 } 34109 }, 34110 34111 device : { 34112 amazon : { 34113 model : { 34114 'Fire Phone' : ['SD', 'KF'] 34115 } 34116 }, 34117 sprint : { 34118 model : { 34119 'Evo Shift 4G' : '7373KT' 34120 }, 34121 vendor : { 34122 'HTC' : 'APA', 34123 'Sprint' : 'Sprint' 34124 } 34125 } 34126 }, 34127 34128 os : { 34129 windows : { 34130 version : { 34131 'ME' : '4.90', 34132 'NT 3.11' : 'NT3.51', 34133 'NT 4.0' : 'NT4.0', 34134 '2000' : 'NT 5.0', 34135 'XP' : ['NT 5.1', 'NT 5.2'], 34136 'Vista' : 'NT 6.0', 34137 '7' : 'NT 6.1', 34138 '8' : 'NT 6.2', 34139 '8.1' : 'NT 6.3', 34140 '10' : ['NT 6.4', 'NT 10.0'], 34141 'RT' : 'ARM' 34142 } 34143 } 34144 } 34145 }; 34146 34147 34148 ////////////// 34149 // Regex map 34150 ///////////// 34151 34152 34153 var regexes = { 34154 34155 browser : [[ 34156 34157 // Presto based 34158 /(opera\smini)\/([\w\.-]+)/i, // Opera Mini 34159 /(opera\s[mobiletab]+).+version\/([\w\.-]+)/i, // Opera Mobi/Tablet 34160 /(opera).+version\/([\w\.]+)/i, // Opera > 9.80 34161 /(opera)[\/\s]+([\w\.]+)/i // Opera < 9.80 34162 ], [NAME, VERSION], [ 34163 34164 /(opios)[\/\s]+([\w\.]+)/i // Opera mini on iphone >= 8.0 34165 ], [[NAME, 'Opera Mini'], VERSION], [ 34166 34167 /\s(opr)\/([\w\.]+)/i // Opera Webkit 34168 ], [[NAME, 'Opera'], VERSION], [ 34169 34170 // Mixed 34171 /(kindle)\/([\w\.]+)/i, // Kindle 34172 /(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]*)/i, 34173 // Lunascape/Maxthon/Netfront/Jasmine/Blazer 34174 34175 // Trident based 34176 /(avant\s|iemobile|slim|baidu)(?:browser)?[\/\s]?([\w\.]*)/i, 34177 // Avant/IEMobile/SlimBrowser/Baidu 34178 /(?:ms|\()(ie)\s([\w\.]+)/i, // Internet Explorer 34179 34180 // Webkit/KHTML based 34181 /(rekonq)\/([\w\.]*)/i, // Rekonq 34182 /(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon)\/([\w\.-]+)/i 34183 // Chromium/Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon 34184 ], [NAME, VERSION], [ 34185 34186 /(konqueror)\/([\w\.]+)/i // Konqueror 34187 ], [[NAME, 'Konqueror'], VERSION], [ 34188 34189 /(trident).+rv[:\s]([\w\.]+).+like\sgecko/i // IE11 34190 ], [[NAME, 'IE'], VERSION], [ 34191 34192 /(edge|edgios|edga|edg)\/((\d+)?[\w\.]+)/i // Microsoft Edge 34193 ], [[NAME, 'Edge'], VERSION], [ 34194 34195 /(yabrowser)\/([\w\.]+)/i // Yandex 34196 ], [[NAME, 'Yandex'], VERSION], [ 34197 34198 /(puffin)\/([\w\.]+)/i // Puffin 34199 ], [[NAME, 'Puffin'], VERSION], [ 34200 34201 /(focus)\/([\w\.]+)/i // Firefox Focus 34202 ], [[NAME, 'Firefox Focus'], VERSION], [ 34203 34204 /(opt)\/([\w\.]+)/i // Opera Touch 34205 ], [[NAME, 'Opera Touch'], VERSION], [ 34206 34207 /((?:[\s\/])uc?\s?browser|(?:juc.+)ucweb)[\/\s]?([\w\.]+)/i // UCBrowser 34208 ], [[NAME, 'UCBrowser'], VERSION], [ 34209 34210 /(comodo_dragon)\/([\w\.]+)/i // Comodo Dragon 34211 ], [[NAME, /_/g, ' '], VERSION], [ 34212 34213 /(windowswechat qbcore)\/([\w\.]+)/i // WeChat Desktop for Windows Built-in Browser 34214 ], [[NAME, 'WeChat(Win) Desktop'], VERSION], [ 34215 34216 /(micromessenger)\/([\w\.]+)/i // WeChat 34217 ], [[NAME, 'WeChat'], VERSION], [ 34218 34219 /(brave)\/([\w\.]+)/i // Brave browser 34220 ], [[NAME, 'Brave'], VERSION], [ 34221 34222 /(qqbrowserlite)\/([\w\.]+)/i // QQBrowserLite 34223 ], [NAME, VERSION], [ 34224 34225 /(QQ)\/([\d\.]+)/i // QQ, aka ShouQ 34226 ], [NAME, VERSION], [ 34227 34228 /m?(qqbrowser)[\/\s]?([\w\.]+)/i // QQBrowser 34229 ], [NAME, VERSION], [ 34230 34231 /(BIDUBrowser)[\/\s]?([\w\.]+)/i // Baidu Browser 34232 ], [NAME, VERSION], [ 34233 34234 /(2345Explorer)[\/\s]?([\w\.]+)/i // 2345 Browser 34235 ], [NAME, VERSION], [ 34236 34237 /(MetaSr)[\/\s]?([\w\.]+)/i // SouGouBrowser 34238 ], [NAME], [ 34239 34240 /(LBBROWSER)/i // LieBao Browser 34241 ], [NAME], [ 34242 34243 /xiaomi\/miuibrowser\/([\w\.]+)/i // MIUI Browser 34244 ], [VERSION, [NAME, 'MIUI Browser']], [ 34245 34246 /;fbav\/([\w\.]+);/i // Facebook App for iOS & Android 34247 ], [VERSION, [NAME, 'Facebook']], [ 34248 34249 /safari\s(line)\/([\w\.]+)/i, // Line App for iOS 34250 /android.+(line)\/([\w\.]+)\/iab/i // Line App for Android 34251 ], [NAME, VERSION], [ 34252 34253 /headlesschrome(?:\/([\w\.]+)|\s)/i // Chrome Headless 34254 ], [VERSION, [NAME, 'Chrome Headless']], [ 34255 34256 /\swv\).+(chrome)\/([\w\.]+)/i // Chrome WebView 34257 ], [[NAME, /(.+)/, '$1 WebView'], VERSION], [ 34258 34259 /((?:oculus|samsung)browser)\/([\w\.]+)/i 34260 ], [[NAME, /(.+(?:g|us))(.+)/, '$1 $2'], VERSION], [ // Oculus / Samsung Browser 34261 34262 /android.+version\/([\w\.]+)\s+(?:mobile\s?safari|safari)*/i // Android Browser 34263 ], [VERSION, [NAME, 'Android Browser']], [ 34264 34265 /(sailfishbrowser)\/([\w\.]+)/i // Sailfish Browser 34266 ], [[NAME, 'Sailfish Browser'], VERSION], [ 34267 34268 /(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i 34269 // Chrome/OmniWeb/Arora/Tizen/Nokia 34270 ], [NAME, VERSION], [ 34271 34272 /(dolfin)\/([\w\.]+)/i // Dolphin 34273 ], [[NAME, 'Dolphin'], VERSION], [ 34274 34275 /((?:android.+)crmo|crios)\/([\w\.]+)/i // Chrome for Android/iOS 34276 ], [[NAME, 'Chrome'], VERSION], [ 34277 34278 /(coast)\/([\w\.]+)/i // Opera Coast 34279 ], [[NAME, 'Opera Coast'], VERSION], [ 34280 34281 /fxios\/([\w\.-]+)/i // Firefox for iOS 34282 ], [VERSION, [NAME, 'Firefox']], [ 34283 34284 /version\/([\w\.]+).+?mobile\/\w+\s(safari)/i // Mobile Safari 34285 ], [VERSION, [NAME, 'Mobile Safari']], [ 34286 34287 /version\/([\w\.]+).+?(mobile\s?safari|safari)/i // Safari & Safari Mobile 34288 ], [VERSION, NAME], [ 34289 34290 /webkit.+?(gsa)\/([\w\.]+).+?(mobile\s?safari|safari)(\/[\w\.]+)/i // Google Search Appliance on iOS 34291 ], [[NAME, 'GSA'], VERSION], [ 34292 34293 /webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i // Safari < 3.0 34294 ], [NAME, [VERSION, mapper.str, maps.browser.oldsafari.version]], [ 34295 34296 /(webkit|khtml)\/([\w\.]+)/i 34297 ], [NAME, VERSION], [ 34298 34299 // Gecko based 34300 /(navigator|netscape)\/([\w\.-]+)/i // Netscape 34301 ], [[NAME, 'Netscape'], VERSION], [ 34302 /(swiftfox)/i, // Swiftfox 34303 /(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i, 34304 // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror 34305 /(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([\w\.-]+)$/i, 34306 34307 // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix 34308 /(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i, // Mozilla 34309 34310 // Other 34311 /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i, 34312 // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir 34313 /(links)\s\(([\w\.]+)/i, // Links 34314 /(gobrowser)\/?([\w\.]*)/i, // GoBrowser 34315 /(ice\s?browser)\/v?([\w\._]+)/i, // ICE Browser 34316 /(mosaic)[\/\s]([\w\.]+)/i // Mosaic 34317 ], [NAME, VERSION] 34318 ], 34319 34320 cpu : [[ 34321 34322 /(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i // AMD64 34323 ], [[ARCHITECTURE, 'amd64']], [ 34324 34325 /(ia32(?=;))/i // IA32 (quicktime) 34326 ], [[ARCHITECTURE, util.lowerize]], [ 34327 34328 /((?:i[346]|x)86)[;\)]/i // IA32 34329 ], [[ARCHITECTURE, 'ia32']], [ 34330 34331 // PocketPC mistakenly identified as PowerPC 34332 /windows\s(ce|mobile);\sppc;/i 34333 ], [[ARCHITECTURE, 'arm']], [ 34334 34335 /((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i // PowerPC 34336 ], [[ARCHITECTURE, /ower/, '', util.lowerize]], [ 34337 34338 /(sun4\w)[;\)]/i // SPARC 34339 ], [[ARCHITECTURE, 'sparc']], [ 34340 34341 /((?:avr32|ia64(?=;))|68k(?=\))|arm(?:64|(?=v\d+[;l]))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i 34342 // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC 34343 ], [[ARCHITECTURE, util.lowerize]] 34344 ], 34345 34346 device : [[ 34347 34348 /\((ipad|playbook);[\w\s\),;-]+(rim|apple)/i // iPad/PlayBook 34349 ], [MODEL, VENDOR, [TYPE, TABLET]], [ 34350 34351 /applecoremedia\/[\w\.]+ \((ipad)/ // iPad 34352 ], [MODEL, [VENDOR, 'Apple'], [TYPE, TABLET]], [ 34353 34354 /(apple\s{0,1}tv)/i // Apple TV 34355 ], [[MODEL, 'Apple TV'], [VENDOR, 'Apple']], [ 34356 34357 /(archos)\s(gamepad2?)/i, // Archos 34358 /(hp).+(touchpad)/i, // HP TouchPad 34359 /(hp).+(tablet)/i, // HP Tablet 34360 /(kindle)\/([\w\.]+)/i, // Kindle 34361 /\s(nook)[\w\s]+build\/(\w+)/i, // Nook 34362 /(dell)\s(strea[kpr\s\d]*[\dko])/i // Dell Streak 34363 ], [VENDOR, MODEL, [TYPE, TABLET]], [ 34364 34365 /(kf[A-z]+)\sbuild\/.+silk\//i // Kindle Fire HD 34366 ], [MODEL, [VENDOR, 'Amazon'], [TYPE, TABLET]], [ 34367 /(sd|kf)[0349hijorstuw]+\sbuild\/.+silk\//i // Fire Phone 34368 ], [[MODEL, mapper.str, maps.device.amazon.model], [VENDOR, 'Amazon'], [TYPE, MOBILE]], [ 34369 /android.+aft([bms])\sbuild/i // Fire TV 34370 ], [MODEL, [VENDOR, 'Amazon'], [TYPE, SMARTTV]], [ 34371 34372 /\((ip[honed|\s\w*]+);.+(apple)/i // iPod/iPhone 34373 ], [MODEL, VENDOR, [TYPE, MOBILE]], [ 34374 /\((ip[honed|\s\w*]+);/i // iPod/iPhone 34375 ], [MODEL, [VENDOR, 'Apple'], [TYPE, MOBILE]], [ 34376 34377 /(blackberry)[\s-]?(\w+)/i, // BlackBerry 34378 /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[\s_-]?([\w-]*)/i, 34379 // BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron 34380 /(hp)\s([\w\s]+\w)/i, // HP iPAQ 34381 /(asus)-?(\w+)/i // Asus 34382 ], [VENDOR, MODEL, [TYPE, MOBILE]], [ 34383 /\(bb10;\s(\w+)/i // BlackBerry 10 34384 ], [MODEL, [VENDOR, 'BlackBerry'], [TYPE, MOBILE]], [ 34385 // Asus Tablets 34386 /android.+(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus 7|padfone|p00c)/i 34387 ], [MODEL, [VENDOR, 'Asus'], [TYPE, TABLET]], [ 34388 34389 /(sony)\s(tablet\s[ps])\sbuild\//i, // Sony 34390 /(sony)?(?:sgp.+)\sbuild\//i 34391 ], [[VENDOR, 'Sony'], [MODEL, 'Xperia Tablet'], [TYPE, TABLET]], [ 34392 /android.+\s([c-g]\d{4}|so[-l]\w+)(?=\sbuild\/|\).+chrome\/(?![1-6]{0,1}\d\.))/i 34393 ], [MODEL, [VENDOR, 'Sony'], [TYPE, MOBILE]], [ 34394 34395 /\s(ouya)\s/i, // Ouya 34396 /(nintendo)\s([wids3u]+)/i // Nintendo 34397 ], [VENDOR, MODEL, [TYPE, CONSOLE]], [ 34398 34399 /android.+;\s(shield)\sbuild/i // Nvidia 34400 ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [ 34401 34402 /(playstation\s[34portablevi]+)/i // Playstation 34403 ], [MODEL, [VENDOR, 'Sony'], [TYPE, CONSOLE]], [ 34404 34405 /(sprint\s(\w+))/i // Sprint Phones 34406 ], [[VENDOR, mapper.str, maps.device.sprint.vendor], [MODEL, mapper.str, maps.device.sprint.model], [TYPE, MOBILE]], [ 34407 34408 /(htc)[;_\s-]+([\w\s]+(?=\)|\sbuild)|\w+)/i, // HTC 34409 /(zte)-(\w*)/i, // ZTE 34410 /(alcatel|geeksphone|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]*)/i 34411 // Alcatel/GeeksPhone/Nexian/Panasonic/Sony 34412 ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [ 34413 34414 /(nexus\s9)/i // HTC Nexus 9 34415 ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [ 34416 34417 /d\/huawei([\w\s-]+)[;\)]/i, 34418 /(nexus\s6p)/i // Huawei 34419 ], [MODEL, [VENDOR, 'Huawei'], [TYPE, MOBILE]], [ 34420 34421 /(microsoft);\s(lumia[\s\w]+)/i // Microsoft Lumia 34422 ], [VENDOR, MODEL, [TYPE, MOBILE]], [ 34423 34424 /[\s\(;](xbox(?:\sone)?)[\s\);]/i // Microsoft Xbox 34425 ], [MODEL, [VENDOR, 'Microsoft'], [TYPE, CONSOLE]], [ 34426 /(kin\.[onetw]{3})/i // Microsoft Kin 34427 ], [[MODEL, /\./g, ' '], [VENDOR, 'Microsoft'], [TYPE, MOBILE]], [ 34428 34429 // Motorola 34430 /\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?:?(\s4g)?)[\w\s]+build\//i, 34431 /mot[\s-]?(\w*)/i, 34432 /(XT\d{3,4}) build\//i, 34433 /(nexus\s6)/i 34434 ], [MODEL, [VENDOR, 'Motorola'], [TYPE, MOBILE]], [ 34435 /android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i 34436 ], [MODEL, [VENDOR, 'Motorola'], [TYPE, TABLET]], [ 34437 34438 /hbbtv\/\d+\.\d+\.\d+\s+\([\w\s]*;\s*(\w[^;]*);([^;]*)/i // HbbTV devices 34439 ], [[VENDOR, util.trim], [MODEL, util.trim], [TYPE, SMARTTV]], [ 34440 34441 /hbbtv.+maple;(\d+)/i 34442 ], [[MODEL, /^/, 'SmartTV'], [VENDOR, 'Samsung'], [TYPE, SMARTTV]], [ 34443 34444 /\(dtv[\);].+(aquos)/i // Sharp 34445 ], [MODEL, [VENDOR, 'Sharp'], [TYPE, SMARTTV]], [ 34446 34447 /android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n\d+|sgh-t8[56]9|nexus 10))/i, 34448 /((SM-T\w+))/i 34449 ], [[VENDOR, 'Samsung'], MODEL, [TYPE, TABLET]], [ // Samsung 34450 /smart-tv.+(samsung)/i 34451 ], [VENDOR, [TYPE, SMARTTV], MODEL], [ 34452 /((s[cgp]h-\w+|gt-\w+|galaxy\snexus|sm-\w[\w\d]+))/i, 34453 /(sam[sung]*)[\s-]*(\w+-?[\w-]*)/i, 34454 /sec-((sgh\w+))/i 34455 ], [[VENDOR, 'Samsung'], MODEL, [TYPE, MOBILE]], [ 34456 34457 /sie-(\w*)/i // Siemens 34458 ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [ 34459 34460 /(maemo|nokia).*(n900|lumia\s\d+)/i, // Nokia 34461 /(nokia)[\s_-]?([\w-]*)/i 34462 ], [[VENDOR, 'Nokia'], MODEL, [TYPE, MOBILE]], [ 34463 34464 /android[x\d\.\s;]+\s([ab][1-7]\-?[0178a]\d\d?)/i // Acer 34465 ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [ 34466 34467 /android.+([vl]k\-?\d{3})\s+build/i // LG Tablet 34468 ], [MODEL, [VENDOR, 'LG'], [TYPE, TABLET]], [ 34469 /android\s3\.[\s\w;-]{10}(lg?)-([06cv9]{3,4})/i // LG Tablet 34470 ], [[VENDOR, 'LG'], MODEL, [TYPE, TABLET]], [ 34471 /(lg) netcast\.tv/i // LG SmartTV 34472 ], [VENDOR, MODEL, [TYPE, SMARTTV]], [ 34473 /(nexus\s[45])/i, // LG 34474 /lg[e;\s\/-]+(\w*)/i, 34475 /android.+lg(\-?[\d\w]+)\s+build/i 34476 ], [MODEL, [VENDOR, 'LG'], [TYPE, MOBILE]], [ 34477 34478 /(lenovo)\s?(s(?:5000|6000)(?:[\w-]+)|tab(?:[\s\w]+))/i // Lenovo tablets 34479 ], [VENDOR, MODEL, [TYPE, TABLET]], [ 34480 /android.+(ideatab[a-z0-9\-\s]+)/i // Lenovo 34481 ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [ 34482 /(lenovo)[_\s-]?([\w-]+)/i 34483 ], [VENDOR, MODEL, [TYPE, MOBILE]], [ 34484 34485 /linux;.+((jolla));/i // Jolla 34486 ], [VENDOR, MODEL, [TYPE, MOBILE]], [ 34487 34488 /((pebble))app\/[\d\.]+\s/i // Pebble 34489 ], [VENDOR, MODEL, [TYPE, WEARABLE]], [ 34490 34491 /android.+;\s(oppo)\s?([\w\s]+)\sbuild/i // OPPO 34492 ], [VENDOR, MODEL, [TYPE, MOBILE]], [ 34493 34494 /crkey/i // Google Chromecast 34495 ], [[MODEL, 'Chromecast'], [VENDOR, 'Google']], [ 34496 34497 /android.+;\s(glass)\s\d/i // Google Glass 34498 ], [MODEL, [VENDOR, 'Google'], [TYPE, WEARABLE]], [ 34499 34500 /android.+;\s(pixel c)[\s)]/i // Google Pixel C 34501 ], [MODEL, [VENDOR, 'Google'], [TYPE, TABLET]], [ 34502 34503 /android.+;\s(pixel( [23])?( xl)?)[\s)]/i // Google Pixel 34504 ], [MODEL, [VENDOR, 'Google'], [TYPE, MOBILE]], [ 34505 34506 /android.+;\s(\w+)\s+build\/hm\1/i, // Xiaomi Hongmi 'numeric' models 34507 /android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i, // Xiaomi Hongmi 34508 /android.+(mi[\s\-_]*(?:a\d|one|one[\s_]plus|note lte)?[\s_]*(?:\d?\w?)[\s_]*(?:plus)?)\s+build/i, 34509 // Xiaomi Mi 34510 /android.+(redmi[\s\-_]*(?:note)?(?:[\s_]*[\w\s]+))\s+build/i // Redmi Phones 34511 ], [[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, MOBILE]], [ 34512 /android.+(mi[\s\-_]*(?:pad)(?:[\s_]*[\w\s]+))\s+build/i // Mi Pad tablets 34513 ],[[MODEL, /_/g, ' '], [VENDOR, 'Xiaomi'], [TYPE, TABLET]], [ 34514 /android.+;\s(m[1-5]\snote)\sbuild/i // Meizu 34515 ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [ 34516 /(mz)-([\w-]{2,})/i 34517 ], [[VENDOR, 'Meizu'], MODEL, [TYPE, MOBILE]], [ 34518 34519 /android.+a000(1)\s+build/i, // OnePlus 34520 /android.+oneplus\s(a\d{4})\s+build/i 34521 ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [ 34522 34523 /android.+[;\/]\s*(RCT[\d\w]+)\s+build/i // RCA Tablets 34524 ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [ 34525 34526 /android.+[;\/\s]+(Venue[\d\s]{2,7})\s+build/i // Dell Venue Tablets 34527 ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [ 34528 34529 /android.+[;\/]\s*(Q[T|M][\d\w]+)\s+build/i // Verizon Tablet 34530 ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [ 34531 34532 /android.+[;\/]\s+(Barnes[&\s]+Noble\s+|BN[RT])(V?.*)\s+build/i // Barnes & Noble Tablet 34533 ], [[VENDOR, 'Barnes & Noble'], MODEL, [TYPE, TABLET]], [ 34534 34535 /android.+[;\/]\s+(TM\d{3}.*\b)\s+build/i // Barnes & Noble Tablet 34536 ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [ 34537 34538 /android.+;\s(k88)\sbuild/i // ZTE K Series Tablet 34539 ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [ 34540 34541 /android.+[;\/]\s*(gen\d{3})\s+build.*49h/i // Swiss GEN Mobile 34542 ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [ 34543 34544 /android.+[;\/]\s*(zur\d{3})\s+build/i // Swiss ZUR Tablet 34545 ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [ 34546 34547 /android.+[;\/]\s*((Zeki)?TB.*\b)\s+build/i // Zeki Tablets 34548 ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [ 34549 34550 /(android).+[;\/]\s+([YR]\d{2})\s+build/i, 34551 /android.+[;\/]\s+(Dragon[\-\s]+Touch\s+|DT)(\w{5})\sbuild/i // Dragon Touch Tablet 34552 ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [ 34553 34554 /android.+[;\/]\s*(NS-?\w{0,9})\sbuild/i // Insignia Tablets 34555 ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [ 34556 34557 /android.+[;\/]\s*((NX|Next)-?\w{0,9})\s+build/i // NextBook Tablets 34558 ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [ 34559 34560 /android.+[;\/]\s*(Xtreme\_)?(V(1[045]|2[015]|30|40|60|7[05]|90))\s+build/i 34561 ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [ // Voice Xtreme Phones 34562 34563 /android.+[;\/]\s*(LVTEL\-)?(V1[12])\s+build/i // LvTel Phones 34564 ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [ 34565 34566 /android.+;\s(PH-1)\s/i 34567 ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [ // Essential PH-1 34568 34569 /android.+[;\/]\s*(V(100MD|700NA|7011|917G).*\b)\s+build/i // Envizen Tablets 34570 ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [ 34571 34572 /android.+[;\/]\s*(Le[\s\-]+Pan)[\s\-]+(\w{1,9})\s+build/i // Le Pan Tablets 34573 ], [VENDOR, MODEL, [TYPE, TABLET]], [ 34574 34575 /android.+[;\/]\s*(Trio[\s\-]*.*)\s+build/i // MachSpeed Tablets 34576 ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [ 34577 34578 /android.+[;\/]\s*(Trinity)[\-\s]*(T\d{3})\s+build/i // Trinity Tablets 34579 ], [VENDOR, MODEL, [TYPE, TABLET]], [ 34580 34581 /android.+[;\/]\s*TU_(1491)\s+build/i // Rotor Tablets 34582 ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [ 34583 34584 /android.+(KS(.+))\s+build/i // Amazon Kindle Tablets 34585 ], [MODEL, [VENDOR, 'Amazon'], [TYPE, TABLET]], [ 34586 34587 /android.+(Gigaset)[\s\-]+(Q\w{1,9})\s+build/i // Gigaset Tablets 34588 ], [VENDOR, MODEL, [TYPE, TABLET]], [ 34589 34590 /\s(tablet|tab)[;\/]/i, // Unidentifiable Tablet 34591 /\s(mobile)(?:[;\/]|\ssafari)/i // Unidentifiable Mobile 34592 ], [[TYPE, util.lowerize], VENDOR, MODEL], [ 34593 34594 /[\s\/\(](smart-?tv)[;\)]/i // SmartTV 34595 ], [[TYPE, SMARTTV]], [ 34596 34597 /(android[\w\.\s\-]{0,9});.+build/i // Generic Android Device 34598 ], [MODEL, [VENDOR, 'Generic']] 34599 ], 34600 34601 engine : [[ 34602 34603 /windows.+\sedge\/([\w\.]+)/i // EdgeHTML 34604 ], [VERSION, [NAME, 'EdgeHTML']], [ 34605 34606 /webkit\/537\.36.+chrome\/(?!27)/i // Blink 34607 ], [[NAME, 'Blink']], [ 34608 34609 /(presto)\/([\w\.]+)/i, // Presto 34610 /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, 34611 // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna 34612 /(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, // KHTML/Tasman/Links 34613 /(icab)[\/\s]([23]\.[\d\.]+)/i // iCab 34614 ], [NAME, VERSION], [ 34615 34616 /rv\:([\w\.]{1,9}).+(gecko)/i // Gecko 34617 ], [VERSION, NAME] 34618 ], 34619 34620 os : [[ 34621 34622 // Windows based 34623 /microsoft\s(windows)\s(vista|xp)/i // Windows (iTunes) 34624 ], [NAME, VERSION], [ 34625 /(windows)\snt\s6\.2;\s(arm)/i, // Windows RT 34626 /(windows\sphone(?:\sos)*)[\s\/]?([\d\.\s\w]*)/i, // Windows Phone 34627 /(windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i 34628 ], [NAME, [VERSION, mapper.str, maps.os.windows.version]], [ 34629 /(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i 34630 ], [[NAME, 'Windows'], [VERSION, mapper.str, maps.os.windows.version]], [ 34631 34632 // Mobile/Embedded OS 34633 /\((bb)(10);/i // BlackBerry 10 34634 ], [[NAME, 'BlackBerry'], VERSION], [ 34635 /(blackberry)\w*\/?([\w\.]*)/i, // Blackberry 34636 /(tizen)[\/\s]([\w\.]+)/i, // Tizen 34637 /(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|sailfish|contiki)[\/\s-]?([\w\.]*)/i 34638 // Android/WebOS/Palm/QNX/Bada/RIM/MeeGo/Contiki/Sailfish OS 34639 ], [NAME, VERSION], [ 34640 /(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]*)/i // Symbian 34641 ], [[NAME, 'Symbian'], VERSION], [ 34642 /\((series40);/i // Series 40 34643 ], [NAME], [ 34644 /mozilla.+\(mobile;.+gecko.+firefox/i // Firefox OS 34645 ], [[NAME, 'Firefox OS'], VERSION], [ 34646 34647 // Console 34648 /(nintendo|playstation)\s([wids34portablevu]+)/i, // Nintendo/Playstation 34649 34650 // GNU/Linux based 34651 /(mint)[\/\s\(]?(\w*)/i, // Mint 34652 /(mageia|vectorlinux)[;\s]/i, // Mageia/VectorLinux 34653 /(joli|[kxln]?ubuntu|debian|suse|opensuse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?(?!chrom)([\w\.-]*)/i, 34654 // Joli/Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware 34655 // Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus 34656 /(hurd|linux)\s?([\w\.]*)/i, // Hurd/Linux 34657 /(gnu)\s?([\w\.]*)/i // GNU 34658 ], [NAME, VERSION], [ 34659 34660 /(cros)\s[\w]+\s([\w\.]+\w)/i // Chromium OS 34661 ], [[NAME, 'Chromium OS'], VERSION],[ 34662 34663 // Solaris 34664 /(sunos)\s?([\w\.\d]*)/i // Solaris 34665 ], [[NAME, 'Solaris'], VERSION], [ 34666 34667 // BSD based 34668 /\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]*)/i // FreeBSD/NetBSD/OpenBSD/PC-BSD/DragonFly 34669 ], [NAME, VERSION],[ 34670 34671 /(haiku)\s(\w+)/i // Haiku 34672 ], [NAME, VERSION],[ 34673 34674 /cfnetwork\/.+darwin/i, 34675 /ip[honead]{2,4}(?:.*os\s([\w]+)\slike\smac|;\sopera)/i // iOS 34676 ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [ 34677 34678 /(mac\sos\sx)\s?([\w\s\.]*)/i, 34679 /(macintosh|mac(?=_powerpc)\s)/i // Mac OS 34680 ], [[NAME, 'Mac OS'], [VERSION, /_/g, '.']], [ 34681 34682 // Other 34683 /((?:open)?solaris)[\/\s-]?([\w\.]*)/i, // Solaris 34684 /(aix)\s((\d)(?=\.|\)|\s)[\w\.])*/i, // AIX 34685 /(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms|fuchsia)/i, 34686 // Plan9/Minix/BeOS/OS2/AmigaOS/MorphOS/RISCOS/OpenVMS/Fuchsia 34687 /(unix)\s?([\w\.]*)/i // UNIX 34688 ], [NAME, VERSION] 34689 ] 34690 }; 34691 34692 34693 ///////////////// 34694 // Constructor 34695 //////////////// 34696 var UAParser = function (uastring, extensions) { 34697 34698 if (typeof uastring === 'object') { 34699 extensions = uastring; 34700 uastring = undefined; 34701 } 34702 34703 if (!(this instanceof UAParser)) { 34704 return new UAParser(uastring, extensions).getResult(); 34705 } 34706 34707 var ua = uastring || ((window && window.navigator && window.navigator.userAgent) ? window.navigator.userAgent : EMPTY); 34708 var rgxmap = extensions ? util.extend(regexes, extensions) : regexes; 34709 34710 this.getBrowser = function () { 34711 var browser = { name: undefined, version: undefined }; 34712 mapper.rgx.call(browser, ua, rgxmap.browser); 34713 browser.major = util.major(browser.version); // deprecated 34714 return browser; 34715 }; 34716 this.getCPU = function () { 34717 var cpu = { architecture: undefined }; 34718 mapper.rgx.call(cpu, ua, rgxmap.cpu); 34719 return cpu; 34720 }; 34721 this.getDevice = function () { 34722 var device = { vendor: undefined, model: undefined, type: undefined }; 34723 mapper.rgx.call(device, ua, rgxmap.device); 34724 return device; 34725 }; 34726 this.getEngine = function () { 34727 var engine = { name: undefined, version: undefined }; 34728 mapper.rgx.call(engine, ua, rgxmap.engine); 34729 return engine; 34730 }; 34731 this.getOS = function () { 34732 var os = { name: undefined, version: undefined }; 34733 mapper.rgx.call(os, ua, rgxmap.os); 34734 return os; 34735 }; 34736 this.getResult = function () { 34737 return { 34738 ua : this.getUA(), 34739 browser : this.getBrowser(), 34740 engine : this.getEngine(), 34741 os : this.getOS(), 34742 device : this.getDevice(), 34743 cpu : this.getCPU() 34744 }; 34745 }; 34746 this.getUA = function () { 34747 return ua; 34748 }; 34749 this.setUA = function (uastring) { 34750 ua = uastring; 34751 return this; 34752 }; 34753 return this; 34754 }; 34755 34756 UAParser.VERSION = LIBVERSION; 34757 UAParser.BROWSER = { 34758 NAME : NAME, 34759 MAJOR : MAJOR, // deprecated 34760 VERSION : VERSION 34761 }; 34762 UAParser.CPU = { 34763 ARCHITECTURE : ARCHITECTURE 34764 }; 34765 UAParser.DEVICE = { 34766 MODEL : MODEL, 34767 VENDOR : VENDOR, 34768 TYPE : TYPE, 34769 CONSOLE : CONSOLE, 34770 MOBILE : MOBILE, 34771 SMARTTV : SMARTTV, 34772 TABLET : TABLET, 34773 WEARABLE: WEARABLE, 34774 EMBEDDED: EMBEDDED 34775 }; 34776 UAParser.ENGINE = { 34777 NAME : NAME, 34778 VERSION : VERSION 34779 }; 34780 UAParser.OS = { 34781 NAME : NAME, 34782 VERSION : VERSION 34783 }; 34784 34785 /////////// 34786 // Export 34787 ////////// 34788 34789 34790 // check js environment 34791 if (typeof(exports) !== UNDEF_TYPE) { 34792 // nodejs env 34793 if (typeof module !== UNDEF_TYPE && module.exports) { 34794 exports = module.exports = UAParser; 34795 } 34796 exports.UAParser = UAParser; 34797 } else { 34798 // requirejs env (optional) 34799 if (true) { 34800 !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () { 34801 return UAParser; 34802 }).call(exports, __webpack_require__, exports, module), 34803 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 34804 } else {} 34805 } 34806 34807 // jQuery/Zepto specific (optional) 34808 // Note: 34809 // In AMD env the global scope should be kept clean, but jQuery is an exception. 34810 // jQuery always exports to global scope, unless jQuery.noConflict(true) is used, 34811 // and we should catch that. 34812 var $ = window && (window.jQuery || window.Zepto); 34813 if (typeof $ !== UNDEF_TYPE && !$.ua) { 34814 var parser = new UAParser(); 34815 $.ua = parser.getResult(); 34816 $.ua.get = function () { 34817 return parser.getUA(); 34818 }; 34819 $.ua.set = function (uastring) { 34820 parser.setUA(uastring); 34821 var result = parser.getResult(); 34822 for (var prop in result) { 34823 $.ua[prop] = result[prop]; 34824 } 34825 }; 34826 } 34827 34828})(typeof window === 'object' ? window : this); 34829 34830 34831/***/ }), 34832
vendor: 738 bytes, lines 34833-34862
34833/***/ "./node_modules/webpack/buildin/global.js": 34834/*!***********************************!*\ 34835 !*** (webpack)/buildin/global.js ***! 34836 \***********************************/ 34837/*! no static exports found */ 34838/***/ (function(module, exports) { 34839 34840var g; 34841 34842// This works in non-strict mode 34843g = (function() { 34844 return this; 34845})(); 34846 34847try { 34848 // This works if eval is allowed (see CSP) 34849 g = g || Function("return this")() || (1, eval)("this"); 34850} catch (e) { 34851 // This works if the window reference is available 34852 if (typeof window === "object") g = window; 34853} 34854 34855// g can still be undefined, but nothing to do about it... 34856// We return undefined, instead of nothing here, so it's 34857// easier to handle this case. if(!global) { ...} 34858 34859module.exports = g; 34860 34861 34862/***/ })
34862 34863 34864}]); 34865//# sourceMappingURL=vendor.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.