1/******/ (function() { // webpackBootstrap 2/******/ var __webpack_modules__ = ({ 3
vendor: 10,900 bytes, lines 4-270
4/***/ "./node_modules/body-scroll-lock/lib/bodyScrollLock.es6.js": 5/*!*****************************************************************!*\ 6 !*** ./node_modules/body-scroll-lock/lib/bodyScrollLock.es6.js ***! 7 \*****************************************************************/ 8/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 9 10"use strict"; 11__webpack_require__.r(__webpack_exports__); 12/* harmony export */ __webpack_require__.d(__webpack_exports__, { 13/* harmony export */ clearAllBodyScrollLocks: function() { return /* binding */ clearAllBodyScrollLocks; }, 14/* harmony export */ disableBodyScroll: function() { return /* binding */ disableBodyScroll; }, 15/* harmony export */ enableBodyScroll: function() { return /* binding */ enableBodyScroll; } 16/* harmony export */ }); 17function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } 18function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } 19function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } 20function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } 21function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } 22function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } 23// Older browsers don't support event options, feature detect it. 24 25// Adopted and modified solution from Bohdan Didukh (2017) 26// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi 27 28var hasPassiveEvents = false; 29if (typeof window !== 'undefined') { 30 var passiveTestOptions = { 31 get passive() { 32 hasPassiveEvents = true; 33 return undefined; 34 } 35 }; 36 window.addEventListener('testPassive', null, passiveTestOptions); 37 window.removeEventListener('testPassive', null, passiveTestOptions); 38} 39var isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1); 40var locks = []; 41var documentListenerAdded = false; 42var initialClientY = -1; 43var previousBodyOverflowSetting; 44var previousBodyPosition; 45var previousBodyPaddingRight; 46 47// returns true if `el` should be allowed to receive touchmove events. 48var allowTouchMove = function allowTouchMove(el) { 49 return locks.some(function (lock) { 50 if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) { 51 return true; 52 } 53 return false; 54 }); 55}; 56var preventDefault = function preventDefault(rawEvent) { 57 var e = rawEvent || window.event; 58 59 // For the case whereby consumers adds a touchmove event listener to document. 60 // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false }) 61 // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then 62 // the touchmove event on document will break. 63 if (allowTouchMove(e.target)) { 64 return true; 65 } 66 67 // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom). 68 if (e.touches.length > 1) return true; 69 if (e.preventDefault) e.preventDefault(); 70 return false; 71}; 72var setOverflowHidden = function setOverflowHidden(options) { 73 // If previousBodyPaddingRight is already set, don't set it again. 74 if (previousBodyPaddingRight === undefined) { 75 var reserveScrollBarGap = !!options && options.reserveScrollBarGap === true; 76 var scrollBarGap = window.innerWidth - document.documentElement.clientWidth; 77 if (reserveScrollBarGap && scrollBarGap > 0) { 78 var computedBodyPaddingRight = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'), 10); 79 previousBodyPaddingRight = document.body.style.paddingRight; 80 document.body.style.paddingRight = "".concat(computedBodyPaddingRight + scrollBarGap, "px"); 81 } 82 } 83 84 // If previousBodyOverflowSetting is already set, don't set it again. 85 if (previousBodyOverflowSetting === undefined) { 86 previousBodyOverflowSetting = document.body.style.overflow; 87 document.body.style.overflow = 'hidden'; 88 } 89}; 90var restoreOverflowSetting = function restoreOverflowSetting() { 91 if (previousBodyPaddingRight !== undefined) { 92 document.body.style.paddingRight = previousBodyPaddingRight; 93 94 // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it 95 // can be set again. 96 previousBodyPaddingRight = undefined; 97 } 98 if (previousBodyOverflowSetting !== undefined) { 99 document.body.style.overflow = previousBodyOverflowSetting; 100 101 // Restore previousBodyOverflowSetting to undefined 102 // so setOverflowHidden knows it can be set again. 103 previousBodyOverflowSetting = undefined; 104 } 105}; 106var setPositionFixed = function setPositionFixed() { 107 return window.requestAnimationFrame(function () { 108 // If previousBodyPosition is already set, don't set it again. 109 if (previousBodyPosition === undefined) { 110 previousBodyPosition = { 111 position: document.body.style.position, 112 top: document.body.style.top, 113 left: document.body.style.left 114 }; 115 116 // Update the dom inside an animation frame 117 var _window = window, 118 scrollY = _window.scrollY, 119 scrollX = _window.scrollX, 120 innerHeight = _window.innerHeight; 121 document.body.style.position = 'fixed'; 122 document.body.style.top = -scrollY; 123 document.body.style.left = -scrollX; 124 setTimeout(function () { 125 return window.requestAnimationFrame(function () { 126 // Attempt to check if the bottom bar appeared due to the position change 127 var bottomBarHeight = innerHeight - window.innerHeight; 128 if (bottomBarHeight && scrollY >= innerHeight) { 129 // Move the content further up so that the bottom bar doesn't hide it 130 document.body.style.top = -(scrollY + bottomBarHeight); 131 } 132 }); 133 }, 300); 134 } 135 }); 136}; 137var restorePositionSetting = function restorePositionSetting() { 138 if (previousBodyPosition !== undefined) { 139 // Convert the position from "px" to Int 140 var y = -parseInt(document.body.style.top, 10); 141 var x = -parseInt(document.body.style.left, 10); 142 143 // Restore styles 144 document.body.style.position = previousBodyPosition.position; 145 document.body.style.top = previousBodyPosition.top; 146 document.body.style.left = previousBodyPosition.left; 147 148 // Restore scroll 149 window.scrollTo(x, y); 150 previousBodyPosition = undefined; 151 } 152}; 153 154// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions 155var isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) { 156 return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false; 157}; 158var handleScroll = function handleScroll(event, targetElement) { 159 var clientY = event.targetTouches[0].clientY - initialClientY; 160 if (allowTouchMove(event.target)) { 161 return false; 162 } 163 if (targetElement && targetElement.scrollTop === 0 && clientY > 0) { 164 // element is at the top of its scroll. 165 return preventDefault(event); 166 } 167 if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) { 168 // element is at the bottom of its scroll. 169 return preventDefault(event); 170 } 171 event.stopPropagation(); 172 return true; 173}; 174var disableBodyScroll = function disableBodyScroll(targetElement, options) { 175 // targetElement must be provided 176 if (!targetElement) { 177 // eslint-disable-next-line no-console 178 console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.'); 179 return; 180 } 181 182 // disableBodyScroll must not have been called on this targetElement before 183 if (locks.some(function (lock) { 184 return lock.targetElement === targetElement; 185 })) { 186 return; 187 } 188 var lock = { 189 targetElement: targetElement, 190 options: options || {} 191 }; 192 locks = [].concat(_toConsumableArray(locks), [lock]); 193 if (isIosDevice) { 194 setPositionFixed(); 195 } else { 196 setOverflowHidden(options); 197 } 198 if (isIosDevice) { 199 targetElement.ontouchstart = function (event) { 200 if (event.targetTouches.length === 1) { 201 // detect single touch. 202 initialClientY = event.targetTouches[0].clientY; 203 } 204 }; 205 targetElement.ontouchmove = function (event) { 206 if (event.targetTouches.length === 1) { 207 // detect single touch. 208 handleScroll(event, targetElement); 209 } 210 }; 211 if (!documentListenerAdded) { 212 document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { 213 passive: false 214 } : undefined); 215 documentListenerAdded = true; 216 } 217 } 218}; 219var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() { 220 if (isIosDevice) { 221 // Clear all locks ontouchstart/ontouchmove handlers, and the references. 222 locks.forEach(function (lock) { 223 lock.targetElement.ontouchstart = null; 224 lock.targetElement.ontouchmove = null; 225 }); 226 if (documentListenerAdded) { 227 document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { 228 passive: false 229 } : undefined); 230 documentListenerAdded = false; 231 } 232 233 // Reset initial clientY. 234 initialClientY = -1; 235 } 236 if (isIosDevice) { 237 restorePositionSetting(); 238 } else { 239 restoreOverflowSetting(); 240 } 241 locks = []; 242}; 243var enableBodyScroll = function enableBodyScroll(targetElement) { 244 if (!targetElement) { 245 // eslint-disable-next-line no-console 246 console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.'); 247 return; 248 } 249 locks = locks.filter(function (lock) { 250 return lock.targetElement !== targetElement; 251 }); 252 if (isIosDevice) { 253 targetElement.ontouchstart = null; 254 targetElement.ontouchmove = null; 255 if (documentListenerAdded && locks.length === 0) { 256 document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { 257 passive: false 258 } : undefined); 259 documentListenerAdded = false; 260 } 261 } 262 if (isIosDevice) { 263 restorePositionSetting(); 264 } else { 265 restoreOverflowSetting(); 266 } 267}; 268 269/***/ }), 270
vendor: 50,817 bytes, lines 271-1707
271/***/ "./node_modules/dom7/dom7.esm.js": 272/*!***************************************!*\ 273 !*** ./node_modules/dom7/dom7.esm.js ***! 274 \***************************************/ 275/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 276 277"use strict"; 278__webpack_require__.r(__webpack_exports__); 279/* harmony export */ __webpack_require__.d(__webpack_exports__, { 280/* harmony export */ $: function() { return /* binding */ $; }, 281/* harmony export */ add: function() { return /* binding */ add; }, 282/* harmony export */ addClass: function() { return /* binding */ addClass; }, 283/* harmony export */ animate: function() { return /* binding */ animate; }, 284/* harmony export */ animationEnd: function() { return /* binding */ animationEnd; }, 285/* harmony export */ append: function() { return /* binding */ append; }, 286/* harmony export */ appendTo: function() { return /* binding */ appendTo; }, 287/* harmony export */ attr: function() { return /* binding */ attr; }, 288/* harmony export */ blur: function() { return /* binding */ blur; }, 289/* harmony export */ change: function() { return /* binding */ change; }, 290/* harmony export */ children: function() { return /* binding */ children; }, 291/* harmony export */ click: function() { return /* binding */ click; }, 292/* harmony export */ closest: function() { return /* binding */ closest; }, 293/* harmony export */ css: function() { return /* binding */ css; }, 294/* harmony export */ data: function() { return /* binding */ data; }, 295/* harmony export */ dataset: function() { return /* binding */ dataset; }, 296/* harmony export */ detach: function() { return /* binding */ detach; }, 297/* harmony export */ each: function() { return /* binding */ each; }, 298/* harmony export */ empty: function() { return /* binding */ empty; }, 299/* harmony export */ eq: function() { return /* binding */ eq; }, 300/* harmony export */ filter: function() { return /* binding */ filter; }, 301/* harmony export */ find: function() { return /* binding */ find; }, 302/* harmony export */ focus: function() { return /* binding */ focus; }, 303/* harmony export */ focusin: function() { return /* binding */ focusin; }, 304/* harmony export */ focusout: function() { return /* binding */ focusout; }, 305/* harmony export */ hasClass: function() { return /* binding */ hasClass; }, 306/* harmony export */ height: function() { return /* binding */ height; }, 307/* harmony export */ hide: function() { return /* binding */ hide; }, 308/* harmony export */ html: function() { return /* binding */ html; }, 309/* harmony export */ index: function() { return /* binding */ index; }, 310/* harmony export */ insertAfter: function() { return /* binding */ insertAfter; }, 311/* harmony export */ insertBefore: function() { return /* binding */ insertBefore; }, 312/* harmony export */ is: function() { return /* binding */ is; }, 313/* harmony export */ keydown: function() { return /* binding */ keydown; }, 314/* harmony export */ keypress: function() { return /* binding */ keypress; }, 315/* harmony export */ keyup: function() { return /* binding */ keyup; }, 316/* harmony export */ mousedown: function() { return /* binding */ mousedown; }, 317/* harmony export */ mouseenter: function() { return /* binding */ mouseenter; }, 318/* harmony export */ mouseleave: function() { return /* binding */ mouseleave; }, 319/* harmony export */ mousemove: function() { return /* binding */ mousemove; }, 320/* harmony export */ mouseout: function() { return /* binding */ mouseout; }, 321/* harmony export */ mouseover: function() { return /* binding */ mouseover; }, 322/* harmony export */ mouseup: function() { return /* binding */ mouseup; }, 323/* harmony export */ next: function() { return /* binding */ next; }, 324/* harmony export */ nextAll: function() { return /* binding */ nextAll; }, 325/* harmony export */ off: function() { return /* binding */ off; }, 326/* harmony export */ offset: function() { return /* binding */ offset; }, 327/* harmony export */ on: function() { return /* binding */ on; }, 328/* harmony export */ once: function() { return /* binding */ once; }, 329/* harmony export */ outerHeight: function() { return /* binding */ outerHeight; }, 330/* harmony export */ outerWidth: function() { return /* binding */ outerWidth; }, 331/* harmony export */ parent: function() { return /* binding */ parent; }, 332/* harmony export */ parents: function() { return /* binding */ parents; }, 333/* harmony export */ prepend: function() { return /* binding */ prepend; }, 334/* harmony export */ prependTo: function() { return /* binding */ prependTo; }, 335/* harmony export */ prev: function() { return /* binding */ prev; }, 336/* harmony export */ prevAll: function() { return /* binding */ prevAll; }, 337/* harmony export */ prop: function() { return /* binding */ prop; }, 338/* harmony export */ remove: function() { return /* binding */ remove; }, 339/* harmony export */ removeAttr: function() { return /* binding */ removeAttr; }, 340/* harmony export */ removeClass: function() { return /* binding */ removeClass; }, 341/* harmony export */ removeData: function() { return /* binding */ removeData; }, 342/* harmony export */ resize: function() { return /* binding */ resize; }, 343/* harmony export */ scroll: function() { return /* binding */ scroll; }, 344/* harmony export */ scrollLeft: function() { return /* binding */ scrollLeft; }, 345/* harmony export */ scrollTo: function() { return /* binding */ scrollTo; }, 346/* harmony export */ scrollTop: function() { return /* binding */ scrollTop; }, 347/* harmony export */ show: function() { return /* binding */ show; }, 348/* harmony export */ siblings: function() { return /* binding */ siblings; }, 349/* harmony export */ stop: function() { return /* binding */ stop; }, 350/* harmony export */ styles: function() { return /* binding */ styles; }, 351/* harmony export */ submit: function() { return /* binding */ submit; }, 352/* harmony export */ text: function() { return /* binding */ text; }, 353/* harmony export */ toggleClass: function() { return /* binding */ toggleClass; }, 354/* harmony export */ touchend: function() { return /* binding */ touchend; }, 355/* harmony export */ touchmove: function() { return /* binding */ touchmove; }, 356/* harmony export */ touchstart: function() { return /* binding */ touchstart; }, 357/* harmony export */ transform: function() { return /* binding */ transform; }, 358/* harmony export */ transition: function() { return /* binding */ transition; }, 359/* harmony export */ transitionEnd: function() { return /* binding */ transitionEnd; }, 360/* harmony export */ transitionStart: function() { return /* binding */ transitionStart; }, 361/* harmony export */ trigger: function() { return /* binding */ trigger; }, 362/* harmony export */ val: function() { return /* binding */ val; }, 363/* harmony export */ value: function() { return /* binding */ value; }, 364/* harmony export */ width: function() { return /* binding */ width; } 365/* harmony export */ }); 366/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 367function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 368function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } 369function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } 370function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } 371function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } 372function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } 373function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } 374function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } 375function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } 376function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } 377function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } 378function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } 379function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } 380function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } 381function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } 382function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } 383function _wrapNativeSuper(t) { var r = "function" == typeof Map ? new Map() : void 0; return _wrapNativeSuper = function _wrapNativeSuper(t) { if (null === t || !_isNativeFunction(t)) return t; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== r) { if (r.has(t)) return r.get(t); r.set(t, Wrapper); } function Wrapper() { return _construct(t, arguments, _getPrototypeOf(this).constructor); } return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, enumerable: !1, writable: !0, configurable: !0 } }), _setPrototypeOf(Wrapper, t); }, _wrapNativeSuper(t); } 384function _construct(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && _setPrototypeOf(p, r.prototype), p; } 385function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } 386function _isNativeFunction(t) { try { return -1 !== Function.toString.call(t).indexOf("[native code]"); } catch (n) { return "function" == typeof t; } } 387function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } 388function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } 389/** 390 * Dom7 4.0.6 391 * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API 392 * https://framework7.io/docs/dom7.html 393 * 394 * Copyright 2023, Vladimir Kharlampidi 395 * 396 * Licensed under MIT 397 * 398 * Released on: February 2, 2023 399 */ 400 401 402/* eslint-disable no-proto */ 403function makeReactive(obj) { 404 var proto = obj.__proto__; 405 Object.defineProperty(obj, '__proto__', { 406 get: function get() { 407 return proto; 408 }, 409 set: function set(value) { 410 proto.__proto__ = value; 411 } 412 }); 413} 414var Dom7 = /*#__PURE__*/function (_Array) { 415 function Dom7(items) { 416 var _this; 417 _classCallCheck(this, Dom7); 418 if (typeof items === 'number') { 419 _this = _callSuper(this, Dom7, [items]); 420 } else { 421 _this = _callSuper(this, Dom7, _toConsumableArray(items || [])); 422 makeReactive(_assertThisInitialized(_this)); 423 } 424 return _assertThisInitialized(_this); 425 } 426 _inherits(Dom7, _Array); 427 return _createClass(Dom7); 428}(/*#__PURE__*/_wrapNativeSuper(Array)); 429function arrayFlat() { 430 var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 431 var res = []; 432 arr.forEach(function (el) { 433 if (Array.isArray(el)) { 434 res.push.apply(res, _toConsumableArray(arrayFlat(el))); 435 } else { 436 res.push(el); 437 } 438 }); 439 return res; 440} 441function arrayFilter(arr, callback) { 442 return Array.prototype.filter.call(arr, callback); 443} 444function arrayUnique(arr) { 445 var uniqueArray = []; 446 for (var i = 0; i < arr.length; i += 1) { 447 if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]); 448 } 449 return uniqueArray; 450} 451function toCamelCase(string) { 452 return string.toLowerCase().replace(/-(.)/g, function (match, group) { 453 return group.toUpperCase(); 454 }); 455} 456 457// eslint-disable-next-line 458 459function qsa(selector, context) { 460 if (typeof selector !== 'string') { 461 return [selector]; 462 } 463 var a = []; 464 var res = context.querySelectorAll(selector); 465 for (var i = 0; i < res.length; i += 1) { 466 a.push(res[i]); 467 } 468 return a; 469} 470function $(selector, context) { 471 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 472 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 473 var arr = []; 474 if (!context && selector instanceof Dom7) { 475 return selector; 476 } 477 if (!selector) { 478 return new Dom7(arr); 479 } 480 if (typeof selector === 'string') { 481 var _html = selector.trim(); 482 if (_html.indexOf('<') >= 0 && _html.indexOf('>') >= 0) { 483 var toCreate = 'div'; 484 if (_html.indexOf('<li') === 0) toCreate = 'ul'; 485 if (_html.indexOf('<tr') === 0) toCreate = 'tbody'; 486 if (_html.indexOf('<td') === 0 || _html.indexOf('<th') === 0) toCreate = 'tr'; 487 if (_html.indexOf('<tbody') === 0) toCreate = 'table'; 488 if (_html.indexOf('<option') === 0) toCreate = 'select'; 489 var tempParent = document.createElement(toCreate); 490 tempParent.innerHTML = _html; 491 for (var i = 0; i < tempParent.childNodes.length; i += 1) { 492 arr.push(tempParent.childNodes[i]); 493 } 494 } else { 495 arr = qsa(selector.trim(), context || document); 496 } // arr = qsa(selector, document); 497 } else if (selector.nodeType || selector === window || selector === document) { 498 arr.push(selector); 499 } else if (Array.isArray(selector)) { 500 if (selector instanceof Dom7) return selector; 501 arr = selector; 502 } 503 return new Dom7(arrayUnique(arr)); 504} 505$.fn = Dom7.prototype; 506 507// eslint-disable-next-line 508 509function addClass() { 510 for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) { 511 classes[_key] = arguments[_key]; 512 } 513 var classNames = arrayFlat(classes.map(function (c) { 514 return c.split(' '); 515 })); 516 this.forEach(function (el) { 517 var _el$classList; 518 (_el$classList = el.classList).add.apply(_el$classList, _toConsumableArray(classNames)); 519 }); 520 return this; 521} 522function removeClass() { 523 for (var _len2 = arguments.length, classes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 524 classes[_key2] = arguments[_key2]; 525 } 526 var classNames = arrayFlat(classes.map(function (c) { 527 return c.split(' '); 528 })); 529 this.forEach(function (el) { 530 var _el$classList2; 531 (_el$classList2 = el.classList).remove.apply(_el$classList2, _toConsumableArray(classNames)); 532 }); 533 return this; 534} 535function toggleClass() { 536 for (var _len3 = arguments.length, classes = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { 537 classes[_key3] = arguments[_key3]; 538 } 539 var classNames = arrayFlat(classes.map(function (c) { 540 return c.split(' '); 541 })); 542 this.forEach(function (el) { 543 classNames.forEach(function (className) { 544 el.classList.toggle(className); 545 }); 546 }); 547} 548function hasClass() { 549 for (var _len4 = arguments.length, classes = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) { 550 classes[_key4] = arguments[_key4]; 551 } 552 var classNames = arrayFlat(classes.map(function (c) { 553 return c.split(' '); 554 })); 555 return arrayFilter(this, function (el) { 556 return classNames.filter(function (className) { 557 return el.classList.contains(className); 558 }).length > 0; 559 }).length > 0; 560} 561function attr(attrs, value) { 562 if (arguments.length === 1 && typeof attrs === 'string') { 563 // Get attr 564 if (this[0]) return this[0].getAttribute(attrs); 565 return undefined; 566 } // Set attrs 567 568 for (var i = 0; i < this.length; i += 1) { 569 if (arguments.length === 2) { 570 // String 571 this[i].setAttribute(attrs, value); 572 } else { 573 // Object 574 for (var attrName in attrs) { 575 this[i][attrName] = attrs[attrName]; 576 this[i].setAttribute(attrName, attrs[attrName]); 577 } 578 } 579 } 580 return this; 581} 582function removeAttr(attr) { 583 for (var i = 0; i < this.length; i += 1) { 584 this[i].removeAttribute(attr); 585 } 586 return this; 587} 588function prop(props, value) { 589 if (arguments.length === 1 && typeof props === 'string') { 590 // Get prop 591 if (this[0]) return this[0][props]; 592 } else { 593 // Set props 594 for (var i = 0; i < this.length; i += 1) { 595 if (arguments.length === 2) { 596 // String 597 this[i][props] = value; 598 } else { 599 // Object 600 for (var propName in props) { 601 this[i][propName] = props[propName]; 602 } 603 } 604 } 605 return this; 606 } 607 return this; 608} 609function data(key, value) { 610 var el; 611 if (typeof value === 'undefined') { 612 el = this[0]; 613 if (!el) return undefined; // Get value 614 615 if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) { 616 return el.dom7ElementDataStorage[key]; 617 } 618 var dataKey = el.getAttribute("data-".concat(key)); 619 if (dataKey) { 620 return dataKey; 621 } 622 return undefined; 623 } // Set value 624 625 for (var i = 0; i < this.length; i += 1) { 626 el = this[i]; 627 if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {}; 628 el.dom7ElementDataStorage[key] = value; 629 } 630 return this; 631} 632function removeData(key) { 633 for (var i = 0; i < this.length; i += 1) { 634 var el = this[i]; 635 if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) { 636 el.dom7ElementDataStorage[key] = null; 637 delete el.dom7ElementDataStorage[key]; 638 } 639 } 640} 641function dataset() { 642 var el = this[0]; 643 if (!el) return undefined; 644 var dataset = {}; // eslint-disable-line 645 646 if (el.dataset) { 647 for (var dataKey in el.dataset) { 648 dataset[dataKey] = el.dataset[dataKey]; 649 } 650 } else { 651 for (var i = 0; i < el.attributes.length; i += 1) { 652 var _attr = el.attributes[i]; 653 if (_attr.name.indexOf('data-') >= 0) { 654 dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value; 655 } 656 } 657 } 658 for (var key in dataset) { 659 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; 660 } 661 return dataset; 662} 663function val(value) { 664 if (typeof value === 'undefined') { 665 // get value 666 var el = this[0]; 667 if (!el) return undefined; 668 if (el.multiple && el.nodeName.toLowerCase() === 'select') { 669 var values = []; 670 for (var i = 0; i < el.selectedOptions.length; i += 1) { 671 values.push(el.selectedOptions[i].value); 672 } 673 return values; 674 } 675 return el.value; 676 } // set value 677 678 for (var _i = 0; _i < this.length; _i += 1) { 679 var _el = this[_i]; 680 if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') { 681 for (var j = 0; j < _el.options.length; j += 1) { 682 _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0; 683 } 684 } else { 685 _el.value = value; 686 } 687 } 688 return this; 689} 690function value(value) { 691 return this.val(value); 692} 693function transform(transform) { 694 for (var i = 0; i < this.length; i += 1) { 695 this[i].style.transform = transform; 696 } 697 return this; 698} 699function transition(duration) { 700 for (var i = 0; i < this.length; i += 1) { 701 this[i].style.transitionDuration = typeof duration !== 'string' ? "".concat(duration, "ms") : duration; 702 } 703 return this; 704} 705function on() { 706 for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) { 707 args[_key5] = arguments[_key5]; 708 } 709 var eventType = args[0], 710 targetSelector = args[1], 711 listener = args[2], 712 capture = args[3]; 713 if (typeof args[1] === 'function') { 714 eventType = args[0]; 715 listener = args[1]; 716 capture = args[2]; 717 targetSelector = undefined; 718 } 719 if (!capture) capture = false; 720 function handleLiveEvent(e) { 721 var target = e.target; 722 if (!target) return; 723 var eventData = e.target.dom7EventData || []; 724 if (eventData.indexOf(e) < 0) { 725 eventData.unshift(e); 726 } 727 if ($(target).is(targetSelector)) listener.apply(target, eventData);else { 728 var _parents = $(target).parents(); // eslint-disable-line 729 730 for (var k = 0; k < _parents.length; k += 1) { 731 if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData); 732 } 733 } 734 } 735 function handleEvent(e) { 736 var eventData = e && e.target ? e.target.dom7EventData || [] : []; 737 if (eventData.indexOf(e) < 0) { 738 eventData.unshift(e); 739 } 740 listener.apply(this, eventData); 741 } 742 var events = eventType.split(' '); 743 var j; 744 for (var i = 0; i < this.length; i += 1) { 745 var el = this[i]; 746 if (!targetSelector) { 747 for (j = 0; j < events.length; j += 1) { 748 var event = events[j]; 749 if (!el.dom7Listeners) el.dom7Listeners = {}; 750 if (!el.dom7Listeners[event]) el.dom7Listeners[event] = []; 751 el.dom7Listeners[event].push({ 752 listener: listener, 753 proxyListener: handleEvent 754 }); 755 el.addEventListener(event, handleEvent, capture); 756 } 757 } else { 758 // Live events 759 for (j = 0; j < events.length; j += 1) { 760 var _event = events[j]; 761 if (!el.dom7LiveListeners) el.dom7LiveListeners = {}; 762 if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = []; 763 el.dom7LiveListeners[_event].push({ 764 listener: listener, 765 proxyListener: handleLiveEvent 766 }); 767 el.addEventListener(_event, handleLiveEvent, capture); 768 } 769 } 770 } 771 return this; 772} 773function off() { 774 for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) { 775 args[_key6] = arguments[_key6]; 776 } 777 var eventType = args[0], 778 targetSelector = args[1], 779 listener = args[2], 780 capture = args[3]; 781 if (typeof args[1] === 'function') { 782 eventType = args[0]; 783 listener = args[1]; 784 capture = args[2]; 785 targetSelector = undefined; 786 } 787 if (!capture) capture = false; 788 var events = eventType.split(' '); 789 for (var i = 0; i < events.length; i += 1) { 790 var event = events[i]; 791 for (var j = 0; j < this.length; j += 1) { 792 var el = this[j]; 793 var handlers = void 0; 794 if (!targetSelector && el.dom7Listeners) { 795 handlers = el.dom7Listeners[event]; 796 } else if (targetSelector && el.dom7LiveListeners) { 797 handlers = el.dom7LiveListeners[event]; 798 } 799 if (handlers && handlers.length) { 800 for (var k = handlers.length - 1; k >= 0; k -= 1) { 801 var handler = handlers[k]; 802 if (listener && handler.listener === listener) { 803 el.removeEventListener(event, handler.proxyListener, capture); 804 handlers.splice(k, 1); 805 } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) { 806 el.removeEventListener(event, handler.proxyListener, capture); 807 handlers.splice(k, 1); 808 } else if (!listener) { 809 el.removeEventListener(event, handler.proxyListener, capture); 810 handlers.splice(k, 1); 811 } 812 } 813 } 814 } 815 } 816 return this; 817} 818function once() { 819 var dom = this; 820 for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) { 821 args[_key7] = arguments[_key7]; 822 } 823 var eventName = args[0], 824 targetSelector = args[1], 825 listener = args[2], 826 capture = args[3]; 827 if (typeof args[1] === 'function') { 828 eventName = args[0]; 829 listener = args[1]; 830 capture = args[2]; 831 targetSelector = undefined; 832 } 833 function onceHandler() { 834 for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) { 835 eventArgs[_key8] = arguments[_key8]; 836 } 837 listener.apply(this, eventArgs); 838 dom.off(eventName, targetSelector, onceHandler, capture); 839 if (onceHandler.dom7proxy) { 840 delete onceHandler.dom7proxy; 841 } 842 } 843 onceHandler.dom7proxy = listener; 844 return dom.on(eventName, targetSelector, onceHandler, capture); 845} 846function trigger() { 847 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 848 for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) { 849 args[_key9] = arguments[_key9]; 850 } 851 var events = args[0].split(' '); 852 var eventData = args[1]; 853 for (var i = 0; i < events.length; i += 1) { 854 var event = events[i]; 855 for (var j = 0; j < this.length; j += 1) { 856 var el = this[j]; 857 if (window.CustomEvent) { 858 var evt = new window.CustomEvent(event, { 859 detail: eventData, 860 bubbles: true, 861 cancelable: true 862 }); 863 el.dom7EventData = args.filter(function (data, dataIndex) { 864 return dataIndex > 0; 865 }); 866 el.dispatchEvent(evt); 867 el.dom7EventData = []; 868 delete el.dom7EventData; 869 } 870 } 871 } 872 return this; 873} 874function transitionStart(callback) { 875 var dom = this; 876 function fireCallBack(e) { 877 if (e.target !== this) return; 878 callback.call(this, e); 879 dom.off('transitionstart', fireCallBack); 880 } 881 if (callback) { 882 dom.on('transitionstart', fireCallBack); 883 } 884 return this; 885} 886function transitionEnd(callback) { 887 var dom = this; 888 function fireCallBack(e) { 889 if (e.target !== this) return; 890 callback.call(this, e); 891 dom.off('transitionend', fireCallBack); 892 } 893 if (callback) { 894 dom.on('transitionend', fireCallBack); 895 } 896 return this; 897} 898function animationEnd(callback) { 899 var dom = this; 900 function fireCallBack(e) { 901 if (e.target !== this) return; 902 callback.call(this, e); 903 dom.off('animationend', fireCallBack); 904 } 905 if (callback) { 906 dom.on('animationend', fireCallBack); 907 } 908 return this; 909} 910function width() { 911 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 912 if (this[0] === window) { 913 return window.innerWidth; 914 } 915 if (this.length > 0) { 916 return parseFloat(this.css('width')); 917 } 918 return null; 919} 920function outerWidth(includeMargins) { 921 if (this.length > 0) { 922 if (includeMargins) { 923 var _styles = this.styles(); 924 return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left')); 925 } 926 return this[0].offsetWidth; 927 } 928 return null; 929} 930function height() { 931 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 932 if (this[0] === window) { 933 return window.innerHeight; 934 } 935 if (this.length > 0) { 936 return parseFloat(this.css('height')); 937 } 938 return null; 939} 940function outerHeight(includeMargins) { 941 if (this.length > 0) { 942 if (includeMargins) { 943 var _styles2 = this.styles(); 944 return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom')); 945 } 946 return this[0].offsetHeight; 947 } 948 return null; 949} 950function offset() { 951 if (this.length > 0) { 952 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 953 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 954 var el = this[0]; 955 var box = el.getBoundingClientRect(); 956 var body = document.body; 957 var clientTop = el.clientTop || body.clientTop || 0; 958 var clientLeft = el.clientLeft || body.clientLeft || 0; 959 var _scrollTop = el === window ? window.scrollY : el.scrollTop; 960 var _scrollLeft = el === window ? window.scrollX : el.scrollLeft; 961 return { 962 top: box.top + _scrollTop - clientTop, 963 left: box.left + _scrollLeft - clientLeft 964 }; 965 } 966 return null; 967} 968function hide() { 969 for (var i = 0; i < this.length; i += 1) { 970 this[i].style.display = 'none'; 971 } 972 return this; 973} 974function show() { 975 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 976 for (var i = 0; i < this.length; i += 1) { 977 var el = this[i]; 978 if (el.style.display === 'none') { 979 el.style.display = ''; 980 } 981 if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') { 982 // Still not visible 983 el.style.display = 'block'; 984 } 985 } 986 return this; 987} 988function styles() { 989 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 990 if (this[0]) return window.getComputedStyle(this[0], null); 991 return {}; 992} 993function css(props, value) { 994 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 995 var i; 996 if (arguments.length === 1) { 997 if (typeof props === 'string') { 998 // .css('width') 999 if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props); 1000 } else { 1001 // .css({ width: '100px' }) 1002 for (i = 0; i < this.length; i += 1) { 1003 for (var _prop in props) { 1004 this[i].style[_prop] = props[_prop]; 1005 } 1006 } 1007 return this; 1008 } 1009 } 1010 if (arguments.length === 2 && typeof props === 'string') { 1011 // .css('width', '100px') 1012 for (i = 0; i < this.length; i += 1) { 1013 this[i].style[props] = value; 1014 } 1015 return this; 1016 } 1017 return this; 1018} 1019function each(callback) { 1020 if (!callback) return this; 1021 this.forEach(function (el, index) { 1022 callback.apply(el, [el, index]); 1023 }); 1024 return this; 1025} 1026function filter(callback) { 1027 var result = arrayFilter(this, callback); 1028 return $(result); 1029} 1030function html(html) { 1031 if (typeof html === 'undefined') { 1032 return this[0] ? this[0].innerHTML : null; 1033 } 1034 for (var i = 0; i < this.length; i += 1) { 1035 this[i].innerHTML = html; 1036 } 1037 return this; 1038} 1039function text(text) { 1040 if (typeof text === 'undefined') { 1041 return this[0] ? this[0].textContent.trim() : null; 1042 } 1043 for (var i = 0; i < this.length; i += 1) { 1044 this[i].textContent = text; 1045 } 1046 return this; 1047} 1048function is(selector) { 1049 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 1050 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 1051 var el = this[0]; 1052 var compareWith; 1053 var i; 1054 if (!el || typeof selector === 'undefined') return false; 1055 if (typeof selector === 'string') { 1056 if (el.matches) return el.matches(selector); 1057 if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector); 1058 if (el.msMatchesSelector) return el.msMatchesSelector(selector); 1059 compareWith = $(selector); 1060 for (i = 0; i < compareWith.length; i += 1) { 1061 if (compareWith[i] === el) return true; 1062 } 1063 return false; 1064 } 1065 if (selector === document) { 1066 return el === document; 1067 } 1068 if (selector === window) { 1069 return el === window; 1070 } 1071 if (selector.nodeType || selector instanceof Dom7) { 1072 compareWith = selector.nodeType ? [selector] : selector; 1073 for (i = 0; i < compareWith.length; i += 1) { 1074 if (compareWith[i] === el) return true; 1075 } 1076 return false; 1077 } 1078 return false; 1079} 1080function index() { 1081 var child = this[0]; 1082 var i; 1083 if (child) { 1084 i = 0; // eslint-disable-next-line 1085 1086 while ((child = child.previousSibling) !== null) { 1087 if (child.nodeType === 1) i += 1; 1088 } 1089 return i; 1090 } 1091 return undefined; 1092} 1093function eq(index) { 1094 if (typeof index === 'undefined') return this; 1095 var length = this.length; 1096 if (index > length - 1) { 1097 return $([]); 1098 } 1099 if (index < 0) { 1100 var returnIndex = length + index; 1101 if (returnIndex < 0) return $([]); 1102 return $([this[returnIndex]]); 1103 } 1104 return $([this[index]]); 1105} 1106function append() { 1107 var newChild; 1108 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 1109 for (var k = 0; k < arguments.length; k += 1) { 1110 newChild = k < 0 || arguments.length <= k ? undefined : arguments[k]; 1111 for (var i = 0; i < this.length; i += 1) { 1112 if (typeof newChild === 'string') { 1113 var tempDiv = document.createElement('div'); 1114 tempDiv.innerHTML = newChild; 1115 while (tempDiv.firstChild) { 1116 this[i].appendChild(tempDiv.firstChild); 1117 } 1118 } else if (newChild instanceof Dom7) { 1119 for (var j = 0; j < newChild.length; j += 1) { 1120 this[i].appendChild(newChild[j]); 1121 } 1122 } else { 1123 this[i].appendChild(newChild); 1124 } 1125 } 1126 } 1127 return this; 1128} 1129function appendTo(parent) { 1130 $(parent).append(this); 1131 return this; 1132} 1133function prepend(newChild) { 1134 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 1135 var i; 1136 var j; 1137 for (i = 0; i < this.length; i += 1) { 1138 if (typeof newChild === 'string') { 1139 var tempDiv = document.createElement('div'); 1140 tempDiv.innerHTML = newChild; 1141 for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) { 1142 this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]); 1143 } 1144 } else if (newChild instanceof Dom7) { 1145 for (j = 0; j < newChild.length; j += 1) { 1146 this[i].insertBefore(newChild[j], this[i].childNodes[0]); 1147 } 1148 } else { 1149 this[i].insertBefore(newChild, this[i].childNodes[0]); 1150 } 1151 } 1152 return this; 1153} 1154function prependTo(parent) { 1155 $(parent).prepend(this); 1156 return this; 1157} 1158function insertBefore(selector) { 1159 var before = $(selector); 1160 for (var i = 0; i < this.length; i += 1) { 1161 if (before.length === 1) { 1162 before[0].parentNode.insertBefore(this[i], before[0]); 1163 } else if (before.length > 1) { 1164 for (var j = 0; j < before.length; j += 1) { 1165 before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]); 1166 } 1167 } 1168 } 1169} 1170function insertAfter(selector) { 1171 var after = $(selector); 1172 for (var i = 0; i < this.length; i += 1) { 1173 if (after.length === 1) { 1174 after[0].parentNode.insertBefore(this[i], after[0].nextSibling); 1175 } else if (after.length > 1) { 1176 for (var j = 0; j < after.length; j += 1) { 1177 after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling); 1178 } 1179 } 1180 } 1181} 1182function next(selector) { 1183 if (this.length > 0) { 1184 if (selector) { 1185 if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) { 1186 return $([this[0].nextElementSibling]); 1187 } 1188 return $([]); 1189 } 1190 if (this[0].nextElementSibling) return $([this[0].nextElementSibling]); 1191 return $([]); 1192 } 1193 return $([]); 1194} 1195function nextAll(selector) { 1196 var nextEls = []; 1197 var el = this[0]; 1198 if (!el) return $([]); 1199 while (el.nextElementSibling) { 1200 var _next = el.nextElementSibling; // eslint-disable-line 1201 1202 if (selector) { 1203 if ($(_next).is(selector)) nextEls.push(_next); 1204 } else nextEls.push(_next); 1205 el = _next; 1206 } 1207 return $(nextEls); 1208} 1209function prev(selector) { 1210 if (this.length > 0) { 1211 var el = this[0]; 1212 if (selector) { 1213 if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) { 1214 return $([el.previousElementSibling]); 1215 } 1216 return $([]); 1217 } 1218 if (el.previousElementSibling) return $([el.previousElementSibling]); 1219 return $([]); 1220 } 1221 return $([]); 1222} 1223function prevAll(selector) { 1224 var prevEls = []; 1225 var el = this[0]; 1226 if (!el) return $([]); 1227 while (el.previousElementSibling) { 1228 var _prev = el.previousElementSibling; // eslint-disable-line 1229 1230 if (selector) { 1231 if ($(_prev).is(selector)) prevEls.push(_prev); 1232 } else prevEls.push(_prev); 1233 el = _prev; 1234 } 1235 return $(prevEls); 1236} 1237function siblings(selector) { 1238 return this.nextAll(selector).add(this.prevAll(selector)); 1239} 1240function parent(selector) { 1241 var parents = []; // eslint-disable-line 1242 1243 for (var i = 0; i < this.length; i += 1) { 1244 if (this[i].parentNode !== null) { 1245 if (selector) { 1246 if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode); 1247 } else { 1248 parents.push(this[i].parentNode); 1249 } 1250 } 1251 } 1252 return $(parents); 1253} 1254function parents(selector) { 1255 var parents = []; // eslint-disable-line 1256 1257 for (var i = 0; i < this.length; i += 1) { 1258 var _parent = this[i].parentNode; // eslint-disable-line 1259 1260 while (_parent) { 1261 if (selector) { 1262 if ($(_parent).is(selector)) parents.push(_parent); 1263 } else { 1264 parents.push(_parent); 1265 } 1266 _parent = _parent.parentNode; 1267 } 1268 } 1269 return $(parents); 1270} 1271function closest(selector) { 1272 var closest = this; // eslint-disable-line 1273 1274 if (typeof selector === 'undefined') { 1275 return $([]); 1276 } 1277 if (!closest.is(selector)) { 1278 closest = closest.parents(selector).eq(0); 1279 } 1280 return closest; 1281} 1282function find(selector) { 1283 var foundElements = []; 1284 for (var i = 0; i < this.length; i += 1) { 1285 var found = this[i].querySelectorAll(selector); 1286 for (var j = 0; j < found.length; j += 1) { 1287 foundElements.push(found[j]); 1288 } 1289 } 1290 return $(foundElements); 1291} 1292function children(selector) { 1293 var children = []; // eslint-disable-line 1294 1295 for (var i = 0; i < this.length; i += 1) { 1296 var childNodes = this[i].children; 1297 for (var j = 0; j < childNodes.length; j += 1) { 1298 if (!selector || $(childNodes[j]).is(selector)) { 1299 children.push(childNodes[j]); 1300 } 1301 } 1302 } 1303 return $(children); 1304} 1305function remove() { 1306 for (var i = 0; i < this.length; i += 1) { 1307 if (this[i].parentNode) this[i].parentNode.removeChild(this[i]); 1308 } 1309 return this; 1310} 1311function detach() { 1312 return this.remove(); 1313} 1314function add() { 1315 var dom = this; 1316 var i; 1317 var j; 1318 for (var _len0 = arguments.length, els = new Array(_len0), _key0 = 0; _key0 < _len0; _key0++) { 1319 els[_key0] = arguments[_key0]; 1320 } 1321 for (i = 0; i < els.length; i += 1) { 1322 var toAdd = $(els[i]); 1323 for (j = 0; j < toAdd.length; j += 1) { 1324 dom.push(toAdd[j]); 1325 } 1326 } 1327 return dom; 1328} 1329function empty() { 1330 for (var i = 0; i < this.length; i += 1) { 1331 var el = this[i]; 1332 if (el.nodeType === 1) { 1333 for (var j = 0; j < el.childNodes.length; j += 1) { 1334 if (el.childNodes[j].parentNode) { 1335 el.childNodes[j].parentNode.removeChild(el.childNodes[j]); 1336 } 1337 } 1338 el.textContent = ''; 1339 } 1340 } 1341 return this; 1342} 1343 1344// eslint-disable-next-line 1345 1346function scrollTo() { 1347 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 1348 for (var _len1 = arguments.length, args = new Array(_len1), _key1 = 0; _key1 < _len1; _key1++) { 1349 args[_key1] = arguments[_key1]; 1350 } 1351 var left = args[0], 1352 top = args[1], 1353 duration = args[2], 1354 easing = args[3], 1355 callback = args[4]; 1356 if (args.length === 4 && typeof easing === 'function') { 1357 callback = easing; 1358 left = args[0]; 1359 top = args[1]; 1360 duration = args[2]; 1361 callback = args[3]; 1362 easing = args[4]; 1363 } 1364 if (typeof easing === 'undefined') easing = 'swing'; 1365 return this.each(function animate() { 1366 var el = this; 1367 var currentTop; 1368 var currentLeft; 1369 var maxTop; 1370 var maxLeft; 1371 var newTop; 1372 var newLeft; 1373 var scrollTop; // eslint-disable-line 1374 1375 var scrollLeft; // eslint-disable-line 1376 1377 var animateTop = top > 0 || top === 0; 1378 var animateLeft = left > 0 || left === 0; 1379 if (typeof easing === 'undefined') { 1380 easing = 'swing'; 1381 } 1382 if (animateTop) { 1383 currentTop = el.scrollTop; 1384 if (!duration) { 1385 el.scrollTop = top; 1386 } 1387 } 1388 if (animateLeft) { 1389 currentLeft = el.scrollLeft; 1390 if (!duration) { 1391 el.scrollLeft = left; 1392 } 1393 } 1394 if (!duration) return; 1395 if (animateTop) { 1396 maxTop = el.scrollHeight - el.offsetHeight; 1397 newTop = Math.max(Math.min(top, maxTop), 0); 1398 } 1399 if (animateLeft) { 1400 maxLeft = el.scrollWidth - el.offsetWidth; 1401 newLeft = Math.max(Math.min(left, maxLeft), 0); 1402 } 1403 var startTime = null; 1404 if (animateTop && newTop === currentTop) animateTop = false; 1405 if (animateLeft && newLeft === currentLeft) animateLeft = false; 1406 function render() { 1407 var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date().getTime(); 1408 if (startTime === null) { 1409 startTime = time; 1410 } 1411 var progress = Math.max(Math.min((time - startTime) / duration, 1), 0); 1412 var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2; 1413 var done; 1414 if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop); 1415 if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft); 1416 if (animateTop && newTop > currentTop && scrollTop >= newTop) { 1417 el.scrollTop = newTop; 1418 done = true; 1419 } 1420 if (animateTop && newTop < currentTop && scrollTop <= newTop) { 1421 el.scrollTop = newTop; 1422 done = true; 1423 } 1424 if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) { 1425 el.scrollLeft = newLeft; 1426 done = true; 1427 } 1428 if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) { 1429 el.scrollLeft = newLeft; 1430 done = true; 1431 } 1432 if (done) { 1433 if (callback) callback(); 1434 return; 1435 } 1436 if (animateTop) el.scrollTop = scrollTop; 1437 if (animateLeft) el.scrollLeft = scrollLeft; 1438 window.requestAnimationFrame(render); 1439 } 1440 window.requestAnimationFrame(render); 1441 }); 1442} // scrollTop(top, duration, easing, callback) { 1443 1444function scrollTop() { 1445 for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) { 1446 args[_key10] = arguments[_key10]; 1447 } 1448 var top = args[0], 1449 duration = args[1], 1450 easing = args[2], 1451 callback = args[3]; 1452 if (args.length === 3 && typeof easing === 'function') { 1453 top = args[0]; 1454 duration = args[1]; 1455 callback = args[2]; 1456 easing = args[3]; 1457 } 1458 var dom = this; 1459 if (typeof top === 'undefined') { 1460 if (dom.length > 0) return dom[0].scrollTop; 1461 return null; 1462 } 1463 return dom.scrollTo(undefined, top, duration, easing, callback); 1464} 1465function scrollLeft() { 1466 for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) { 1467 args[_key11] = arguments[_key11]; 1468 } 1469 var left = args[0], 1470 duration = args[1], 1471 easing = args[2], 1472 callback = args[3]; 1473 if (args.length === 3 && typeof easing === 'function') { 1474 left = args[0]; 1475 duration = args[1]; 1476 callback = args[2]; 1477 easing = args[3]; 1478 } 1479 var dom = this; 1480 if (typeof left === 'undefined') { 1481 if (dom.length > 0) return dom[0].scrollLeft; 1482 return null; 1483 } 1484 return dom.scrollTo(left, undefined, duration, easing, callback); 1485} 1486 1487// eslint-disable-next-line 1488 1489function animate(initialProps, initialParams) { 1490 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 1491 var els = this; 1492 var a = { 1493 props: Object.assign({}, initialProps), 1494 params: Object.assign({ 1495 duration: 300, 1496 easing: 'swing' // or 'linear' 1497 1498 /* Callbacks 1499 begin(elements) 1500 complete(elements) 1501 progress(elements, complete, remaining, start, tweenValue) 1502 */ 1503 }, initialParams), 1504 elements: els, 1505 animating: false, 1506 que: [], 1507 easingProgress: function easingProgress(easing, progress) { 1508 if (easing === 'swing') { 1509 return 0.5 - Math.cos(progress * Math.PI) / 2; 1510 } 1511 if (typeof easing === 'function') { 1512 return easing(progress); 1513 } 1514 return progress; 1515 }, 1516 stop: function stop() { 1517 if (a.frameId) { 1518 window.cancelAnimationFrame(a.frameId); 1519 } 1520 a.animating = false; 1521 a.elements.each(function (el) { 1522 var element = el; 1523 delete element.dom7AnimateInstance; 1524 }); 1525 a.que = []; 1526 }, 1527 done: function done(complete) { 1528 a.animating = false; 1529 a.elements.each(function (el) { 1530 var element = el; 1531 delete element.dom7AnimateInstance; 1532 }); 1533 if (complete) complete(els); 1534 if (a.que.length > 0) { 1535 var que = a.que.shift(); 1536 a.animate(que[0], que[1]); 1537 } 1538 }, 1539 animate: function animate(props, params) { 1540 if (a.animating) { 1541 a.que.push([props, params]); 1542 return a; 1543 } 1544 var elements = []; // Define & Cache Initials & Units 1545 1546 a.elements.each(function (el, index) { 1547 var initialFullValue; 1548 var initialValue; 1549 var unit; 1550 var finalValue; 1551 var finalFullValue; 1552 if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a; 1553 elements[index] = { 1554 container: el 1555 }; 1556 Object.keys(props).forEach(function (prop) { 1557 initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.'); 1558 initialValue = parseFloat(initialFullValue); 1559 unit = initialFullValue.replace(initialValue, ''); 1560 finalValue = parseFloat(props[prop]); 1561 finalFullValue = props[prop] + unit; 1562 elements[index][prop] = { 1563 initialFullValue: initialFullValue, 1564 initialValue: initialValue, 1565 unit: unit, 1566 finalValue: finalValue, 1567 finalFullValue: finalFullValue, 1568 currentValue: initialValue 1569 }; 1570 }); 1571 }); 1572 var startTime = null; 1573 var time; 1574 var elementsDone = 0; 1575 var propsDone = 0; 1576 var done; 1577 var began = false; 1578 a.animating = true; 1579 function render() { 1580 time = new Date().getTime(); 1581 var progress; 1582 var easeProgress; // let el; 1583 1584 if (!began) { 1585 began = true; 1586 if (params.begin) params.begin(els); 1587 } 1588 if (startTime === null) { 1589 startTime = time; 1590 } 1591 if (params.progress) { 1592 // eslint-disable-next-line 1593 params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime); 1594 } 1595 elements.forEach(function (element) { 1596 var el = element; 1597 if (done || el.done) return; 1598 Object.keys(props).forEach(function (prop) { 1599 if (done || el.done) return; 1600 progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0); 1601 easeProgress = a.easingProgress(params.easing, progress); 1602 var _el$prop = el[prop], 1603 initialValue = _el$prop.initialValue, 1604 finalValue = _el$prop.finalValue, 1605 unit = _el$prop.unit; 1606 el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue); 1607 var currentValue = el[prop].currentValue; 1608 if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) { 1609 el.container.style[prop] = finalValue + unit; 1610 propsDone += 1; 1611 if (propsDone === Object.keys(props).length) { 1612 el.done = true; 1613 elementsDone += 1; 1614 } 1615 if (elementsDone === elements.length) { 1616 done = true; 1617 } 1618 } 1619 if (done) { 1620 a.done(params.complete); 1621 return; 1622 } 1623 el.container.style[prop] = currentValue + unit; 1624 }); 1625 }); 1626 if (done) return; // Then call 1627 1628 a.frameId = window.requestAnimationFrame(render); 1629 } 1630 a.frameId = window.requestAnimationFrame(render); 1631 return a; 1632 } 1633 }; 1634 if (a.elements.length === 0) { 1635 return els; 1636 } 1637 var animateInstance; 1638 for (var i = 0; i < a.elements.length; i += 1) { 1639 if (a.elements[i].dom7AnimateInstance) { 1640 animateInstance = a.elements[i].dom7AnimateInstance; 1641 } else a.elements[i].dom7AnimateInstance = a; 1642 } 1643 if (!animateInstance) { 1644 animateInstance = a; 1645 } 1646 if (initialProps === 'stop') { 1647 animateInstance.stop(); 1648 } else { 1649 animateInstance.animate(a.props, a.params); 1650 } 1651 return els; 1652} 1653function stop() { 1654 var els = this; 1655 for (var i = 0; i < els.length; i += 1) { 1656 if (els[i].dom7AnimateInstance) { 1657 els[i].dom7AnimateInstance.stop(); 1658 } 1659 } 1660} 1661var noTrigger = 'resize scroll'.split(' '); 1662function shortcut(name) { 1663 function eventHandler() { 1664 for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) { 1665 args[_key12] = arguments[_key12]; 1666 } 1667 if (typeof args[0] === 'undefined') { 1668 for (var i = 0; i < this.length; i += 1) { 1669 if (noTrigger.indexOf(name) < 0) { 1670 if (name in this[i]) this[i][name]();else { 1671 $(this[i]).trigger(name); 1672 } 1673 } 1674 } 1675 return this; 1676 } 1677 return this.on.apply(this, [name].concat(args)); 1678 } 1679 return eventHandler; 1680} 1681var click = shortcut('click'); 1682var blur = shortcut('blur'); 1683var focus = shortcut('focus'); 1684var focusin = shortcut('focusin'); 1685var focusout = shortcut('focusout'); 1686var keyup = shortcut('keyup'); 1687var keydown = shortcut('keydown'); 1688var keypress = shortcut('keypress'); 1689var submit = shortcut('submit'); 1690var change = shortcut('change'); 1691var mousedown = shortcut('mousedown'); 1692var mousemove = shortcut('mousemove'); 1693var mouseup = shortcut('mouseup'); 1694var mouseenter = shortcut('mouseenter'); 1695var mouseleave = shortcut('mouseleave'); 1696var mouseout = shortcut('mouseout'); 1697var mouseover = shortcut('mouseover'); 1698var touchstart = shortcut('touchstart'); 1699var touchend = shortcut('touchend'); 1700var touchmove = shortcut('touchmove'); 1701var resize = shortcut('resize'); 1702var scroll = shortcut('scroll'); 1703/* harmony default export */ __webpack_exports__["default"] = ($); 1704 1705 1706/***/ }), 1707
vendor: 59,929 bytes, lines 1708-3223
1708/***/ "./node_modules/jquery-validation/dist/jquery.validate.js": 1709/*!****************************************************************!*\ 1710 !*** ./node_modules/jquery-validation/dist/jquery.validate.js ***! 1711 \****************************************************************/ 1712/***/ (function(module, exports, __webpack_require__) { 1713 1714var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 1715/*! 1716 * jQuery Validation Plugin v1.21.0 1717 * 1718 * https://jqueryvalidation.org/ 1719 * 1720 * Copyright (c) 2024 Jörn Zaefferer 1721 * Released under the MIT license 1722 */ 1723(function (factory) { 1724 if (true) { 1725 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js")], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), 1726 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 1727 (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), 1728 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 1729 } else // removed by dead control flow 1730{} 1731})(function ($) { 1732 $.extend($.fn, { 1733 // https://jqueryvalidation.org/validate/ 1734 validate: function validate(options) { 1735 // If nothing is selected, return nothing; can't chain anyway 1736 if (!this.length) { 1737 if (options && options.debug && window.console) { 1738 console.warn("Nothing selected, can't validate, returning nothing."); 1739 } 1740 return; 1741 } 1742 1743 // Check if a validator for this form was already created 1744 var validator = $.data(this[0], "validator"); 1745 if (validator) { 1746 return validator; 1747 } 1748 1749 // Add novalidate tag if HTML5. 1750 this.attr("novalidate", "novalidate"); 1751 validator = new $.validator(options, this[0]); 1752 $.data(this[0], "validator", validator); 1753 if (validator.settings.onsubmit) { 1754 this.on("click.validate", ":submit", function (event) { 1755 // Track the used submit button to properly handle scripted 1756 // submits later. 1757 validator.submitButton = event.currentTarget; 1758 1759 // Allow suppressing validation by adding a cancel class to the submit button 1760 if ($(this).hasClass("cancel")) { 1761 validator.cancelSubmit = true; 1762 } 1763 1764 // Allow suppressing validation by adding the html5 formnovalidate attribute to the submit button 1765 if ($(this).attr("formnovalidate") !== undefined) { 1766 validator.cancelSubmit = true; 1767 } 1768 }); 1769 1770 // Validate the form on submit 1771 this.on("submit.validate", function (event) { 1772 if (validator.settings.debug) { 1773 // Prevent form submit to be able to see console output 1774 event.preventDefault(); 1775 } 1776 function handle() { 1777 var hidden, result; 1778 1779 // Insert a hidden input as a replacement for the missing submit button 1780 // The hidden input is inserted in two cases: 1781 // - A user defined a `submitHandler` 1782 // - There was a pending request due to `remote` method and `stopRequest()` 1783 // was called to submit the form in case it's valid 1784 if (validator.submitButton && (validator.settings.submitHandler || validator.formSubmitted)) { 1785 hidden = $("<input type='hidden'/>").attr("name", validator.submitButton.name).val($(validator.submitButton).val()).appendTo(validator.currentForm); 1786 } 1787 if (validator.settings.submitHandler && !validator.settings.debug) { 1788 result = validator.settings.submitHandler.call(validator, validator.currentForm, event); 1789 if (hidden) { 1790 // And clean up afterwards; thanks to no-block-scope, hidden can be referenced 1791 hidden.remove(); 1792 } 1793 if (result !== undefined) { 1794 return result; 1795 } 1796 return false; 1797 } 1798 return true; 1799 } 1800 1801 // Prevent submit for invalid forms or custom submit handlers 1802 if (validator.cancelSubmit) { 1803 validator.cancelSubmit = false; 1804 return handle(); 1805 } 1806 if (validator.form()) { 1807 if (validator.pendingRequest) { 1808 validator.formSubmitted = true; 1809 return false; 1810 } 1811 return handle(); 1812 } else { 1813 validator.focusInvalid(); 1814 return false; 1815 } 1816 }); 1817 } 1818 return validator; 1819 }, 1820 // https://jqueryvalidation.org/valid/ 1821 valid: function valid() { 1822 var valid, validator, errorList; 1823 if ($(this[0]).is("form")) { 1824 valid = this.validate().form(); 1825 } else { 1826 errorList = []; 1827 valid = true; 1828 validator = $(this[0].form).validate(); 1829 this.each(function () { 1830 valid = validator.element(this) && valid; 1831 if (!valid) { 1832 errorList = errorList.concat(validator.errorList); 1833 } 1834 }); 1835 validator.errorList = errorList; 1836 } 1837 return valid; 1838 }, 1839 // https://jqueryvalidation.org/rules/ 1840 rules: function rules(command, argument) { 1841 var element = this[0], 1842 isContentEditable = typeof this.attr("contenteditable") !== "undefined" && this.attr("contenteditable") !== "false", 1843 settings, 1844 staticRules, 1845 existingRules, 1846 data, 1847 param, 1848 filtered; 1849 1850 // If nothing is selected, return empty object; can't chain anyway 1851 if (element == null) { 1852 return; 1853 } 1854 if (!element.form && isContentEditable) { 1855 element.form = this.closest("form")[0]; 1856 element.name = this.attr("name"); 1857 } 1858 if (element.form == null) { 1859 return; 1860 } 1861 if (command) { 1862 settings = $.data(element.form, "validator").settings; 1863 staticRules = settings.rules; 1864 existingRules = $.validator.staticRules(element); 1865 switch (command) { 1866 case "add": 1867 $.extend(existingRules, $.validator.normalizeRule(argument)); 1868 1869 // Remove messages from rules, but allow them to be set separately 1870 delete existingRules.messages; 1871 staticRules[element.name] = existingRules; 1872 if (argument.messages) { 1873 settings.messages[element.name] = $.extend(settings.messages[element.name], argument.messages); 1874 } 1875 break; 1876 case "remove": 1877 if (!argument) { 1878 delete staticRules[element.name]; 1879 return existingRules; 1880 } 1881 filtered = {}; 1882 $.each(argument.split(/\s/), function (index, method) { 1883 filtered[method] = existingRules[method]; 1884 delete existingRules[method]; 1885 }); 1886 return filtered; 1887 } 1888 } 1889 data = $.validator.normalizeRules($.extend({}, $.validator.classRules(element), $.validator.attributeRules(element), $.validator.dataRules(element), $.validator.staticRules(element)), element); 1890 1891 // Make sure required is at front 1892 if (data.required) { 1893 param = data.required; 1894 delete data.required; 1895 data = $.extend({ 1896 required: param 1897 }, data); 1898 } 1899 1900 // Make sure remote is at back 1901 if (data.remote) { 1902 param = data.remote; 1903 delete data.remote; 1904 data = $.extend(data, { 1905 remote: param 1906 }); 1907 } 1908 return data; 1909 } 1910 }); 1911 1912 // JQuery trim is deprecated, provide a trim method based on String.prototype.trim 1913 var trim = function trim(str) { 1914 // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/trim#Polyfill 1915 return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ""); 1916 }; 1917 1918 // Custom selectors 1919 $.extend($.expr.pseudos || $.expr[":"], { 1920 // '|| $.expr[ ":" ]' here enables backwards compatibility to jQuery 1.7. Can be removed when dropping jQ 1.7.x support 1921 1922 // https://jqueryvalidation.org/blank-selector/ 1923 blank: function blank(a) { 1924 return !trim("" + $(a).val()); 1925 }, 1926 // https://jqueryvalidation.org/filled-selector/ 1927 filled: function filled(a) { 1928 var val = $(a).val(); 1929 return val !== null && !!trim("" + val); 1930 }, 1931 // https://jqueryvalidation.org/unchecked-selector/ 1932 unchecked: function unchecked(a) { 1933 return !$(a).prop("checked"); 1934 } 1935 }); 1936 1937 // Constructor for validator 1938 $.validator = function (options, form) { 1939 this.settings = $.extend(true, {}, $.validator.defaults, options); 1940 this.currentForm = form; 1941 this.init(); 1942 }; 1943 1944 // https://jqueryvalidation.org/jQuery.validator.format/ 1945 $.validator.format = function (source, params) { 1946 if (arguments.length === 1) { 1947 return function () { 1948 var args = $.makeArray(arguments); 1949 args.unshift(source); 1950 return $.validator.format.apply(this, args); 1951 }; 1952 } 1953 if (params === undefined) { 1954 return source; 1955 } 1956 if (arguments.length > 2 && params.constructor !== Array) { 1957 params = $.makeArray(arguments).slice(1); 1958 } 1959 if (params.constructor !== Array) { 1960 params = [params]; 1961 } 1962 $.each(params, function (i, n) { 1963 source = source.replace(new RegExp("\\{" + i + "\\}", "g"), function () { 1964 return n; 1965 }); 1966 }); 1967 return source; 1968 }; 1969 $.extend($.validator, { 1970 defaults: { 1971 messages: {}, 1972 groups: {}, 1973 rules: {}, 1974 errorClass: "error", 1975 pendingClass: "pending", 1976 validClass: "valid", 1977 errorElement: "label", 1978 focusCleanup: false, 1979 focusInvalid: true, 1980 errorContainer: $([]), 1981 errorLabelContainer: $([]), 1982 onsubmit: true, 1983 ignore: ":hidden", 1984 ignoreTitle: false, 1985 customElements: [], 1986 onfocusin: function onfocusin(element) { 1987 this.lastActive = element; 1988 1989 // Hide error label and remove error class on focus if enabled 1990 if (this.settings.focusCleanup) { 1991 if (this.settings.unhighlight) { 1992 this.settings.unhighlight.call(this, element, this.settings.errorClass, this.settings.validClass); 1993 } 1994 this.hideThese(this.errorsFor(element)); 1995 } 1996 }, 1997 onfocusout: function onfocusout(element) { 1998 if (!this.checkable(element) && (element.name in this.submitted || !this.optional(element))) { 1999 this.element(element); 2000 } 2001 }, 2002 onkeyup: function onkeyup(element, event) { 2003 // Avoid revalidate the field when pressing one of the following keys 2004 // Shift => 16 2005 // Ctrl => 17 2006 // Alt => 18 2007 // Caps lock => 20 2008 // End => 35 2009 // Home => 36 2010 // Left arrow => 37 2011 // Up arrow => 38 2012 // Right arrow => 39 2013 // Down arrow => 40 2014 // Insert => 45 2015 // Num lock => 144 2016 // AltGr key => 225 2017 var excludedKeys = [16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225]; 2018 if (event.which === 9 && this.elementValue(element) === "" || $.inArray(event.keyCode, excludedKeys) !== -1) { 2019 return; 2020 } else if (element.name in this.submitted || element.name in this.invalid) { 2021 this.element(element); 2022 } 2023 }, 2024 onclick: function onclick(element) { 2025 // Click on selects, radiobuttons and checkboxes 2026 if (element.name in this.submitted) { 2027 this.element(element); 2028 2029 // Or option elements, check parent select in that case 2030 } else if (element.parentNode.name in this.submitted) { 2031 this.element(element.parentNode); 2032 } 2033 }, 2034 highlight: function highlight(element, errorClass, validClass) { 2035 if (element.type === "radio") { 2036 this.findByName(element.name).addClass(errorClass).removeClass(validClass); 2037 } else { 2038 $(element).addClass(errorClass).removeClass(validClass); 2039 } 2040 }, 2041 unhighlight: function unhighlight(element, errorClass, validClass) { 2042 if (element.type === "radio") { 2043 this.findByName(element.name).removeClass(errorClass).addClass(validClass); 2044 } else { 2045 $(element).removeClass(errorClass).addClass(validClass); 2046 } 2047 } 2048 }, 2049 // https://jqueryvalidation.org/jQuery.validator.setDefaults/ 2050 setDefaults: function setDefaults(settings) { 2051 $.extend($.validator.defaults, settings); 2052 }, 2053 messages: { 2054 required: "This field is required.", 2055 remote: "Please fix this field.", 2056 email: "Please enter a valid email address.", 2057 url: "Please enter a valid URL.", 2058 date: "Please enter a valid date.", 2059 dateISO: "Please enter a valid date (ISO).", 2060 number: "Please enter a valid number.", 2061 digits: "Please enter only digits.", 2062 equalTo: "Please enter the same value again.", 2063 maxlength: $.validator.format("Please enter no more than {0} characters."), 2064 minlength: $.validator.format("Please enter at least {0} characters."), 2065 rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."), 2066 range: $.validator.format("Please enter a value between {0} and {1}."), 2067 max: $.validator.format("Please enter a value less than or equal to {0}."), 2068 min: $.validator.format("Please enter a value greater than or equal to {0}."), 2069 step: $.validator.format("Please enter a multiple of {0}.") 2070 }, 2071 autoCreateRanges: false, 2072 prototype: { 2073 init: function init() { 2074 this.labelContainer = $(this.settings.errorLabelContainer); 2075 this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm); 2076 this.containers = $(this.settings.errorContainer).add(this.settings.errorLabelContainer); 2077 this.submitted = {}; 2078 this.valueCache = {}; 2079 this.pendingRequest = 0; 2080 this.pending = {}; 2081 this.invalid = {}; 2082 this.reset(); 2083 var currentForm = this.currentForm, 2084 groups = this.groups = {}, 2085 rules; 2086 $.each(this.settings.groups, function (key, value) { 2087 if (typeof value === "string") { 2088 value = value.split(/\s/); 2089 } 2090 $.each(value, function (index, name) { 2091 groups[name] = key; 2092 }); 2093 }); 2094 rules = this.settings.rules; 2095 $.each(rules, function (key, value) { 2096 rules[key] = $.validator.normalizeRule(value); 2097 }); 2098 function delegate(event) { 2099 var isContentEditable = typeof $(this).attr("contenteditable") !== "undefined" && $(this).attr("contenteditable") !== "false"; 2100 2101 // Set form expando on contenteditable 2102 if (!this.form && isContentEditable) { 2103 this.form = $(this).closest("form")[0]; 2104 this.name = $(this).attr("name"); 2105 } 2106 2107 // Ignore the element if it belongs to another form. This will happen mainly 2108 // when setting the `form` attribute of an input to the id of another form. 2109 if (currentForm !== this.form) { 2110 return; 2111 } 2112 var validator = $.data(this.form, "validator"), 2113 eventType = "on" + event.type.replace(/^validate/, ""), 2114 settings = validator.settings; 2115 if (settings[eventType] && !$(this).is(settings.ignore)) { 2116 settings[eventType].call(validator, this, event); 2117 } 2118 } 2119 var focusListeners = [":text", "[type='password']", "[type='file']", "select", "textarea", "[type='number']", "[type='search']", "[type='tel']", "[type='url']", "[type='email']", "[type='datetime']", "[type='date']", "[type='month']", "[type='week']", "[type='time']", "[type='datetime-local']", "[type='range']", "[type='color']", "[type='radio']", "[type='checkbox']", "[contenteditable]", "[type='button']"]; 2120 var clickListeners = ["select", "option", "[type='radio']", "[type='checkbox']"]; 2121 $(this.currentForm).on("focusin.validate focusout.validate keyup.validate", focusListeners.concat(this.settings.customElements).join(", "), delegate) 2122 2123 // Support: Chrome, oldIE 2124 // "select" is provided as event.target when clicking a option 2125 .on("click.validate", clickListeners.concat(this.settings.customElements).join(", "), delegate); 2126 if (this.settings.invalidHandler) { 2127 $(this.currentForm).on("invalid-form.validate", this.settings.invalidHandler); 2128 } 2129 }, 2130 // https://jqueryvalidation.org/Validator.form/ 2131 form: function form() { 2132 this.checkForm(); 2133 $.extend(this.submitted, this.errorMap); 2134 this.invalid = $.extend({}, this.errorMap); 2135 if (!this.valid()) { 2136 $(this.currentForm).triggerHandler("invalid-form", [this]); 2137 } 2138 this.showErrors(); 2139 return this.valid(); 2140 }, 2141 checkForm: function checkForm() { 2142 this.prepareForm(); 2143 for (var i = 0, elements = this.currentElements = this.elements(); elements[i]; i++) { 2144 this.check(elements[i]); 2145 } 2146 return this.valid(); 2147 }, 2148 // https://jqueryvalidation.org/Validator.element/ 2149 element: function element(_element) { 2150 var cleanElement = this.clean(_element), 2151 checkElement = this.validationTargetFor(cleanElement), 2152 v = this, 2153 result = true, 2154 rs, 2155 group; 2156 if (checkElement === undefined) { 2157 delete this.invalid[cleanElement.name]; 2158 } else { 2159 this.prepareElement(checkElement); 2160 this.currentElements = $(checkElement); 2161 2162 // If this element is grouped, then validate all group elements already 2163 // containing a value 2164 group = this.groups[checkElement.name]; 2165 if (group) { 2166 $.each(this.groups, function (name, testgroup) { 2167 if (testgroup === group && name !== checkElement.name) { 2168 cleanElement = v.validationTargetFor(v.clean(v.findByName(name))); 2169 if (cleanElement && cleanElement.name in v.invalid) { 2170 v.currentElements.push(cleanElement); 2171 result = v.check(cleanElement) && result; 2172 } 2173 } 2174 }); 2175 } 2176 rs = this.check(checkElement) !== false; 2177 result = result && rs; 2178 if (rs) { 2179 this.invalid[checkElement.name] = false; 2180 } else { 2181 this.invalid[checkElement.name] = true; 2182 } 2183 if (!this.numberOfInvalids()) { 2184 // Hide error containers on last error 2185 this.toHide = this.toHide.add(this.containers); 2186 } 2187 this.showErrors(); 2188 2189 // Add aria-invalid status for screen readers 2190 $(_element).attr("aria-invalid", !rs); 2191 } 2192 return result; 2193 }, 2194 // https://jqueryvalidation.org/Validator.showErrors/ 2195 showErrors: function showErrors(errors) { 2196 if (errors) { 2197 var validator = this; 2198 2199 // Add items to error list and map 2200 $.extend(this.errorMap, errors); 2201 this.errorList = $.map(this.errorMap, function (message, name) { 2202 return { 2203 message: message, 2204 element: validator.findByName(name)[0] 2205 }; 2206 }); 2207 2208 // Remove items from success list 2209 this.successList = $.grep(this.successList, function (element) { 2210 return !(element.name in errors); 2211 }); 2212 } 2213 if (this.settings.showErrors) { 2214 this.settings.showErrors.call(this, this.errorMap, this.errorList); 2215 } else { 2216 this.defaultShowErrors(); 2217 } 2218 }, 2219 // https://jqueryvalidation.org/Validator.resetForm/ 2220 resetForm: function resetForm() { 2221 if ($.fn.resetForm) { 2222 $(this.currentForm).resetForm(); 2223 } 2224 this.invalid = {}; 2225 this.submitted = {}; 2226 this.prepareForm(); 2227 this.hideErrors(); 2228 var elements = this.elements().removeData("previousValue").removeAttr("aria-invalid"); 2229 this.resetElements(elements); 2230 }, 2231 resetElements: function resetElements(elements) { 2232 var i; 2233 if (this.settings.unhighlight) { 2234 for (i = 0; elements[i]; i++) { 2235 this.settings.unhighlight.call(this, elements[i], this.settings.errorClass, ""); 2236 this.findByName(elements[i].name).removeClass(this.settings.validClass); 2237 } 2238 } else { 2239 elements.removeClass(this.settings.errorClass).removeClass(this.settings.validClass); 2240 } 2241 }, 2242 numberOfInvalids: function numberOfInvalids() { 2243 return this.objectLength(this.invalid); 2244 }, 2245 objectLength: function objectLength(obj) { 2246 /* jshint unused: false */ 2247 var count = 0, 2248 i; 2249 for (i in obj) { 2250 // This check allows counting elements with empty error 2251 // message as invalid elements 2252 if (obj[i] !== undefined && obj[i] !== null && obj[i] !== false) { 2253 count++; 2254 } 2255 } 2256 return count; 2257 }, 2258 hideErrors: function hideErrors() { 2259 this.hideThese(this.toHide); 2260 }, 2261 hideThese: function hideThese(errors) { 2262 errors.not(this.containers).text(""); 2263 this.addWrapper(errors).hide(); 2264 }, 2265 valid: function valid() { 2266 return this.size() === 0; 2267 }, 2268 size: function size() { 2269 return this.errorList.length; 2270 }, 2271 focusInvalid: function focusInvalid() { 2272 if (this.settings.focusInvalid) { 2273 try { 2274 $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").trigger("focus") 2275 2276 // Manually trigger focusin event; without it, focusin handler isn't called, findLastActive won't have anything to find 2277 .trigger("focusin"); 2278 } catch (e) { 2279 2280 // Ignore IE throwing errors when focusing hidden elements 2281 } 2282 } 2283 }, 2284 findLastActive: function findLastActive() { 2285 var lastActive = this.lastActive; 2286 return lastActive && $.grep(this.errorList, function (n) { 2287 return n.element.name === lastActive.name; 2288 }).length === 1 && lastActive; 2289 }, 2290 elements: function elements() { 2291 var validator = this, 2292 rulesCache = {}, 2293 selectors = ["input", "select", "textarea", "[contenteditable]"]; 2294 2295 // Select all valid inputs inside the form (no submit or reset buttons) 2296 return $(this.currentForm).find(selectors.concat(this.settings.customElements).join(", ")).not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function () { 2297 var name = this.name || $(this).attr("name"); // For contenteditable 2298 var isContentEditable = typeof $(this).attr("contenteditable") !== "undefined" && $(this).attr("contenteditable") !== "false"; 2299 if (!name && validator.settings.debug && window.console) { 2300 console.error("%o has no name assigned", this); 2301 } 2302 2303 // Set form expando on contenteditable 2304 if (isContentEditable) { 2305 this.form = $(this).closest("form")[0]; 2306 this.name = name; 2307 } 2308 2309 // Ignore elements that belong to other/nested forms 2310 if (this.form !== validator.currentForm) { 2311 return false; 2312 } 2313 2314 // Select only the first element for each name, and only those with rules specified 2315 if (name in rulesCache || !validator.objectLength($(this).rules())) { 2316 return false; 2317 } 2318 rulesCache[name] = true; 2319 return true; 2320 }); 2321 }, 2322 clean: function clean(selector) { 2323 return $(selector)[0]; 2324 }, 2325 errors: function errors() { 2326 var errorClass = this.settings.errorClass.split(" ").join("."); 2327 return $(this.settings.errorElement + "." + errorClass, this.errorContext); 2328 }, 2329 resetInternals: function resetInternals() { 2330 this.successList = []; 2331 this.errorList = []; 2332 this.errorMap = {}; 2333 this.toShow = $([]); 2334 this.toHide = $([]); 2335 }, 2336 reset: function reset() { 2337 this.resetInternals(); 2338 this.currentElements = $([]); 2339 }, 2340 prepareForm: function prepareForm() { 2341 this.reset(); 2342 this.toHide = this.errors().add(this.containers); 2343 }, 2344 prepareElement: function prepareElement(element) { 2345 this.reset(); 2346 this.toHide = this.errorsFor(element); 2347 }, 2348 elementValue: function elementValue(element) { 2349 var $element = $(element), 2350 type = element.type, 2351 isContentEditable = typeof $element.attr("contenteditable") !== "undefined" && $element.attr("contenteditable") !== "false", 2352 val, 2353 idx; 2354 if (type === "radio" || type === "checkbox") { 2355 return this.findByName(element.name).filter(":checked").val(); 2356 } else if (type === "number" && typeof element.validity !== "undefined") { 2357 return element.validity.badInput ? "NaN" : $element.val(); 2358 } 2359 if (isContentEditable) { 2360 val = $element.text(); 2361 } else { 2362 val = $element.val(); 2363 } 2364 if (type === "file") { 2365 // Modern browser (chrome & safari) 2366 if (val.substr(0, 12) === "C:\\fakepath\\") { 2367 return val.substr(12); 2368 } 2369 2370 // Legacy browsers 2371 // Unix-based path 2372 idx = val.lastIndexOf("/"); 2373 if (idx >= 0) { 2374 return val.substr(idx + 1); 2375 } 2376 2377 // Windows-based path 2378 idx = val.lastIndexOf("\\"); 2379 if (idx >= 0) { 2380 return val.substr(idx + 1); 2381 } 2382 2383 // Just the file name 2384 return val; 2385 } 2386 if (typeof val === "string") { 2387 return val.replace(/\r/g, ""); 2388 } 2389 return val; 2390 }, 2391 check: function check(element) { 2392 element = this.validationTargetFor(this.clean(element)); 2393 var rules = $(element).rules(), 2394 rulesCount = $.map(rules, function (n, i) { 2395 return i; 2396 }).length, 2397 dependencyMismatch = false, 2398 val = this.elementValue(element), 2399 result, 2400 method, 2401 rule, 2402 normalizer; 2403 2404 // Abort any pending Ajax request from a previous call to this method. 2405 this.abortRequest(element); 2406 2407 // Prioritize the local normalizer defined for this element over the global one 2408 // if the former exists, otherwise user the global one in case it exists. 2409 if (typeof rules.normalizer === "function") { 2410 normalizer = rules.normalizer; 2411 } else if (typeof this.settings.normalizer === "function") { 2412 normalizer = this.settings.normalizer; 2413 } 2414 2415 // If normalizer is defined, then call it to retreive the changed value instead 2416 // of using the real one. 2417 // Note that `this` in the normalizer is `element`. 2418 if (normalizer) { 2419 val = normalizer.call(element, val); 2420 2421 // Delete the normalizer from rules to avoid treating it as a pre-defined method. 2422 delete rules.normalizer; 2423 } 2424 for (method in rules) { 2425 rule = { 2426 method: method, 2427 parameters: rules[method] 2428 }; 2429 try { 2430 result = $.validator.methods[method].call(this, val, element, rule.parameters); 2431 2432 // If a method indicates that the field is optional and therefore valid, 2433 // don't mark it as valid when there are no other rules 2434 if (result === "dependency-mismatch" && rulesCount === 1) { 2435 dependencyMismatch = true; 2436 continue; 2437 } 2438 dependencyMismatch = false; 2439 if (result === "pending") { 2440 this.toHide = this.toHide.not(this.errorsFor(element)); 2441 return; 2442 } 2443 if (!result) { 2444 this.formatAndAdd(element, rule); 2445 return false; 2446 } 2447 } catch (e) { 2448 if (this.settings.debug && window.console) { 2449 console.log("Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method.", e); 2450 } 2451 if (e instanceof TypeError) { 2452 e.message += ". Exception occurred when checking element " + element.id + ", check the '" + rule.method + "' method."; 2453 } 2454 throw e; 2455 } 2456 } 2457 if (dependencyMismatch) { 2458 return; 2459 } 2460 if (this.objectLength(rules)) { 2461 this.successList.push(element); 2462 } 2463 return true; 2464 }, 2465 // Return the custom message for the given element and validation method 2466 // specified in the element's HTML5 data attribute 2467 // return the generic message if present and no method specific message is present 2468 customDataMessage: function customDataMessage(element, method) { 2469 return $(element).data("msg" + method.charAt(0).toUpperCase() + method.substring(1).toLowerCase()) || $(element).data("msg"); 2470 }, 2471 // Return the custom message for the given element name and validation method 2472 customMessage: function customMessage(name, method) { 2473 var m = this.settings.messages[name]; 2474 return m && (m.constructor === String ? m : m[method]); 2475 }, 2476 // Return the first defined argument, allowing empty strings 2477 findDefined: function findDefined() { 2478 for (var i = 0; i < arguments.length; i++) { 2479 if (arguments[i] !== undefined) { 2480 return arguments[i]; 2481 } 2482 } 2483 return undefined; 2484 }, 2485 // The second parameter 'rule' used to be a string, and extended to an object literal 2486 // of the following form: 2487 // rule = { 2488 // method: "method name", 2489 // parameters: "the given method parameters" 2490 // } 2491 // 2492 // The old behavior still supported, kept to maintain backward compatibility with 2493 // old code, and will be removed in the next major release. 2494 defaultMessage: function defaultMessage(element, rule) { 2495 if (typeof rule === "string") { 2496 rule = { 2497 method: rule 2498 }; 2499 } 2500 var message = this.findDefined(this.customMessage(element.name, rule.method), this.customDataMessage(element, rule.method), 2501 // 'title' is never undefined, so handle empty string as undefined 2502 !this.settings.ignoreTitle && element.title || undefined, $.validator.messages[rule.method], "<strong>Warning: No message defined for " + element.name + "</strong>"), 2503 theregex = /\$?\{(\d+)\}/g; 2504 if (typeof message === "function") { 2505 message = message.call(this, rule.parameters, element); 2506 } else if (theregex.test(message)) { 2507 message = $.validator.format(message.replace(theregex, "{$1}"), rule.parameters); 2508 } 2509 return message; 2510 }, 2511 formatAndAdd: function formatAndAdd(element, rule) { 2512 var message = this.defaultMessage(element, rule); 2513 this.errorList.push({ 2514 message: message, 2515 element: element, 2516 method: rule.method 2517 }); 2518 this.errorMap[element.name] = message; 2519 this.submitted[element.name] = message; 2520 }, 2521 addWrapper: function addWrapper(toToggle) { 2522 if (this.settings.wrapper) { 2523 toToggle = toToggle.add(toToggle.parent(this.settings.wrapper)); 2524 } 2525 return toToggle; 2526 }, 2527 defaultShowErrors: function defaultShowErrors() { 2528 var i, elements, error; 2529 for (i = 0; this.errorList[i]; i++) { 2530 error = this.errorList[i]; 2531 if (this.settings.highlight) { 2532 this.settings.highlight.call(this, error.element, this.settings.errorClass, this.settings.validClass); 2533 } 2534 this.showLabel(error.element, error.message); 2535 } 2536 if (this.errorList.length) { 2537 this.toShow = this.toShow.add(this.containers); 2538 } 2539 if (this.settings.success) { 2540 for (i = 0; this.successList[i]; i++) { 2541 this.showLabel(this.successList[i]); 2542 } 2543 } 2544 if (this.settings.unhighlight) { 2545 for (i = 0, elements = this.validElements(); elements[i]; i++) { 2546 this.settings.unhighlight.call(this, elements[i], this.settings.errorClass, this.settings.validClass); 2547 } 2548 } 2549 this.toHide = this.toHide.not(this.toShow); 2550 this.hideErrors(); 2551 this.addWrapper(this.toShow).show(); 2552 }, 2553 validElements: function validElements() { 2554 return this.currentElements.not(this.invalidElements()); 2555 }, 2556 invalidElements: function invalidElements() { 2557 return $(this.errorList).map(function () { 2558 return this.element; 2559 }); 2560 }, 2561 showLabel: function showLabel(element, message) { 2562 var place, 2563 group, 2564 errorID, 2565 v, 2566 error = this.errorsFor(element), 2567 elementID = this.idOrName(element), 2568 describedBy = $(element).attr("aria-describedby"); 2569 if (error.length) { 2570 // Refresh error/success class 2571 error.removeClass(this.settings.validClass).addClass(this.settings.errorClass); 2572 2573 // Replace message on existing label 2574 if (this.settings && this.settings.escapeHtml) { 2575 error.text(message || ""); 2576 } else { 2577 error.html(message || ""); 2578 } 2579 } else { 2580 // Create error element 2581 error = $("<" + this.settings.errorElement + ">").attr("id", elementID + "-error").addClass(this.settings.errorClass); 2582 if (this.settings && this.settings.escapeHtml) { 2583 error.text(message || ""); 2584 } else { 2585 error.html(message || ""); 2586 } 2587 2588 // Maintain reference to the element to be placed into the DOM 2589 place = error; 2590 if (this.settings.wrapper) { 2591 // Make sure the element is visible, even in IE 2592 // actually showing the wrapped element is handled elsewhere 2593 place = error.hide().show().wrap("<" + this.settings.wrapper + "/>").parent(); 2594 } 2595 if (this.labelContainer.length) { 2596 this.labelContainer.append(place); 2597 } else if (this.settings.errorPlacement) { 2598 this.settings.errorPlacement.call(this, place, $(element)); 2599 } else { 2600 place.insertAfter(element); 2601 } 2602 2603 // Link error back to the element 2604 if (error.is("label")) { 2605 // If the error is a label, then associate using 'for' 2606 error.attr("for", elementID); 2607 2608 // If the element is not a child of an associated label, then it's necessary 2609 // to explicitly apply aria-describedby 2610 } else if (error.parents("label[for='" + this.escapeCssMeta(elementID) + "']").length === 0) { 2611 errorID = error.attr("id"); 2612 2613 // Respect existing non-error aria-describedby 2614 if (!describedBy) { 2615 describedBy = errorID; 2616 } else if (!describedBy.match(new RegExp("\\b" + this.escapeCssMeta(errorID) + "\\b"))) { 2617 // Add to end of list if not already present 2618 describedBy += " " + errorID; 2619 } 2620 $(element).attr("aria-describedby", describedBy); 2621 2622 // If this element is grouped, then assign to all elements in the same group 2623 group = this.groups[element.name]; 2624 if (group) { 2625 v = this; 2626 $.each(v.groups, function (name, testgroup) { 2627 if (testgroup === group) { 2628 $("[name='" + v.escapeCssMeta(name) + "']", v.currentForm).attr("aria-describedby", error.attr("id")); 2629 } 2630 }); 2631 } 2632 } 2633 } 2634 if (!message && this.settings.success) { 2635 error.text(""); 2636 if (typeof this.settings.success === "string") { 2637 error.addClass(this.settings.success); 2638 } else { 2639 this.settings.success(error, element); 2640 } 2641 } 2642 this.toShow = this.toShow.add(error); 2643 }, 2644 errorsFor: function errorsFor(element) { 2645 var name = this.escapeCssMeta(this.idOrName(element)), 2646 describer = $(element).attr("aria-describedby"), 2647 selector = "label[for='" + name + "'], label[for='" + name + "'] *"; 2648 2649 // 'aria-describedby' should directly reference the error element 2650 if (describer) { 2651 selector = selector + ", #" + this.escapeCssMeta(describer).replace(/\s+/g, ", #"); 2652 } 2653 return this.errors().filter(selector); 2654 }, 2655 // See https://api.jquery.com/category/selectors/, for CSS 2656 // meta-characters that should be escaped in order to be used with JQuery 2657 // as a literal part of a name/id or any selector. 2658 escapeCssMeta: function escapeCssMeta(string) { 2659 if (string === undefined) { 2660 return ""; 2661 } 2662 return string.replace(/([\\!"#$%&'()*+,./:;<=>?@\[\]^`{|}~])/g, "\\$1"); 2663 }, 2664 idOrName: function idOrName(element) { 2665 return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name); 2666 }, 2667 validationTargetFor: function validationTargetFor(element) { 2668 // If radio/checkbox, validate first element in group instead 2669 if (this.checkable(element)) { 2670 element = this.findByName(element.name); 2671 } 2672 2673 // Always apply ignore filter 2674 return $(element).not(this.settings.ignore)[0]; 2675 }, 2676 checkable: function checkable(element) { 2677 return /radio|checkbox/i.test(element.type); 2678 }, 2679 findByName: function findByName(name) { 2680 return $(this.currentForm).find("[name='" + this.escapeCssMeta(name) + "']"); 2681 }, 2682 getLength: function getLength(value, element) { 2683 switch (element.nodeName.toLowerCase()) { 2684 case "select": 2685 return $("option:selected", element).length; 2686 case "input": 2687 if (this.checkable(element)) { 2688 return this.findByName(element.name).filter(":checked").length; 2689 } 2690 } 2691 return value.length; 2692 }, 2693 depend: function depend(param, element) { 2694 return this.dependTypes[_typeof(param)] ? this.dependTypes[_typeof(param)](param, element) : true; 2695 }, 2696 dependTypes: { 2697 "boolean": function boolean(param) { 2698 return param; 2699 }, 2700 "string": function string(param, element) { 2701 return !!$(param, element.form).length; 2702 }, 2703 "function": function _function(param, element) { 2704 return param(element); 2705 } 2706 }, 2707 optional: function optional(element) { 2708 var val = this.elementValue(element); 2709 return !$.validator.methods.required.call(this, val, element) && "dependency-mismatch"; 2710 }, 2711 elementAjaxPort: function elementAjaxPort(element) { 2712 return "validate" + element.name; 2713 }, 2714 startRequest: function startRequest(element) { 2715 if (!this.pending[element.name]) { 2716 this.pendingRequest++; 2717 $(element).addClass(this.settings.pendingClass); 2718 this.pending[element.name] = true; 2719 } 2720 }, 2721 stopRequest: function stopRequest(element, valid) { 2722 this.pendingRequest--; 2723 2724 // Sometimes synchronization fails, make sure pendingRequest is never < 0 2725 if (this.pendingRequest < 0) { 2726 this.pendingRequest = 0; 2727 } 2728 delete this.pending[element.name]; 2729 $(element).removeClass(this.settings.pendingClass); 2730 if (valid && this.pendingRequest === 0 && this.formSubmitted && this.form() && this.pendingRequest === 0) { 2731 $(this.currentForm).trigger("submit"); 2732 2733 // Remove the hidden input that was used as a replacement for the 2734 // missing submit button. The hidden input is added by `handle()` 2735 // to ensure that the value of the used submit button is passed on 2736 // for scripted submits triggered by this method 2737 if (this.submitButton) { 2738 $("input:hidden[name='" + this.submitButton.name + "']", this.currentForm).remove(); 2739 } 2740 this.formSubmitted = false; 2741 } else if (!valid && this.pendingRequest === 0 && this.formSubmitted) { 2742 $(this.currentForm).triggerHandler("invalid-form", [this]); 2743 this.formSubmitted = false; 2744 } 2745 }, 2746 abortRequest: function abortRequest(element) { 2747 var port; 2748 if (this.pending[element.name]) { 2749 port = this.elementAjaxPort(element); 2750 $.ajaxAbort(port); 2751 this.pendingRequest--; 2752 2753 // Sometimes synchronization fails, make sure pendingRequest is never < 0 2754 if (this.pendingRequest < 0) { 2755 this.pendingRequest = 0; 2756 } 2757 delete this.pending[element.name]; 2758 $(element).removeClass(this.settings.pendingClass); 2759 } 2760 }, 2761 previousValue: function previousValue(element, method) { 2762 method = typeof method === "string" && method || "remote"; 2763 return $.data(element, "previousValue") || $.data(element, "previousValue", { 2764 old: null, 2765 valid: true, 2766 message: this.defaultMessage(element, { 2767 method: method 2768 }) 2769 }); 2770 }, 2771 // Cleans up all forms and elements, removes validator-specific events 2772 destroy: function destroy() { 2773 this.resetForm(); 2774 $(this.currentForm).off(".validate").removeData("validator").find(".validate-equalTo-blur").off(".validate-equalTo").removeClass("validate-equalTo-blur").find(".validate-lessThan-blur").off(".validate-lessThan").removeClass("validate-lessThan-blur").find(".validate-lessThanEqual-blur").off(".validate-lessThanEqual").removeClass("validate-lessThanEqual-blur").find(".validate-greaterThanEqual-blur").off(".validate-greaterThanEqual").removeClass("validate-greaterThanEqual-blur").find(".validate-greaterThan-blur").off(".validate-greaterThan").removeClass("validate-greaterThan-blur"); 2775 } 2776 }, 2777 classRuleSettings: { 2778 required: { 2779 required: true 2780 }, 2781 email: { 2782 email: true 2783 }, 2784 url: { 2785 url: true 2786 }, 2787 date: { 2788 date: true 2789 }, 2790 dateISO: { 2791 dateISO: true 2792 }, 2793 number: { 2794 number: true 2795 }, 2796 digits: { 2797 digits: true 2798 }, 2799 creditcard: { 2800 creditcard: true 2801 } 2802 }, 2803 addClassRules: function addClassRules(className, rules) { 2804 if (className.constructor === String) { 2805 this.classRuleSettings[className] = rules; 2806 } else { 2807 $.extend(this.classRuleSettings, className); 2808 } 2809 }, 2810 classRules: function classRules(element) { 2811 var rules = {}, 2812 classes = $(element).attr("class"); 2813 if (classes) { 2814 $.each(classes.split(" "), function () { 2815 if (this in $.validator.classRuleSettings) { 2816 $.extend(rules, $.validator.classRuleSettings[this]); 2817 } 2818 }); 2819 } 2820 return rules; 2821 }, 2822 normalizeAttributeRule: function normalizeAttributeRule(rules, type, method, value) { 2823 // Convert the value to a number for number inputs, and for text for backwards compability 2824 // allows type="date" and others to be compared as strings 2825 if (/min|max|step/.test(method) && (type === null || /number|range|text/.test(type))) { 2826 value = Number(value); 2827 2828 // Support Opera Mini, which returns NaN for undefined minlength 2829 if (isNaN(value)) { 2830 value = undefined; 2831 } 2832 } 2833 if (value || value === 0) { 2834 rules[method] = value; 2835 } else if (type === method && type !== "range") { 2836 // Exception: the jquery validate 'range' method 2837 // does not test for the html5 'range' type 2838 rules[type === "date" ? "dateISO" : method] = true; 2839 } 2840 }, 2841 attributeRules: function attributeRules(element) { 2842 var rules = {}, 2843 $element = $(element), 2844 type = element.getAttribute("type"), 2845 method, 2846 value; 2847 for (method in $.validator.methods) { 2848 // Support for <input required> in both html5 and older browsers 2849 if (method === "required") { 2850 value = element.getAttribute(method); 2851 2852 // Some browsers return an empty string for the required attribute 2853 // and non-HTML5 browsers might have required="" markup 2854 if (value === "") { 2855 value = true; 2856 } 2857 2858 // Force non-HTML5 browsers to return bool 2859 value = !!value; 2860 } else { 2861 value = $element.attr(method); 2862 } 2863 this.normalizeAttributeRule(rules, type, method, value); 2864 } 2865 2866 // 'maxlength' may be returned as -1, 2147483647 ( IE ) and 524288 ( safari ) for text inputs 2867 if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) { 2868 delete rules.maxlength; 2869 } 2870 return rules; 2871 }, 2872 dataRules: function dataRules(element) { 2873 var rules = {}, 2874 $element = $(element), 2875 type = element.getAttribute("type"), 2876 method, 2877 value; 2878 for (method in $.validator.methods) { 2879 value = $element.data("rule" + method.charAt(0).toUpperCase() + method.substring(1).toLowerCase()); 2880 2881 // Cast empty attributes like `data-rule-required` to `true` 2882 if (value === "") { 2883 value = true; 2884 } 2885 this.normalizeAttributeRule(rules, type, method, value); 2886 } 2887 return rules; 2888 }, 2889 staticRules: function staticRules(element) { 2890 var rules = {}, 2891 validator = $.data(element.form, "validator"); 2892 if (validator.settings.rules) { 2893 rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {}; 2894 } 2895 return rules; 2896 }, 2897 normalizeRules: function normalizeRules(rules, element) { 2898 // Handle dependency check 2899 $.each(rules, function (prop, val) { 2900 // Ignore rule when param is explicitly false, eg. required:false 2901 if (val === false) { 2902 delete rules[prop]; 2903 return; 2904 } 2905 if (val.param || val.depends) { 2906 var keepRule = true; 2907 switch (_typeof(val.depends)) { 2908 case "string": 2909 keepRule = !!$(val.depends, element.form).length; 2910 break; 2911 case "function": 2912 keepRule = val.depends.call(element, element); 2913 break; 2914 } 2915 if (keepRule) { 2916 rules[prop] = val.param !== undefined ? val.param : true; 2917 } else { 2918 $.data(element.form, "validator").resetElements($(element)); 2919 delete rules[prop]; 2920 } 2921 } 2922 }); 2923 2924 // Evaluate parameters 2925 $.each(rules, function (rule, parameter) { 2926 rules[rule] = typeof parameter === "function" && rule !== "normalizer" ? parameter(element) : parameter; 2927 }); 2928 2929 // Clean number parameters 2930 $.each(["minlength", "maxlength"], function () { 2931 if (rules[this]) { 2932 rules[this] = Number(rules[this]); 2933 } 2934 }); 2935 $.each(["rangelength", "range"], function () { 2936 var parts; 2937 if (rules[this]) { 2938 if (Array.isArray(rules[this])) { 2939 rules[this] = [Number(rules[this][0]), Number(rules[this][1])]; 2940 } else if (typeof rules[this] === "string") { 2941 parts = rules[this].replace(/[\[\]]/g, "").split(/[\s,]+/); 2942 rules[this] = [Number(parts[0]), Number(parts[1])]; 2943 } 2944 } 2945 }); 2946 if ($.validator.autoCreateRanges) { 2947 // Auto-create ranges 2948 if (rules.min != null && rules.max != null) { 2949 rules.range = [rules.min, rules.max]; 2950 delete rules.min; 2951 delete rules.max; 2952 } 2953 if (rules.minlength != null && rules.maxlength != null) { 2954 rules.rangelength = [rules.minlength, rules.maxlength]; 2955 delete rules.minlength; 2956 delete rules.maxlength; 2957 } 2958 } 2959 return rules; 2960 }, 2961 // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true} 2962 normalizeRule: function normalizeRule(data) { 2963 if (typeof data === "string") { 2964 var transformed = {}; 2965 $.each(data.split(/\s/), function () { 2966 transformed[this] = true; 2967 }); 2968 data = transformed; 2969 } 2970 return data; 2971 }, 2972 // https://jqueryvalidation.org/jQuery.validator.addMethod/ 2973 addMethod: function addMethod(name, method, message) { 2974 $.validator.methods[name] = method; 2975 $.validator.messages[name] = message !== undefined ? message : $.validator.messages[name]; 2976 if (method.length < 3) { 2977 $.validator.addClassRules(name, $.validator.normalizeRule(name)); 2978 } 2979 }, 2980 // https://jqueryvalidation.org/jQuery.validator.methods/ 2981 methods: { 2982 // https://jqueryvalidation.org/required-method/ 2983 required: function required(value, element, param) { 2984 // Check if dependency is met 2985 if (!this.depend(param, element)) { 2986 return "dependency-mismatch"; 2987 } 2988 if (element.nodeName.toLowerCase() === "select") { 2989 // Could be an array for select-multiple or a string, both are fine this way 2990 var val = $(element).val(); 2991 return val && val.length > 0; 2992 } 2993 if (this.checkable(element)) { 2994 return this.getLength(value, element) > 0; 2995 } 2996 return value !== undefined && value !== null && value.length > 0; 2997 }, 2998 // https://jqueryvalidation.org/email-method/ 2999 email: function email(value, element) { 3000 // From https://html.spec.whatwg.org/multipage/forms.html#valid-e-mail-address 3001 // Retrieved 2014-01-14 3002 // If you have a problem with this implementation, report a bug against the above spec 3003 // Or use custom methods to implement your own email validation 3004 return this.optional(element) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(value); 3005 }, 3006 // https://jqueryvalidation.org/url-method/ 3007 url: function url(value, element) { 3008 // Copyright (c) 2010-2013 Diego Perini, MIT licensed 3009 // https://gist.github.com/dperini/729294 3010 // see also https://mathiasbynens.be/demo/url-regex 3011 // modified to allow protocol-relative URLs 3012 return this.optional(element) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(value); 3013 }, 3014 // https://jqueryvalidation.org/date-method/ 3015 date: function () { 3016 var called = false; 3017 return function (value, element) { 3018 if (!called) { 3019 called = true; 3020 if (this.settings.debug && window.console) { 3021 console.warn("The `date` method is deprecated and will be removed in version '2.0.0'.\n" + "Please don't use it, since it relies on the Date constructor, which\n" + "behaves very differently across browsers and locales. Use `dateISO`\n" + "instead or one of the locale specific methods in `localizations/`\n" + "and `additional-methods.js`."); 3022 } 3023 } 3024 return this.optional(element) || !/Invalid|NaN/.test(new Date(value).toString()); 3025 }; 3026 }(), 3027 // https://jqueryvalidation.org/dateISO-method/ 3028 dateISO: function dateISO(value, element) { 3029 return this.optional(element) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value); 3030 }, 3031 // https://jqueryvalidation.org/number-method/ 3032 number: function number(value, element) { 3033 return this.optional(element) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:-?\.\d+)?$/.test(value); 3034 }, 3035 // https://jqueryvalidation.org/digits-method/ 3036 digits: function digits(value, element) { 3037 return this.optional(element) || /^\d+$/.test(value); 3038 }, 3039 // https://jqueryvalidation.org/minlength-method/ 3040 minlength: function minlength(value, element, param) { 3041 var length = Array.isArray(value) ? value.length : this.getLength(value, element); 3042 return this.optional(element) || length >= param; 3043 }, 3044 // https://jqueryvalidation.org/maxlength-method/ 3045 maxlength: function maxlength(value, element, param) { 3046 var length = Array.isArray(value) ? value.length : this.getLength(value, element); 3047 return this.optional(element) || length <= param; 3048 }, 3049 // https://jqueryvalidation.org/rangelength-method/ 3050 rangelength: function rangelength(value, element, param) { 3051 var length = Array.isArray(value) ? value.length : this.getLength(value, element); 3052 return this.optional(element) || length >= param[0] && length <= param[1]; 3053 }, 3054 // https://jqueryvalidation.org/min-method/ 3055 min: function min(value, element, param) { 3056 return this.optional(element) || value >= param; 3057 }, 3058 // https://jqueryvalidation.org/max-method/ 3059 max: function max(value, element, param) { 3060 return this.optional(element) || value <= param; 3061 }, 3062 // https://jqueryvalidation.org/range-method/ 3063 range: function range(value, element, param) { 3064 return this.optional(element) || value >= param[0] && value <= param[1]; 3065 }, 3066 // https://jqueryvalidation.org/step-method/ 3067 step: function step(value, element, param) { 3068 var type = $(element).attr("type"), 3069 errorMessage = "Step attribute on input type " + type + " is not supported.", 3070 supportedTypes = ["text", "number", "range"], 3071 re = new RegExp("\\b" + type + "\\b"), 3072 notSupported = type && !re.test(supportedTypes.join()), 3073 decimalPlaces = function decimalPlaces(num) { 3074 var match = ("" + num).match(/(?:\.(\d+))?$/); 3075 if (!match) { 3076 return 0; 3077 } 3078 3079 // Number of digits right of decimal point. 3080 return match[1] ? match[1].length : 0; 3081 }, 3082 toInt = function toInt(num) { 3083 return Math.round(num * Math.pow(10, decimals)); 3084 }, 3085 valid = true, 3086 decimals; 3087 3088 // Works only for text, number and range input types 3089 // TODO find a way to support input types date, datetime, datetime-local, month, time and week 3090 if (notSupported) { 3091 throw new Error(errorMessage); 3092 } 3093 decimals = decimalPlaces(param); 3094 3095 // Value can't have too many decimals 3096 if (decimalPlaces(value) > decimals || toInt(value) % toInt(param) !== 0) { 3097 valid = false; 3098 } 3099 return this.optional(element) || valid; 3100 }, 3101 // https://jqueryvalidation.org/equalTo-method/ 3102 equalTo: function equalTo(value, element, param) { 3103 // Bind to the blur event of the target in order to revalidate whenever the target field is updated 3104 var target = $(param); 3105 if (this.settings.onfocusout && target.not(".validate-equalTo-blur").length) { 3106 target.addClass("validate-equalTo-blur").on("blur.validate-equalTo", function () { 3107 $(element).valid(); 3108 }); 3109 } 3110 return value === target.val(); 3111 }, 3112 // https://jqueryvalidation.org/remote-method/ 3113 remote: function remote(value, element, param, method) { 3114 if (this.optional(element)) { 3115 return "dependency-mismatch"; 3116 } 3117 method = typeof method === "string" && method || "remote"; 3118 var previous = this.previousValue(element, method), 3119 validator, 3120 data, 3121 optionDataString; 3122 if (!this.settings.messages[element.name]) { 3123 this.settings.messages[element.name] = {}; 3124 } 3125 previous.originalMessage = previous.originalMessage || this.settings.messages[element.name][method]; 3126 this.settings.messages[element.name][method] = previous.message; 3127 param = typeof param === "string" && { 3128 url: param 3129 } || param; 3130 optionDataString = $.param($.extend({ 3131 data: value 3132 }, param.data)); 3133 if (previous.valid !== null && previous.old === optionDataString) { 3134 return previous.valid; 3135 } 3136 previous.old = optionDataString; 3137 previous.valid = null; 3138 validator = this; 3139 this.startRequest(element); 3140 data = {}; 3141 data[element.name] = value; 3142 $.ajax($.extend(true, { 3143 mode: "abort", 3144 port: this.elementAjaxPort(element), 3145 dataType: "json", 3146 data: data, 3147 context: validator.currentForm, 3148 success: function success(response) { 3149 var valid = response === true || response === "true", 3150 errors, 3151 message, 3152 submitted; 3153 validator.settings.messages[element.name][method] = previous.originalMessage; 3154 if (valid) { 3155 submitted = validator.formSubmitted; 3156 validator.toHide = validator.errorsFor(element); 3157 validator.formSubmitted = submitted; 3158 validator.successList.push(element); 3159 validator.invalid[element.name] = false; 3160 validator.showErrors(); 3161 } else { 3162 errors = {}; 3163 message = response || validator.defaultMessage(element, { 3164 method: method, 3165 parameters: value 3166 }); 3167 errors[element.name] = previous.message = message; 3168 validator.invalid[element.name] = true; 3169 validator.showErrors(errors); 3170 } 3171 previous.valid = valid; 3172 validator.stopRequest(element, valid); 3173 } 3174 }, param)); 3175 return "pending"; 3176 } 3177 } 3178 }); 3179 3180 // Ajax mode: abort 3181 // usage: $.ajax({ mode: "abort"[, port: "uniqueport"]}); 3182 // $.ajaxAbort( port ); 3183 // if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() 3184 3185 var pendingRequests = {}, 3186 ajax; 3187 3188 // Use a prefilter if available (1.5+) 3189 if ($.ajaxPrefilter) { 3190 $.ajaxPrefilter(function (settings, _, xhr) { 3191 var port = settings.port; 3192 if (settings.mode === "abort") { 3193 $.ajaxAbort(port); 3194 pendingRequests[port] = xhr; 3195 } 3196 }); 3197 } else { 3198 // Proxy ajax 3199 ajax = $.ajax; 3200 $.ajax = function (settings) { 3201 var mode = ("mode" in settings ? settings : $.ajaxSettings).mode, 3202 port = ("port" in settings ? settings : $.ajaxSettings).port; 3203 if (mode === "abort") { 3204 $.ajaxAbort(port); 3205 pendingRequests[port] = ajax.apply(this, arguments); 3206 return pendingRequests[port]; 3207 } 3208 return ajax.apply(this, arguments); 3209 }; 3210 } 3211 3212 // Abort the previous request without sending a new one 3213 $.ajaxAbort = function (port) { 3214 if (pendingRequests[port]) { 3215 pendingRequests[port].abort(); 3216 delete pendingRequests[port]; 3217 } 3218 }; 3219 return $; 3220}); 3221 3222/***/ }), 3223
vendor: 319,032 bytes, lines 3224-12234
3224/***/ "./node_modules/jquery/dist/jquery.js": 3225/*!********************************************!*\ 3226 !*** ./node_modules/jquery/dist/jquery.js ***! 3227 \********************************************/ 3228/***/ (function(module, exports, __webpack_require__) { 3229 3230/* module decorator */ module = __webpack_require__.nmd(module); 3231var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 3232/*! 3233 * jQuery JavaScript Library v3.7.1 3234 * https://jquery.com/ 3235 * 3236 * Copyright OpenJS Foundation and other contributors 3237 * Released under the MIT license 3238 * https://jquery.org/license 3239 * 3240 * Date: 2023-08-28T13:37Z 3241 */ 3242(function (global, factory) { 3243 "use strict"; 3244 3245 if (( false ? 0 : _typeof(module)) === "object" && _typeof(module.exports) === "object") { 3246 // For CommonJS and CommonJS-like environments where a proper `window` 3247 // is present, execute the factory and get jQuery. 3248 // For environments that do not have a `window` with a `document` 3249 // (such as Node.js), expose a factory as module.exports. 3250 // This accentuates the need for the creation of a real `window`. 3251 // e.g. var jQuery = require("jquery")(window); 3252 // See ticket trac-14549 for more info. 3253 module.exports = global.document ? factory(global, true) : function (w) { 3254 if (!w.document) { 3255 throw new Error("jQuery requires a window with a document"); 3256 } 3257 return factory(w); 3258 }; 3259 } else { 3260 factory(global); 3261 } 3262 3263 // Pass this if window is not defined yet 3264})(typeof window !== "undefined" ? window : this, function (window, noGlobal) { 3265 // Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 3266 // throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode 3267 // arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common 3268 // enough that all such attempts are guarded in a try block. 3269 "use strict"; 3270 3271 var arr = []; 3272 var getProto = Object.getPrototypeOf; 3273 var _slice = arr.slice; 3274 var flat = arr.flat ? function (array) { 3275 return arr.flat.call(array); 3276 } : function (array) { 3277 return arr.concat.apply([], array); 3278 }; 3279 var push = arr.push; 3280 var indexOf = arr.indexOf; 3281 var class2type = {}; 3282 var toString = class2type.toString; 3283 var hasOwn = class2type.hasOwnProperty; 3284 var fnToString = hasOwn.toString; 3285 var ObjectFunctionString = fnToString.call(Object); 3286 var support = {}; 3287 var isFunction = function isFunction(obj) { 3288 // Support: Chrome <=57, Firefox <=52 3289 // In some browsers, typeof returns "function" for HTML <object> elements 3290 // (i.e., `typeof document.createElement( "object" ) === "function"`). 3291 // We don't want to classify *any* DOM node as a function. 3292 // Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5 3293 // Plus for old WebKit, typeof returns "function" for HTML collections 3294 // (e.g., `typeof document.getElementsByTagName("div") === "function"`). (gh-4756) 3295 return typeof obj === "function" && typeof obj.nodeType !== "number" && typeof obj.item !== "function"; 3296 }; 3297 var isWindow = function isWindow(obj) { 3298 return obj != null && obj === obj.window; 3299 }; 3300 var document = window.document; 3301 var preservedScriptAttributes = { 3302 type: true, 3303 src: true, 3304 nonce: true, 3305 noModule: true 3306 }; 3307 function DOMEval(code, node, doc) { 3308 doc = doc || document; 3309 var i, 3310 val, 3311 script = doc.createElement("script"); 3312 script.text = code; 3313 if (node) { 3314 for (i in preservedScriptAttributes) { 3315 // Support: Firefox 64+, Edge 18+ 3316 // Some browsers don't support the "nonce" property on scripts. 3317 // On the other hand, just using `getAttribute` is not enough as 3318 // the `nonce` attribute is reset to an empty string whenever it 3319 // becomes browsing-context connected. 3320 // See https://github.com/whatwg/html/issues/2369 3321 // See https://html.spec.whatwg.org/#nonce-attributes 3322 // The `node.getAttribute` check was added for the sake of 3323 // `jQuery.globalEval` so that it can fake a nonce-containing node 3324 // via an object. 3325 val = node[i] || node.getAttribute && node.getAttribute(i); 3326 if (val) { 3327 script.setAttribute(i, val); 3328 } 3329 } 3330 } 3331 doc.head.appendChild(script).parentNode.removeChild(script); 3332 } 3333 function toType(obj) { 3334 if (obj == null) { 3335 return obj + ""; 3336 } 3337 3338 // Support: Android <=2.3 only (functionish RegExp) 3339 return _typeof(obj) === "object" || typeof obj === "function" ? class2type[toString.call(obj)] || "object" : _typeof(obj); 3340 } 3341 /* global Symbol */ 3342 // Defining this global in .eslintrc.json would create a danger of using the global 3343 // unguarded in another place, it seems safer to define global only for this module 3344 3345 var version = "3.7.1", 3346 rhtmlSuffix = /HTML$/i, 3347 // Define a local copy of jQuery 3348 _jQuery2 = function jQuery(selector, context) { 3349 // The jQuery object is actually just the init constructor 'enhanced' 3350 // Need init if jQuery is called (just allow error to be thrown if not included) 3351 return new _jQuery2.fn.init(selector, context); 3352 }; 3353 _jQuery2.fn = _jQuery2.prototype = { 3354 // The current version of jQuery being used 3355 jquery: version, 3356 constructor: _jQuery2, 3357 // The default length of a jQuery object is 0 3358 length: 0, 3359 toArray: function toArray() { 3360 return _slice.call(this); 3361 }, 3362 // Get the Nth element in the matched element set OR 3363 // Get the whole matched element set as a clean array 3364 get: function get(num) { 3365 // Return all the elements in a clean array 3366 if (num == null) { 3367 return _slice.call(this); 3368 } 3369 3370 // Return just the one element from the set 3371 return num < 0 ? this[num + this.length] : this[num]; 3372 }, 3373 // Take an array of elements and push it onto the stack 3374 // (returning the new matched element set) 3375 pushStack: function pushStack(elems) { 3376 // Build a new jQuery matched element set 3377 var ret = _jQuery2.merge(this.constructor(), elems); 3378 3379 // Add the old object onto the stack (as a reference) 3380 ret.prevObject = this; 3381 3382 // Return the newly-formed element set 3383 return ret; 3384 }, 3385 // Execute a callback for every element in the matched set. 3386 each: function each(callback) { 3387 return _jQuery2.each(this, callback); 3388 }, 3389 map: function map(callback) { 3390 return this.pushStack(_jQuery2.map(this, function (elem, i) { 3391 return callback.call(elem, i, elem); 3392 })); 3393 }, 3394 slice: function slice() { 3395 return this.pushStack(_slice.apply(this, arguments)); 3396 }, 3397 first: function first() { 3398 return this.eq(0); 3399 }, 3400 last: function last() { 3401 return this.eq(-1); 3402 }, 3403 even: function even() { 3404 return this.pushStack(_jQuery2.grep(this, function (_elem, i) { 3405 return (i + 1) % 2; 3406 })); 3407 }, 3408 odd: function odd() { 3409 return this.pushStack(_jQuery2.grep(this, function (_elem, i) { 3410 return i % 2; 3411 })); 3412 }, 3413 eq: function eq(i) { 3414 var len = this.length, 3415 j = +i + (i < 0 ? len : 0); 3416 return this.pushStack(j >= 0 && j < len ? [this[j]] : []); 3417 }, 3418 end: function end() { 3419 return this.prevObject || this.constructor(); 3420 }, 3421 // For internal use only. 3422 // Behaves like an Array's method, not like a jQuery method. 3423 push: push, 3424 sort: arr.sort, 3425 splice: arr.splice 3426 }; 3427 _jQuery2.extend = _jQuery2.fn.extend = function () { 3428 var options, 3429 name, 3430 src, 3431 copy, 3432 copyIsArray, 3433 clone, 3434 target = arguments[0] || {}, 3435 i = 1, 3436 length = arguments.length, 3437 deep = false; 3438 3439 // Handle a deep copy situation 3440 if (typeof target === "boolean") { 3441 deep = target; 3442 3443 // Skip the boolean and the target 3444 target = arguments[i] || {}; 3445 i++; 3446 } 3447 3448 // Handle case when target is a string or something (possible in deep copy) 3449 if (_typeof(target) !== "object" && !isFunction(target)) { 3450 target = {}; 3451 } 3452 3453 // Extend jQuery itself if only one argument is passed 3454 if (i === length) { 3455 target = this; 3456 i--; 3457 } 3458 for (; i < length; i++) { 3459 // Only deal with non-null/undefined values 3460 if ((options = arguments[i]) != null) { 3461 // Extend the base object 3462 for (name in options) { 3463 copy = options[name]; 3464 3465 // Prevent Object.prototype pollution 3466 // Prevent never-ending loop 3467 if (name === "__proto__" || target === copy) { 3468 continue; 3469 } 3470 3471 // Recurse if we're merging plain objects or arrays 3472 if (deep && copy && (_jQuery2.isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) { 3473 src = target[name]; 3474 3475 // Ensure proper type for the source value 3476 if (copyIsArray && !Array.isArray(src)) { 3477 clone = []; 3478 } else if (!copyIsArray && !_jQuery2.isPlainObject(src)) { 3479 clone = {}; 3480 } else { 3481 clone = src; 3482 } 3483 copyIsArray = false; 3484 3485 // Never move original objects, clone them 3486 target[name] = _jQuery2.extend(deep, clone, copy); 3487 3488 // Don't bring in undefined values 3489 } else if (copy !== undefined) { 3490 target[name] = copy; 3491 } 3492 } 3493 } 3494 } 3495 3496 // Return the modified object 3497 return target; 3498 }; 3499 _jQuery2.extend({ 3500 // Unique for each copy of jQuery on the page 3501 expando: "jQuery" + (version + Math.random()).replace(/\D/g, ""), 3502 // Assume jQuery is ready without the ready module 3503 isReady: true, 3504 error: function error(msg) { 3505 throw new Error(msg); 3506 }, 3507 noop: function noop() {}, 3508 isPlainObject: function isPlainObject(obj) { 3509 var proto, Ctor; 3510 3511 // Detect obvious negatives 3512 // Use toString instead of jQuery.type to catch host objects 3513 if (!obj || toString.call(obj) !== "[object Object]") { 3514 return false; 3515 } 3516 proto = getProto(obj); 3517 3518 // Objects with no prototype (e.g., `Object.create( null )`) are plain 3519 if (!proto) { 3520 return true; 3521 } 3522 3523 // Objects with prototype are plain iff they were constructed by a global Object function 3524 Ctor = hasOwn.call(proto, "constructor") && proto.constructor; 3525 return typeof Ctor === "function" && fnToString.call(Ctor) === ObjectFunctionString; 3526 }, 3527 isEmptyObject: function isEmptyObject(obj) { 3528 var name; 3529 for (name in obj) { 3530 return false; 3531 } 3532 return true; 3533 }, 3534 // Evaluates a script in a provided context; falls back to the global one 3535 // if not specified. 3536 globalEval: function globalEval(code, options, doc) { 3537 DOMEval(code, { 3538 nonce: options && options.nonce 3539 }, doc); 3540 }, 3541 each: function each(obj, callback) { 3542 var length, 3543 i = 0; 3544 if (isArrayLike(obj)) { 3545 length = obj.length; 3546 for (; i < length; i++) { 3547 if (callback.call(obj[i], i, obj[i]) === false) { 3548 break; 3549 } 3550 } 3551 } else { 3552 for (i in obj) { 3553 if (callback.call(obj[i], i, obj[i]) === false) { 3554 break; 3555 } 3556 } 3557 } 3558 return obj; 3559 }, 3560 // Retrieve the text value of an array of DOM nodes 3561 text: function text(elem) { 3562 var node, 3563 ret = "", 3564 i = 0, 3565 nodeType = elem.nodeType; 3566 if (!nodeType) { 3567 // If no nodeType, this is expected to be an array 3568 while (node = elem[i++]) { 3569 // Do not traverse comment nodes 3570 ret += _jQuery2.text(node); 3571 } 3572 } 3573 if (nodeType === 1 || nodeType === 11) { 3574 return elem.textContent; 3575 } 3576 if (nodeType === 9) { 3577 return elem.documentElement.textContent; 3578 } 3579 if (nodeType === 3 || nodeType === 4) { 3580 return elem.nodeValue; 3581 } 3582 3583 // Do not include comment or processing instruction nodes 3584 3585 return ret; 3586 }, 3587 // results is for internal usage only 3588 makeArray: function makeArray(arr, results) { 3589 var ret = results || []; 3590 if (arr != null) { 3591 if (isArrayLike(Object(arr))) { 3592 _jQuery2.merge(ret, typeof arr === "string" ? [arr] : arr); 3593 } else { 3594 push.call(ret, arr); 3595 } 3596 } 3597 return ret; 3598 }, 3599 inArray: function inArray(elem, arr, i) { 3600 return arr == null ? -1 : indexOf.call(arr, elem, i); 3601 }, 3602 isXMLDoc: function isXMLDoc(elem) { 3603 var namespace = elem && elem.namespaceURI, 3604 docElem = elem && (elem.ownerDocument || elem).documentElement; 3605 3606 // Assume HTML when documentElement doesn't yet exist, such as inside 3607 // document fragments. 3608 return !rhtmlSuffix.test(namespace || docElem && docElem.nodeName || "HTML"); 3609 }, 3610 // Support: Android <=4.0 only, PhantomJS 1 only 3611 // push.apply(_, arraylike) throws on ancient WebKit 3612 merge: function merge(first, second) { 3613 var len = +second.length, 3614 j = 0, 3615 i = first.length; 3616 for (; j < len; j++) { 3617 first[i++] = second[j]; 3618 } 3619 first.length = i; 3620 return first; 3621 }, 3622 grep: function grep(elems, callback, invert) { 3623 var callbackInverse, 3624 matches = [], 3625 i = 0, 3626 length = elems.length, 3627 callbackExpect = !invert; 3628 3629 // Go through the array, only saving the items 3630 // that pass the validator function 3631 for (; i < length; i++) { 3632 callbackInverse = !callback(elems[i], i); 3633 if (callbackInverse !== callbackExpect) { 3634 matches.push(elems[i]); 3635 } 3636 } 3637 return matches; 3638 }, 3639 // arg is for internal usage only 3640 map: function map(elems, callback, arg) { 3641 var length, 3642 value, 3643 i = 0, 3644 ret = []; 3645 3646 // Go through the array, translating each of the items to their new values 3647 if (isArrayLike(elems)) { 3648 length = elems.length; 3649 for (; i < length; i++) { 3650 value = callback(elems[i], i, arg); 3651 if (value != null) { 3652 ret.push(value); 3653 } 3654 } 3655 3656 // Go through every key on the object, 3657 } else { 3658 for (i in elems) { 3659 value = callback(elems[i], i, arg); 3660 if (value != null) { 3661 ret.push(value); 3662 } 3663 } 3664 } 3665 3666 // Flatten any nested arrays 3667 return flat(ret); 3668 }, 3669 // A global GUID counter for objects 3670 guid: 1, 3671 // jQuery.support is not used in Core but other projects attach their 3672 // properties to it so it needs to exist. 3673 support: support 3674 }); 3675 if (typeof Symbol === "function") { 3676 _jQuery2.fn[Symbol.iterator] = arr[Symbol.iterator]; 3677 } 3678 3679 // Populate the class2type map 3680 _jQuery2.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (_i, name) { 3681 class2type["[object " + name + "]"] = name.toLowerCase(); 3682 }); 3683 function isArrayLike(obj) { 3684 // Support: real iOS 8.2 only (not reproducible in simulator) 3685 // `in` check used to prevent JIT error (gh-2145) 3686 // hasOwn isn't used here due to false negatives 3687 // regarding Nodelist length in IE 3688 var length = !!obj && "length" in obj && obj.length, 3689 type = toType(obj); 3690 if (isFunction(obj) || isWindow(obj)) { 3691 return false; 3692 } 3693 return type === "array" || length === 0 || typeof length === "number" && length > 0 && length - 1 in obj; 3694 } 3695 function nodeName(elem, name) { 3696 return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); 3697 } 3698 var pop = arr.pop; 3699 var sort = arr.sort; 3700 var splice = arr.splice; 3701 var whitespace = "[\\x20\\t\\r\\n\\f]"; 3702 var rtrimCSS = new RegExp("^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g"); 3703 3704 // Note: an element does not contain itself 3705 _jQuery2.contains = function (a, b) { 3706 var bup = b && b.parentNode; 3707 return a === bup || !!(bup && bup.nodeType === 1 && ( 3708 // Support: IE 9 - 11+ 3709 // IE doesn't have `contains` on SVG. 3710 a.contains ? a.contains(bup) : a.compareDocumentPosition && a.compareDocumentPosition(bup) & 16)); 3711 }; 3712 3713 // CSS string/identifier serialization 3714 // https://drafts.csswg.org/cssom/#common-serializing-idioms 3715 var rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g; 3716 function fcssescape(ch, asCodePoint) { 3717 if (asCodePoint) { 3718 // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER 3719 if (ch === "\0") { 3720 return "\uFFFD"; 3721 } 3722 3723 // Control characters and (dependent upon position) numbers get escaped as code points 3724 return ch.slice(0, -1) + "\\" + ch.charCodeAt(ch.length - 1).toString(16) + " "; 3725 } 3726 3727 // Other potentially-special ASCII characters get backslash-escaped 3728 return "\\" + ch; 3729 } 3730 _jQuery2.escapeSelector = function (sel) { 3731 return (sel + "").replace(rcssescape, fcssescape); 3732 }; 3733 var preferredDoc = document, 3734 pushNative = push; 3735 (function () { 3736 var i, 3737 Expr, 3738 outermostContext, 3739 sortInput, 3740 hasDuplicate, 3741 push = pushNative, 3742 // Local document vars 3743 document, 3744 documentElement, 3745 documentIsHTML, 3746 rbuggyQSA, 3747 matches, 3748 // Instance-specific data 3749 expando = _jQuery2.expando, 3750 dirruns = 0, 3751 done = 0, 3752 classCache = createCache(), 3753 tokenCache = createCache(), 3754 compilerCache = createCache(), 3755 nonnativeSelectorCache = createCache(), 3756 sortOrder = function sortOrder(a, b) { 3757 if (a === b) { 3758 hasDuplicate = true; 3759 } 3760 return 0; 3761 }, 3762 booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|" + "loop|multiple|open|readonly|required|scoped", 3763 // Regular expressions 3764 3765 // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram 3766 identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", 3767 // Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors 3768 attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + 3769 // Operator (capture 2) 3770 "*([*^$|!~]?=)" + whitespace + 3771 // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" 3772 "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + "*\\]", 3773 pseudos = ":(" + identifier + ")(?:\\((" + 3774 // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: 3775 // 1. quoted (capture 3; capture 4 or capture 5) 3776 "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + 3777 // 2. simple (capture 6) 3778 "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + 3779 // 3. anything else (capture 2) 3780 ".*" + ")\\)|)", 3781 // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter 3782 rwhitespace = new RegExp(whitespace + "+", "g"), 3783 rcomma = new RegExp("^" + whitespace + "*," + whitespace + "*"), 3784 rleadingCombinator = new RegExp("^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*"), 3785 rdescend = new RegExp(whitespace + "|>"), 3786 rpseudo = new RegExp(pseudos), 3787 ridentifier = new RegExp("^" + identifier + "$"), 3788 matchExpr = { 3789 ID: new RegExp("^#(" + identifier + ")"), 3790 CLASS: new RegExp("^\\.(" + identifier + ")"), 3791 TAG: new RegExp("^(" + identifier + "|[*])"), 3792 ATTR: new RegExp("^" + attributes), 3793 PSEUDO: new RegExp("^" + pseudos), 3794 CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i"), 3795 bool: new RegExp("^(?:" + booleans + ")$", "i"), 3796 // For use in libraries implementing .is() 3797 // We use this for POS matching in `select` 3798 needsContext: new RegExp("^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i") 3799 }, 3800 rinputs = /^(?:input|select|textarea|button)$/i, 3801 rheader = /^h\d$/i, 3802 // Easily-parseable/retrievable ID or TAG or CLASS selectors 3803 rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, 3804 rsibling = /[+~]/, 3805 // CSS escapes 3806 // https://www.w3.org/TR/CSS21/syndata.html#escaped-characters 3807 runescape = new RegExp("\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g"), 3808 funescape = function funescape(escape, nonHex) { 3809 var high = "0x" + escape.slice(1) - 0x10000; 3810 if (nonHex) { 3811 // Strip the backslash prefix from a non-hex escape sequence 3812 return nonHex; 3813 } 3814 3815 // Replace a hexadecimal escape sequence with the encoded Unicode code point 3816 // Support: IE <=11+ 3817 // For values outside the Basic Multilingual Plane (BMP), manually construct a 3818 // surrogate pair 3819 return high < 0 ? String.fromCharCode(high + 0x10000) : String.fromCharCode(high >> 10 | 0xD800, high & 0x3FF | 0xDC00); 3820 }, 3821 // Used for iframes; see `setDocument`. 3822 // Support: IE 9 - 11+, Edge 12 - 18+ 3823 // Removing the function wrapper causes a "Permission Denied" 3824 // error in IE/Edge. 3825 unloadHandler = function unloadHandler() { 3826 setDocument(); 3827 }, 3828 inDisabledFieldset = addCombinator(function (elem) { 3829 return elem.disabled === true && nodeName(elem, "fieldset"); 3830 }, { 3831 dir: "parentNode", 3832 next: "legend" 3833 }); 3834 3835 // Support: IE <=9 only 3836 // Accessing document.activeElement can throw unexpectedly 3837 // https://bugs.jquery.com/ticket/13393 3838 function safeActiveElement() { 3839 try { 3840 return document.activeElement; 3841 } catch (err) {} 3842 } 3843 3844 // Optimize for push.apply( _, NodeList ) 3845 try { 3846 push.apply(arr = _slice.call(preferredDoc.childNodes), preferredDoc.childNodes); 3847 3848 // Support: Android <=4.0 3849 // Detect silently failing push.apply 3850 // eslint-disable-next-line no-unused-expressions 3851 arr[preferredDoc.childNodes.length].nodeType; 3852 } catch (e) { 3853 push = { 3854 apply: function apply(target, els) { 3855 pushNative.apply(target, _slice.call(els)); 3856 }, 3857 call: function call(target) { 3858 pushNative.apply(target, _slice.call(arguments, 1)); 3859 } 3860 }; 3861 } 3862 function find(selector, context, results, seed) { 3863 var m, 3864 i, 3865 elem, 3866 nid, 3867 match, 3868 groups, 3869 newSelector, 3870 newContext = context && context.ownerDocument, 3871 // nodeType defaults to 9, since context defaults to document 3872 nodeType = context ? context.nodeType : 9; 3873 results = results || []; 3874 3875 // Return early from calls with invalid selector or context 3876 if (typeof selector !== "string" || !selector || nodeType !== 1 && nodeType !== 9 && nodeType !== 11) { 3877 return results; 3878 } 3879 3880 // Try to shortcut find operations (as opposed to filters) in HTML documents 3881 if (!seed) { 3882 setDocument(context); 3883 context = context || document; 3884 if (documentIsHTML) { 3885 // If the selector is sufficiently simple, try using a "get*By*" DOM method 3886 // (excepting DocumentFragment context, where the methods don't exist) 3887 if (nodeType !== 11 && (match = rquickExpr.exec(selector))) { 3888 // ID selector 3889 if (m = match[1]) { 3890 // Document context 3891 if (nodeType === 9) { 3892 if (elem = context.getElementById(m)) { 3893 // Support: IE 9 only 3894 // getElementById can match elements by name instead of ID 3895 if (elem.id === m) { 3896 push.call(results, elem); 3897 return results; 3898 } 3899 } else { 3900 return results; 3901 } 3902 3903 // Element context 3904 } else { 3905 // Support: IE 9 only 3906 // getElementById can match elements by name instead of ID 3907 if (newContext && (elem = newContext.getElementById(m)) && find.contains(context, elem) && elem.id === m) { 3908 push.call(results, elem); 3909 return results; 3910 } 3911 } 3912 3913 // Type selector 3914 } else if (match[2]) { 3915 push.apply(results, context.getElementsByTagName(selector)); 3916 return results; 3917 3918 // Class selector 3919 } else if ((m = match[3]) && context.getElementsByClassName) { 3920 push.apply(results, context.getElementsByClassName(m)); 3921 return results; 3922 } 3923 } 3924 3925 // Take advantage of querySelectorAll 3926 if (!nonnativeSelectorCache[selector + " "] && (!rbuggyQSA || !rbuggyQSA.test(selector))) { 3927 newSelector = selector; 3928 newContext = context; 3929 3930 // qSA considers elements outside a scoping root when evaluating child or 3931 // descendant combinators, which is not what we want. 3932 // In such cases, we work around the behavior by prefixing every selector in the 3933 // list with an ID selector referencing the scope context. 3934 // The technique has to be used as well when a leading combinator is used 3935 // as such selectors are not recognized by querySelectorAll. 3936 // Thanks to Andrew Dupont for this technique. 3937 if (nodeType === 1 && (rdescend.test(selector) || rleadingCombinator.test(selector))) { 3938 // Expand context for sibling selectors 3939 newContext = rsibling.test(selector) && testContext(context.parentNode) || context; 3940 3941 // We can use :scope instead of the ID hack if the browser 3942 // supports it & if we're not changing the context. 3943 // Support: IE 11+, Edge 17 - 18+ 3944 // IE/Edge sometimes throw a "Permission denied" error when 3945 // strict-comparing two documents; shallow comparisons work. 3946 // eslint-disable-next-line eqeqeq 3947 if (newContext != context || !support.scope) { 3948 // Capture the context ID, setting it first if necessary 3949 if (nid = context.getAttribute("id")) { 3950 nid = _jQuery2.escapeSelector(nid); 3951 } else { 3952 context.setAttribute("id", nid = expando); 3953 } 3954 } 3955 3956 // Prefix every selector in the list 3957 groups = tokenize(selector); 3958 i = groups.length; 3959 while (i--) { 3960 groups[i] = (nid ? "#" + nid : ":scope") + " " + toSelector(groups[i]); 3961 } 3962 newSelector = groups.join(","); 3963 } 3964 try { 3965 push.apply(results, newContext.querySelectorAll(newSelector)); 3966 return results; 3967 } catch (qsaError) { 3968 nonnativeSelectorCache(selector, true); 3969 } finally { 3970 if (nid === expando) { 3971 context.removeAttribute("id"); 3972 } 3973 } 3974 } 3975 } 3976 } 3977 3978 // All others 3979 return select(selector.replace(rtrimCSS, "$1"), context, results, seed); 3980 } 3981 3982 /** 3983 * Create key-value caches of limited size 3984 * @returns {function(string, object)} Returns the Object data after storing it on itself with 3985 * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) 3986 * deleting the oldest entry 3987 */ 3988 function createCache() { 3989 var keys = []; 3990 function cache(key, value) { 3991 // Use (key + " ") to avoid collision with native prototype properties 3992 // (see https://github.com/jquery/sizzle/issues/157) 3993 if (keys.push(key + " ") > Expr.cacheLength) { 3994 // Only keep the most recent entries 3995 delete cache[keys.shift()]; 3996 } 3997 return cache[key + " "] = value; 3998 } 3999 return cache; 4000 } 4001 4002 /** 4003 * Mark a function for special use by jQuery selector module 4004 * @param {Function} fn The function to mark 4005 */ 4006 function markFunction(fn) { 4007 fn[expando] = true; 4008 return fn; 4009 } 4010 4011 /** 4012 * Support testing using an element 4013 * @param {Function} fn Passed the created element and returns a boolean result 4014 */ 4015 function assert(fn) { 4016 var el = document.createElement("fieldset"); 4017 try { 4018 return !!fn(el); 4019 } catch (e) { 4020 return false; 4021 } finally { 4022 // Remove from its parent by default 4023 if (el.parentNode) { 4024 el.parentNode.removeChild(el); 4025 } 4026 4027 // release memory in IE 4028 el = null; 4029 } 4030 } 4031 4032 /** 4033 * Returns a function to use in pseudos for input types 4034 * @param {String} type 4035 */ 4036 function createInputPseudo(type) { 4037 return function (elem) { 4038 return nodeName(elem, "input") && elem.type === type; 4039 }; 4040 } 4041 4042 /** 4043 * Returns a function to use in pseudos for buttons 4044 * @param {String} type 4045 */ 4046 function createButtonPseudo(type) { 4047 return function (elem) { 4048 return (nodeName(elem, "input") || nodeName(elem, "button")) && elem.type === type; 4049 }; 4050 } 4051 4052 /** 4053 * Returns a function to use in pseudos for :enabled/:disabled 4054 * @param {Boolean} disabled true for :disabled; false for :enabled 4055 */ 4056 function createDisabledPseudo(disabled) { 4057 // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable 4058 return function (elem) { 4059 // Only certain elements can match :enabled or :disabled 4060 // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled 4061 // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled 4062 if ("form" in elem) { 4063 // Check for inherited disabledness on relevant non-disabled elements: 4064 // * listed form-associated elements in a disabled fieldset 4065 // https://html.spec.whatwg.org/multipage/forms.html#category-listed 4066 // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled 4067 // * option elements in a disabled optgroup 4068 // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled 4069 // All such elements have a "form" property. 4070 if (elem.parentNode && elem.disabled === false) { 4071 // Option elements defer to a parent optgroup if present 4072 if ("label" in elem) { 4073 if ("label" in elem.parentNode) { 4074 return elem.parentNode.disabled === disabled; 4075 } else { 4076 return elem.disabled === disabled; 4077 } 4078 } 4079 4080 // Support: IE 6 - 11+ 4081 // Use the isDisabled shortcut property to check for disabled fieldset ancestors 4082 return elem.isDisabled === disabled || 4083 // Where there is no isDisabled, check manually 4084 elem.isDisabled !== !disabled && inDisabledFieldset(elem) === disabled; 4085 } 4086 return elem.disabled === disabled; 4087 4088 // Try to winnow out elements that can't be disabled before trusting the disabled property. 4089 // Some victims get caught in our net (label, legend, menu, track), but it shouldn't 4090 // even exist on them, let alone have a boolean value. 4091 } else if ("label" in elem) { 4092 return elem.disabled === disabled; 4093 } 4094 4095 // Remaining elements are neither :enabled nor :disabled 4096 return false; 4097 }; 4098 } 4099 4100 /** 4101 * Returns a function to use in pseudos for positionals 4102 * @param {Function} fn 4103 */ 4104 function createPositionalPseudo(fn) { 4105 return markFunction(function (argument) { 4106 argument = +argument; 4107 return markFunction(function (seed, matches) { 4108 var j, 4109 matchIndexes = fn([], seed.length, argument), 4110 i = matchIndexes.length; 4111 4112 // Match elements found at the specified indexes 4113 while (i--) { 4114 if (seed[j = matchIndexes[i]]) { 4115 seed[j] = !(matches[j] = seed[j]); 4116 } 4117 } 4118 }); 4119 }); 4120 } 4121 4122 /** 4123 * Checks a node for validity as a jQuery selector context 4124 * @param {Element|Object=} context 4125 * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value 4126 */ 4127 function testContext(context) { 4128 return context && typeof context.getElementsByTagName !== "undefined" && context; 4129 } 4130 4131 /** 4132 * Sets document-related variables once based on the current document 4133 * @param {Element|Object} [node] An element or document object to use to set the document 4134 * @returns {Object} Returns the current document 4135 */ 4136 function setDocument(node) { 4137 var subWindow, 4138 doc = node ? node.ownerDocument || node : preferredDoc; 4139 4140 // Return early if doc is invalid or already selected 4141 // Support: IE 11+, Edge 17 - 18+ 4142 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 4143 // two documents; shallow comparisons work. 4144 // eslint-disable-next-line eqeqeq 4145 if (doc == document || doc.nodeType !== 9 || !doc.documentElement) { 4146 return document; 4147 } 4148 4149 // Update global variables 4150 document = doc; 4151 documentElement = document.documentElement; 4152 documentIsHTML = !_jQuery2.isXMLDoc(document); 4153 4154 // Support: iOS 7 only, IE 9 - 11+ 4155 // Older browsers didn't support unprefixed `matches`. 4156 matches = documentElement.matches || documentElement.webkitMatchesSelector || documentElement.msMatchesSelector; 4157 4158 // Support: IE 9 - 11+, Edge 12 - 18+ 4159 // Accessing iframe documents after unload throws "permission denied" errors 4160 // (see trac-13936). 4161 // Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`, 4162 // all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well. 4163 if (documentElement.msMatchesSelector && 4164 // Support: IE 11+, Edge 17 - 18+ 4165 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 4166 // two documents; shallow comparisons work. 4167 // eslint-disable-next-line eqeqeq 4168 preferredDoc != document && (subWindow = document.defaultView) && subWindow.top !== subWindow) { 4169 // Support: IE 9 - 11+, Edge 12 - 18+ 4170 subWindow.addEventListener("unload", unloadHandler); 4171 } 4172 4173 // Support: IE <10 4174 // Check if getElementById returns elements by name 4175 // The broken getElementById methods don't pick up programmatically-set names, 4176 // so use a roundabout getElementsByName test 4177 support.getById = assert(function (el) { 4178 documentElement.appendChild(el).id = _jQuery2.expando; 4179 return !document.getElementsByName || !document.getElementsByName(_jQuery2.expando).length; 4180 }); 4181 4182 // Support: IE 9 only 4183 // Check to see if it's possible to do matchesSelector 4184 // on a disconnected node. 4185 support.disconnectedMatch = assert(function (el) { 4186 return matches.call(el, "*"); 4187 }); 4188 4189 // Support: IE 9 - 11+, Edge 12 - 18+ 4190 // IE/Edge don't support the :scope pseudo-class. 4191 support.scope = assert(function () { 4192 return document.querySelectorAll(":scope"); 4193 }); 4194 4195 // Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only 4196 // Make sure the `:has()` argument is parsed unforgivingly. 4197 // We include `*` in the test to detect buggy implementations that are 4198 // _selectively_ forgiving (specifically when the list includes at least 4199 // one valid selector). 4200 // Note that we treat complete lack of support for `:has()` as if it were 4201 // spec-compliant support, which is fine because use of `:has()` in such 4202 // environments will fail in the qSA path and fall back to jQuery traversal 4203 // anyway. 4204 support.cssHas = assert(function () { 4205 try { 4206 document.querySelector(":has(*,:jqfake)"); 4207 return false; 4208 } catch (e) { 4209 return true; 4210 } 4211 }); 4212 4213 // ID filter and find 4214 if (support.getById) { 4215 Expr.filter.ID = function (id) { 4216 var attrId = id.replace(runescape, funescape); 4217 return function (elem) { 4218 return elem.getAttribute("id") === attrId; 4219 }; 4220 }; 4221 Expr.find.ID = function (id, context) { 4222 if (typeof context.getElementById !== "undefined" && documentIsHTML) { 4223 var elem = context.getElementById(id); 4224 return elem ? [elem] : []; 4225 } 4226 }; 4227 } else { 4228 Expr.filter.ID = function (id) { 4229 var attrId = id.replace(runescape, funescape); 4230 return function (elem) { 4231 var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id"); 4232 return node && node.value === attrId; 4233 }; 4234 }; 4235 4236 // Support: IE 6 - 7 only 4237 // getElementById is not reliable as a find shortcut 4238 Expr.find.ID = function (id, context) { 4239 if (typeof context.getElementById !== "undefined" && documentIsHTML) { 4240 var node, 4241 i, 4242 elems, 4243 elem = context.getElementById(id); 4244 if (elem) { 4245 // Verify the id attribute 4246 node = elem.getAttributeNode("id"); 4247 if (node && node.value === id) { 4248 return [elem]; 4249 } 4250 4251 // Fall back on getElementsByName 4252 elems = context.getElementsByName(id); 4253 i = 0; 4254 while (elem = elems[i++]) { 4255 node = elem.getAttributeNode("id"); 4256 if (node && node.value === id) { 4257 return [elem]; 4258 } 4259 } 4260 } 4261 return []; 4262 } 4263 }; 4264 } 4265 4266 // Tag 4267 Expr.find.TAG = function (tag, context) { 4268 if (typeof context.getElementsByTagName !== "undefined") { 4269 return context.getElementsByTagName(tag); 4270 4271 // DocumentFragment nodes don't have gEBTN 4272 } else { 4273 return context.querySelectorAll(tag); 4274 } 4275 }; 4276 4277 // Class 4278 Expr.find.CLASS = function (className, context) { 4279 if (typeof context.getElementsByClassName !== "undefined" && documentIsHTML) { 4280 return context.getElementsByClassName(className); 4281 } 4282 }; 4283 4284 /* QSA/matchesSelector 4285 ---------------------------------------------------------------------- */ 4286 4287 // QSA and matchesSelector support 4288 4289 rbuggyQSA = []; 4290 4291 // Build QSA regex 4292 // Regex strategy adopted from Diego Perini 4293 assert(function (el) { 4294 var input; 4295 documentElement.appendChild(el).innerHTML = "<a id='" + expando + "' href='' disabled='disabled'></a>" + "<select id='" + expando + "-\r\\' disabled='disabled'>" + "<option selected=''></option></select>"; 4296 4297 // Support: iOS <=7 - 8 only 4298 // Boolean attributes and "value" are not treated correctly in some XML documents 4299 if (!el.querySelectorAll("[selected]").length) { 4300 rbuggyQSA.push("\\[" + whitespace + "*(?:value|" + booleans + ")"); 4301 } 4302 4303 // Support: iOS <=7 - 8 only 4304 if (!el.querySelectorAll("[id~=" + expando + "-]").length) { 4305 rbuggyQSA.push("~="); 4306 } 4307 4308 // Support: iOS 8 only 4309 // https://bugs.webkit.org/show_bug.cgi?id=136851 4310 // In-page `selector#id sibling-combinator selector` fails 4311 if (!el.querySelectorAll("a#" + expando + "+*").length) { 4312 rbuggyQSA.push(".#.+[+~]"); 4313 } 4314 4315 // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+ 4316 // In some of the document kinds, these selectors wouldn't work natively. 4317 // This is probably OK but for backwards compatibility we want to maintain 4318 // handling them through jQuery traversal in jQuery 3.x. 4319 if (!el.querySelectorAll(":checked").length) { 4320 rbuggyQSA.push(":checked"); 4321 } 4322 4323 // Support: Windows 8 Native Apps 4324 // The type and name attributes are restricted during .innerHTML assignment 4325 input = document.createElement("input"); 4326 input.setAttribute("type", "hidden"); 4327 el.appendChild(input).setAttribute("name", "D"); 4328 4329 // Support: IE 9 - 11+ 4330 // IE's :disabled selector does not pick up the children of disabled fieldsets 4331 // Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+ 4332 // In some of the document kinds, these selectors wouldn't work natively. 4333 // This is probably OK but for backwards compatibility we want to maintain 4334 // handling them through jQuery traversal in jQuery 3.x. 4335 documentElement.appendChild(el).disabled = true; 4336 if (el.querySelectorAll(":disabled").length !== 2) { 4337 rbuggyQSA.push(":enabled", ":disabled"); 4338 } 4339 4340 // Support: IE 11+, Edge 15 - 18+ 4341 // IE 11/Edge don't find elements on a `[name='']` query in some cases. 4342 // Adding a temporary attribute to the document before the selection works 4343 // around the issue. 4344 // Interestingly, IE 10 & older don't seem to have the issue. 4345 input = document.createElement("input"); 4346 input.setAttribute("name", ""); 4347 el.appendChild(input); 4348 if (!el.querySelectorAll("[name='']").length) { 4349 rbuggyQSA.push("\\[" + whitespace + "*name" + whitespace + "*=" + whitespace + "*(?:''|\"\")"); 4350 } 4351 }); 4352 if (!support.cssHas) { 4353 // Support: Chrome 105 - 110+, Safari 15.4 - 16.3+ 4354 // Our regular `try-catch` mechanism fails to detect natively-unsupported 4355 // pseudo-classes inside `:has()` (such as `:has(:contains("Foo"))`) 4356 // in browsers that parse the `:has()` argument as a forgiving selector list. 4357 // https://drafts.csswg.org/selectors/#relational now requires the argument 4358 // to be parsed unforgivingly, but browsers have not yet fully adjusted. 4359 rbuggyQSA.push(":has"); 4360 } 4361 rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join("|")); 4362 4363 /* Sorting 4364 ---------------------------------------------------------------------- */ 4365 4366 // Document order sorting 4367 sortOrder = function sortOrder(a, b) { 4368 // Flag for duplicate removal 4369 if (a === b) { 4370 hasDuplicate = true; 4371 return 0; 4372 } 4373 4374 // Sort on method existence if only one input has compareDocumentPosition 4375 var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; 4376 if (compare) { 4377 return compare; 4378 } 4379 4380 // Calculate position if both inputs belong to the same document 4381 // Support: IE 11+, Edge 17 - 18+ 4382 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 4383 // two documents; shallow comparisons work. 4384 // eslint-disable-next-line eqeqeq 4385 compare = (a.ownerDocument || a) == (b.ownerDocument || b) ? a.compareDocumentPosition(b) : 4386 // Otherwise we know they are disconnected 4387 1; 4388 4389 // Disconnected nodes 4390 if (compare & 1 || !support.sortDetached && b.compareDocumentPosition(a) === compare) { 4391 // Choose the first element that is related to our preferred document 4392 // Support: IE 11+, Edge 17 - 18+ 4393 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 4394 // two documents; shallow comparisons work. 4395 // eslint-disable-next-line eqeqeq 4396 if (a === document || a.ownerDocument == preferredDoc && find.contains(preferredDoc, a)) { 4397 return -1; 4398 } 4399 4400 // Support: IE 11+, Edge 17 - 18+ 4401 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 4402 // two documents; shallow comparisons work. 4403 // eslint-disable-next-line eqeqeq 4404 if (b === document || b.ownerDocument == preferredDoc && find.contains(preferredDoc, b)) { 4405 return 1; 4406 } 4407 4408 // Maintain original order 4409 return sortInput ? indexOf.call(sortInput, a) - indexOf.call(sortInput, b) : 0; 4410 } 4411 return compare & 4 ? -1 : 1; 4412 }; 4413 return document; 4414 } 4415 find.matches = function (expr, elements) { 4416 return find(expr, null, null, elements); 4417 }; 4418 find.matchesSelector = function (elem, expr) { 4419 setDocument(elem); 4420 if (documentIsHTML && !nonnativeSelectorCache[expr + " "] && (!rbuggyQSA || !rbuggyQSA.test(expr))) { 4421 try { 4422 var ret = matches.call(elem, expr); 4423 4424 // IE 9's matchesSelector returns false on disconnected nodes 4425 if (ret || support.disconnectedMatch || 4426 // As well, disconnected nodes are said to be in a document 4427 // fragment in IE 9 4428 elem.document && elem.document.nodeType !== 11) { 4429 return ret; 4430 } 4431 } catch (e) { 4432 nonnativeSelectorCache(expr, true); 4433 } 4434 } 4435 return find(expr, document, null, [elem]).length > 0; 4436 }; 4437 find.contains = function (context, elem) { 4438 // Set document vars if needed 4439 // Support: IE 11+, Edge 17 - 18+ 4440 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 4441 // two documents; shallow comparisons work. 4442 // eslint-disable-next-line eqeqeq 4443 if ((context.ownerDocument || context) != document) { 4444 setDocument(context); 4445 } 4446 return _jQuery2.contains(context, elem); 4447 }; 4448 find.attr = function (elem, name) { 4449 // Set document vars if needed 4450 // Support: IE 11+, Edge 17 - 18+ 4451 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 4452 // two documents; shallow comparisons work. 4453 // eslint-disable-next-line eqeqeq 4454 if ((elem.ownerDocument || elem) != document) { 4455 setDocument(elem); 4456 } 4457 var fn = Expr.attrHandle[name.toLowerCase()], 4458 // Don't get fooled by Object.prototype properties (see trac-13807) 4459 val = fn && hasOwn.call(Expr.attrHandle, name.toLowerCase()) ? fn(elem, name, !documentIsHTML) : undefined; 4460 if (val !== undefined) { 4461 return val; 4462 } 4463 return elem.getAttribute(name); 4464 }; 4465 find.error = function (msg) { 4466 throw new Error("Syntax error, unrecognized expression: " + msg); 4467 }; 4468 4469 /** 4470 * Document sorting and removing duplicates 4471 * @param {ArrayLike} results 4472 */ 4473 _jQuery2.uniqueSort = function (results) { 4474 var elem, 4475 duplicates = [], 4476 j = 0, 4477 i = 0; 4478 4479 // Unless we *know* we can detect duplicates, assume their presence 4480 // 4481 // Support: Android <=4.0+ 4482 // Testing for detecting duplicates is unpredictable so instead assume we can't 4483 // depend on duplicate detection in all browsers without a stable sort. 4484 hasDuplicate = !support.sortStable; 4485 sortInput = !support.sortStable && _slice.call(results, 0); 4486 sort.call(results, sortOrder); 4487 if (hasDuplicate) { 4488 while (elem = results[i++]) { 4489 if (elem === results[i]) { 4490 j = duplicates.push(i); 4491 } 4492 } 4493 while (j--) { 4494 splice.call(results, duplicates[j], 1); 4495 } 4496 } 4497 4498 // Clear input after sorting to release objects 4499 // See https://github.com/jquery/sizzle/pull/225 4500 sortInput = null; 4501 return results; 4502 }; 4503 _jQuery2.fn.uniqueSort = function () { 4504 return this.pushStack(_jQuery2.uniqueSort(_slice.apply(this))); 4505 }; 4506 Expr = _jQuery2.expr = { 4507 // Can be adjusted by the user 4508 cacheLength: 50, 4509 createPseudo: markFunction, 4510 match: matchExpr, 4511 attrHandle: {}, 4512 find: {}, 4513 relative: { 4514 ">": { 4515 dir: "parentNode", 4516 first: true 4517 }, 4518 " ": { 4519 dir: "parentNode" 4520 }, 4521 "+": { 4522 dir: "previousSibling", 4523 first: true 4524 }, 4525 "~": { 4526 dir: "previousSibling" 4527 } 4528 }, 4529 preFilter: { 4530 ATTR: function ATTR(match) { 4531 match[1] = match[1].replace(runescape, funescape); 4532 4533 // Move the given value to match[3] whether quoted or unquoted 4534 match[3] = (match[3] || match[4] || match[5] || "").replace(runescape, funescape); 4535 if (match[2] === "~=") { 4536 match[3] = " " + match[3] + " "; 4537 } 4538 return match.slice(0, 4); 4539 }, 4540 CHILD: function CHILD(match) { 4541 /* matches from matchExpr["CHILD"] 4542 1 type (only|nth|...) 4543 2 what (child|of-type) 4544 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) 4545 4 xn-component of xn+y argument ([+-]?\d*n|) 4546 5 sign of xn-component 4547 6 x of xn-component 4548 7 sign of y-component 4549 8 y of y-component 4550 */ 4551 match[1] = match[1].toLowerCase(); 4552 if (match[1].slice(0, 3) === "nth") { 4553 // nth-* requires argument 4554 if (!match[3]) { 4555 find.error(match[0]); 4556 } 4557 4558 // numeric x and y parameters for Expr.filter.CHILD 4559 // remember that false/true cast respectively to 0/1 4560 match[4] = +(match[4] ? match[5] + (match[6] || 1) : 2 * (match[3] === "even" || match[3] === "odd")); 4561 match[5] = +(match[7] + match[8] || match[3] === "odd"); 4562 4563 // other types prohibit arguments 4564 } else if (match[3]) { 4565 find.error(match[0]); 4566 } 4567 return match; 4568 }, 4569 PSEUDO: function PSEUDO(match) { 4570 var excess, 4571 unquoted = !match[6] && match[2]; 4572 if (matchExpr.CHILD.test(match[0])) { 4573 return null; 4574 } 4575 4576 // Accept quoted arguments as-is 4577 if (match[3]) { 4578 match[2] = match[4] || match[5] || ""; 4579 4580 // Strip excess characters from unquoted arguments 4581 } else if (unquoted && rpseudo.test(unquoted) && ( 4582 // Get excess from tokenize (recursively) 4583 excess = tokenize(unquoted, true)) && ( 4584 // advance to the next closing parenthesis 4585 excess = unquoted.indexOf(")", unquoted.length - excess) - unquoted.length)) { 4586 // excess is a negative index 4587 match[0] = match[0].slice(0, excess); 4588 match[2] = unquoted.slice(0, excess); 4589 } 4590 4591 // Return only captures needed by the pseudo filter method (type and argument) 4592 return match.slice(0, 3); 4593 } 4594 }, 4595 filter: { 4596 TAG: function TAG(nodeNameSelector) { 4597 var expectedNodeName = nodeNameSelector.replace(runescape, funescape).toLowerCase(); 4598 return nodeNameSelector === "*" ? function () { 4599 return true; 4600 } : function (elem) { 4601 return nodeName(elem, expectedNodeName); 4602 }; 4603 }, 4604 CLASS: function CLASS(className) { 4605 var pattern = classCache[className + " "]; 4606 return pattern || (pattern = new RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)")) && classCache(className, function (elem) { 4607 return pattern.test(typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || ""); 4608 }); 4609 }, 4610 ATTR: function ATTR(name, operator, check) { 4611 return function (elem) { 4612 var result = find.attr(elem, name); 4613 if (result == null) { 4614 return operator === "!="; 4615 } 4616 if (!operator) { 4617 return true; 4618 } 4619 result += ""; 4620 if (operator === "=") { 4621 return result === check; 4622 } 4623 if (operator === "!=") { 4624 return result !== check; 4625 } 4626 if (operator === "^=") { 4627 return check && result.indexOf(check) === 0; 4628 } 4629 if (operator === "*=") { 4630 return check && result.indexOf(check) > -1; 4631 } 4632 if (operator === "$=") { 4633 return check && result.slice(-check.length) === check; 4634 } 4635 if (operator === "~=") { 4636 return (" " + result.replace(rwhitespace, " ") + " ").indexOf(check) > -1; 4637 } 4638 if (operator === "|=") { 4639 return result === check || result.slice(0, check.length + 1) === check + "-"; 4640 } 4641 return false; 4642 }; 4643 }, 4644 CHILD: function CHILD(type, what, _argument, first, last) { 4645 var simple = type.slice(0, 3) !== "nth", 4646 forward = type.slice(-4) !== "last", 4647 ofType = what === "of-type"; 4648 return first === 1 && last === 0 ? 4649 // Shortcut for :nth-*(n) 4650 function (elem) { 4651 return !!elem.parentNode; 4652 } : function (elem, _context, xml) { 4653 var cache, 4654 outerCache, 4655 node, 4656 nodeIndex, 4657 start, 4658 dir = simple !== forward ? "nextSibling" : "previousSibling", 4659 parent = elem.parentNode, 4660 name = ofType && elem.nodeName.toLowerCase(), 4661 useCache = !xml && !ofType, 4662 diff = false; 4663 if (parent) { 4664 // :(first|last|only)-(child|of-type) 4665 if (simple) { 4666 while (dir) { 4667 node = elem; 4668 while (node = node[dir]) { 4669 if (ofType ? nodeName(node, name) : node.nodeType === 1) { 4670 return false; 4671 } 4672 } 4673 4674 // Reverse direction for :only-* (if we haven't yet done so) 4675 start = dir = type === "only" && !start && "nextSibling"; 4676 } 4677 return true; 4678 } 4679 start = [forward ? parent.firstChild : parent.lastChild]; 4680 4681 // non-xml :nth-child(...) stores cache data on `parent` 4682 if (forward && useCache) { 4683 // Seek `elem` from a previously-cached index 4684 outerCache = parent[expando] || (parent[expando] = {}); 4685 cache = outerCache[type] || []; 4686 nodeIndex = cache[0] === dirruns && cache[1]; 4687 diff = nodeIndex && cache[2]; 4688 node = nodeIndex && parent.childNodes[nodeIndex]; 4689 while (node = ++nodeIndex && node && node[dir] || ( 4690 // Fallback to seeking `elem` from the start 4691 diff = nodeIndex = 0) || start.pop()) { 4692 // When found, cache indexes on `parent` and break 4693 if (node.nodeType === 1 && ++diff && node === elem) { 4694 outerCache[type] = [dirruns, nodeIndex, diff]; 4695 break; 4696 } 4697 } 4698 } else { 4699 // Use previously-cached element index if available 4700 if (useCache) { 4701 outerCache = elem[expando] || (elem[expando] = {}); 4702 cache = outerCache[type] || []; 4703 nodeIndex = cache[0] === dirruns && cache[1]; 4704 diff = nodeIndex; 4705 } 4706 4707 // xml :nth-child(...) 4708 // or :nth-last-child(...) or :nth(-last)?-of-type(...) 4709 if (diff === false) { 4710 // Use the same loop as above to seek `elem` from the start 4711 while (node = ++nodeIndex && node && node[dir] || (diff = nodeIndex = 0) || start.pop()) { 4712 if ((ofType ? nodeName(node, name) : node.nodeType === 1) && ++diff) { 4713 // Cache the index of each encountered element 4714 if (useCache) { 4715 outerCache = node[expando] || (node[expando] = {}); 4716 outerCache[type] = [dirruns, diff]; 4717 } 4718 if (node === elem) { 4719 break; 4720 } 4721 } 4722 } 4723 } 4724 } 4725 4726 // Incorporate the offset, then check against cycle size 4727 diff -= last; 4728 return diff === first || diff % first === 0 && diff / first >= 0; 4729 } 4730 }; 4731 }, 4732 PSEUDO: function PSEUDO(pseudo, argument) { 4733 // pseudo-class names are case-insensitive 4734 // https://www.w3.org/TR/selectors/#pseudo-classes 4735 // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters 4736 // Remember that setFilters inherits from pseudos 4737 var args, 4738 fn = Expr.pseudos[pseudo] || Expr.setFilters[pseudo.toLowerCase()] || find.error("unsupported pseudo: " + pseudo); 4739 4740 // The user may use createPseudo to indicate that 4741 // arguments are needed to create the filter function 4742 // just as jQuery does 4743 if (fn[expando]) { 4744 return fn(argument); 4745 } 4746 4747 // But maintain support for old signatures 4748 if (fn.length > 1) { 4749 args = [pseudo, pseudo, "", argument]; 4750 return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase()) ? markFunction(function (seed, matches) { 4751 var idx, 4752 matched = fn(seed, argument), 4753 i = matched.length; 4754 while (i--) { 4755 idx = indexOf.call(seed, matched[i]); 4756 seed[idx] = !(matches[idx] = matched[i]); 4757 } 4758 }) : function (elem) { 4759 return fn(elem, 0, args); 4760 }; 4761 } 4762 return fn; 4763 } 4764 }, 4765 pseudos: { 4766 // Potentially complex pseudos 4767 not: markFunction(function (selector) { 4768 // Trim the selector passed to compile 4769 // to avoid treating leading and trailing 4770 // spaces as combinators 4771 var input = [], 4772 results = [], 4773 matcher = compile(selector.replace(rtrimCSS, "$1")); 4774 return matcher[expando] ? markFunction(function (seed, matches, _context, xml) { 4775 var elem, 4776 unmatched = matcher(seed, null, xml, []), 4777 i = seed.length; 4778 4779 // Match elements unmatched by `matcher` 4780 while (i--) { 4781 if (elem = unmatched[i]) { 4782 seed[i] = !(matches[i] = elem); 4783 } 4784 } 4785 }) : function (elem, _context, xml) { 4786 input[0] = elem; 4787 matcher(input, null, xml, results); 4788 4789 // Don't keep the element 4790 // (see https://github.com/jquery/sizzle/issues/299) 4791 input[0] = null; 4792 return !results.pop(); 4793 }; 4794 }), 4795 has: markFunction(function (selector) { 4796 return function (elem) { 4797 return find(selector, elem).length > 0; 4798 }; 4799 }), 4800 contains: markFunction(function (text) { 4801 text = text.replace(runescape, funescape); 4802 return function (elem) { 4803 return (elem.textContent || _jQuery2.text(elem)).indexOf(text) > -1; 4804 }; 4805 }), 4806 // "Whether an element is represented by a :lang() selector 4807 // is based solely on the element's language value 4808 // being equal to the identifier C, 4809 // or beginning with the identifier C immediately followed by "-". 4810 // The matching of C against the element's language value is performed case-insensitively. 4811 // The identifier C does not have to be a valid language name." 4812 // https://www.w3.org/TR/selectors/#lang-pseudo 4813 lang: markFunction(function (lang) { 4814 // lang value must be a valid identifier 4815 if (!ridentifier.test(lang || "")) { 4816 find.error("unsupported lang: " + lang); 4817 } 4818 lang = lang.replace(runescape, funescape).toLowerCase(); 4819 return function (elem) { 4820 var elemLang; 4821 do { 4822 if (elemLang = documentIsHTML ? elem.lang : elem.getAttribute("xml:lang") || elem.getAttribute("lang")) { 4823 elemLang = elemLang.toLowerCase(); 4824 return elemLang === lang || elemLang.indexOf(lang + "-") === 0; 4825 } 4826 } while ((elem = elem.parentNode) && elem.nodeType === 1); 4827 return false; 4828 }; 4829 }), 4830 // Miscellaneous 4831 target: function target(elem) { 4832 var hash = window.location && window.location.hash; 4833 return hash && hash.slice(1) === elem.id; 4834 }, 4835 root: function root(elem) { 4836 return elem === documentElement; 4837 }, 4838 focus: function focus(elem) { 4839 return elem === safeActiveElement() && document.hasFocus() && !!(elem.type || elem.href || ~elem.tabIndex); 4840 }, 4841 // Boolean properties 4842 enabled: createDisabledPseudo(false), 4843 disabled: createDisabledPseudo(true), 4844 checked: function checked(elem) { 4845 // In CSS3, :checked should return both checked and selected elements 4846 // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked 4847 return nodeName(elem, "input") && !!elem.checked || nodeName(elem, "option") && !!elem.selected; 4848 }, 4849 selected: function selected(elem) { 4850 // Support: IE <=11+ 4851 // Accessing the selectedIndex property 4852 // forces the browser to treat the default option as 4853 // selected when in an optgroup. 4854 if (elem.parentNode) { 4855 // eslint-disable-next-line no-unused-expressions 4856 elem.parentNode.selectedIndex; 4857 } 4858 return elem.selected === true; 4859 }, 4860 // Contents 4861 empty: function empty(elem) { 4862 // https://www.w3.org/TR/selectors/#empty-pseudo 4863 // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), 4864 // but not by others (comment: 8; processing instruction: 7; etc.) 4865 // nodeType < 6 works because attributes (2) do not appear as children 4866 for (elem = elem.firstChild; elem; elem = elem.nextSibling) { 4867 if (elem.nodeType < 6) { 4868 return false; 4869 } 4870 } 4871 return true; 4872 }, 4873 parent: function parent(elem) { 4874 return !Expr.pseudos.empty(elem); 4875 }, 4876 // Element/input types 4877 header: function header(elem) { 4878 return rheader.test(elem.nodeName); 4879 }, 4880 input: function input(elem) { 4881 return rinputs.test(elem.nodeName); 4882 }, 4883 button: function button(elem) { 4884 return nodeName(elem, "input") && elem.type === "button" || nodeName(elem, "button"); 4885 }, 4886 text: function text(elem) { 4887 var attr; 4888 return nodeName(elem, "input") && elem.type === "text" && ( 4889 // Support: IE <10 only 4890 // New HTML5 attribute values (e.g., "search") appear 4891 // with elem.type === "text" 4892 (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text"); 4893 }, 4894 // Position-in-collection 4895 first: createPositionalPseudo(function () { 4896 return [0]; 4897 }), 4898 last: createPositionalPseudo(function (_matchIndexes, length) { 4899 return [length - 1]; 4900 }), 4901 eq: createPositionalPseudo(function (_matchIndexes, length, argument) { 4902 return [argument < 0 ? argument + length : argument]; 4903 }), 4904 even: createPositionalPseudo(function (matchIndexes, length) { 4905 var i = 0; 4906 for (; i < length; i += 2) { 4907 matchIndexes.push(i); 4908 } 4909 return matchIndexes; 4910 }), 4911 odd: createPositionalPseudo(function (matchIndexes, length) { 4912 var i = 1; 4913 for (; i < length; i += 2) { 4914 matchIndexes.push(i); 4915 } 4916 return matchIndexes; 4917 }), 4918 lt: createPositionalPseudo(function (matchIndexes, length, argument) { 4919 var i; 4920 if (argument < 0) { 4921 i = argument + length; 4922 } else if (argument > length) { 4923 i = length; 4924 } else { 4925 i = argument; 4926 } 4927 for (; --i >= 0;) { 4928 matchIndexes.push(i); 4929 } 4930 return matchIndexes; 4931 }), 4932 gt: createPositionalPseudo(function (matchIndexes, length, argument) { 4933 var i = argument < 0 ? argument + length : argument; 4934 for (; ++i < length;) { 4935 matchIndexes.push(i); 4936 } 4937 return matchIndexes; 4938 }) 4939 } 4940 }; 4941 Expr.pseudos.nth = Expr.pseudos.eq; 4942 4943 // Add button/input type pseudos 4944 for (i in { 4945 radio: true, 4946 checkbox: true, 4947 file: true, 4948 password: true, 4949 image: true 4950 }) { 4951 Expr.pseudos[i] = createInputPseudo(i); 4952 } 4953 for (i in { 4954 submit: true, 4955 reset: true 4956 }) { 4957 Expr.pseudos[i] = createButtonPseudo(i); 4958 } 4959 4960 // Easy API for creating new setFilters 4961 function setFilters() {} 4962 setFilters.prototype = Expr.filters = Expr.pseudos; 4963 Expr.setFilters = new setFilters(); 4964 function tokenize(selector, parseOnly) { 4965 var matched, 4966 match, 4967 tokens, 4968 type, 4969 soFar, 4970 groups, 4971 preFilters, 4972 cached = tokenCache[selector + " "]; 4973 if (cached) { 4974 return parseOnly ? 0 : cached.slice(0); 4975 } 4976 soFar = selector; 4977 groups = []; 4978 preFilters = Expr.preFilter; 4979 while (soFar) { 4980 // Comma and first run 4981 if (!matched || (match = rcomma.exec(soFar))) { 4982 if (match) { 4983 // Don't consume trailing commas as valid 4984 soFar = soFar.slice(match[0].length) || soFar; 4985 } 4986 groups.push(tokens = []); 4987 } 4988 matched = false; 4989 4990 // Combinators 4991 if (match = rleadingCombinator.exec(soFar)) { 4992 matched = match.shift(); 4993 tokens.push({ 4994 value: matched, 4995 // Cast descendant combinators to space 4996 type: match[0].replace(rtrimCSS, " ") 4997 }); 4998 soFar = soFar.slice(matched.length); 4999 } 5000 5001 // Filters 5002 for (type in Expr.filter) { 5003 if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match)))) { 5004 matched = match.shift(); 5005 tokens.push({ 5006 value: matched, 5007 type: type, 5008 matches: match 5009 }); 5010 soFar = soFar.slice(matched.length); 5011 } 5012 } 5013 if (!matched) { 5014 break; 5015 } 5016 } 5017 5018 // Return the length of the invalid excess 5019 // if we're just parsing 5020 // Otherwise, throw an error or return tokens 5021 if (parseOnly) { 5022 return soFar.length; 5023 } 5024 return soFar ? find.error(selector) : 5025 // Cache the tokens 5026 tokenCache(selector, groups).slice(0); 5027 } 5028 function toSelector(tokens) { 5029 var i = 0, 5030 len = tokens.length, 5031 selector = ""; 5032 for (; i < len; i++) { 5033 selector += tokens[i].value; 5034 } 5035 return selector; 5036 } 5037 function addCombinator(matcher, combinator, base) { 5038 var dir = combinator.dir, 5039 skip = combinator.next, 5040 key = skip || dir, 5041 checkNonElements = base && key === "parentNode", 5042 doneName = done++; 5043 return combinator.first ? 5044 // Check against closest ancestor/preceding element 5045 function (elem, context, xml) { 5046 while (elem = elem[dir]) { 5047 if (elem.nodeType === 1 || checkNonElements) { 5048 return matcher(elem, context, xml); 5049 } 5050 } 5051 return false; 5052 } : 5053 // Check against all ancestor/preceding elements 5054 function (elem, context, xml) { 5055 var oldCache, 5056 outerCache, 5057 newCache = [dirruns, doneName]; 5058 5059 // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching 5060 if (xml) { 5061 while (elem = elem[dir]) { 5062 if (elem.nodeType === 1 || checkNonElements) { 5063 if (matcher(elem, context, xml)) { 5064 return true; 5065 } 5066 } 5067 } 5068 } else { 5069 while (elem = elem[dir]) { 5070 if (elem.nodeType === 1 || checkNonElements) { 5071 outerCache = elem[expando] || (elem[expando] = {}); 5072 if (skip && nodeName(elem, skip)) { 5073 elem = elem[dir] || elem; 5074 } else if ((oldCache = outerCache[key]) && oldCache[0] === dirruns && oldCache[1] === doneName) { 5075 // Assign to newCache so results back-propagate to previous elements 5076 return newCache[2] = oldCache[2]; 5077 } else { 5078 // Reuse newcache so results back-propagate to previous elements 5079 outerCache[key] = newCache; 5080 5081 // A match means we're done; a fail means we have to keep checking 5082 if (newCache[2] = matcher(elem, context, xml)) { 5083 return true; 5084 } 5085 } 5086 } 5087 } 5088 } 5089 return false; 5090 }; 5091 } 5092 function elementMatcher(matchers) { 5093 return matchers.length > 1 ? function (elem, context, xml) { 5094 var i = matchers.length; 5095 while (i--) { 5096 if (!matchers[i](elem, context, xml)) { 5097 return false; 5098 } 5099 } 5100 return true; 5101 } : matchers[0]; 5102 } 5103 function multipleContexts(selector, contexts, results) { 5104 var i = 0, 5105 len = contexts.length; 5106 for (; i < len; i++) { 5107 find(selector, contexts[i], results); 5108 } 5109 return results; 5110 } 5111 function condense(unmatched, map, filter, context, xml) { 5112 var elem, 5113 newUnmatched = [], 5114 i = 0, 5115 len = unmatched.length, 5116 mapped = map != null; 5117 for (; i < len; i++) { 5118 if (elem = unmatched[i]) { 5119 if (!filter || filter(elem, context, xml)) { 5120 newUnmatched.push(elem); 5121 if (mapped) { 5122 map.push(i); 5123 } 5124 } 5125 } 5126 } 5127 return newUnmatched; 5128 } 5129 function setMatcher(preFilter, selector, matcher, postFilter, postFinder, postSelector) { 5130 if (postFilter && !postFilter[expando]) { 5131 postFilter = setMatcher(postFilter); 5132 } 5133 if (postFinder && !postFinder[expando]) { 5134 postFinder = setMatcher(postFinder, postSelector); 5135 } 5136 return markFunction(function (seed, results, context, xml) { 5137 var temp, 5138 i, 5139 elem, 5140 matcherOut, 5141 preMap = [], 5142 postMap = [], 5143 preexisting = results.length, 5144 // Get initial elements from seed or context 5145 elems = seed || multipleContexts(selector || "*", context.nodeType ? [context] : context, []), 5146 // Prefilter to get matcher input, preserving a map for seed-results synchronization 5147 matcherIn = preFilter && (seed || !selector) ? condense(elems, preMap, preFilter, context, xml) : elems; 5148 if (matcher) { 5149 // If we have a postFinder, or filtered seed, or non-seed postFilter 5150 // or preexisting results, 5151 matcherOut = postFinder || (seed ? preFilter : preexisting || postFilter) ? 5152 // ...intermediate processing is necessary 5153 [] : 5154 // ...otherwise use results directly 5155 results; 5156 5157 // Find primary matches 5158 matcher(matcherIn, matcherOut, context, xml); 5159 } else { 5160 matcherOut = matcherIn; 5161 } 5162 5163 // Apply postFilter 5164 if (postFilter) { 5165 temp = condense(matcherOut, postMap); 5166 postFilter(temp, [], context, xml); 5167 5168 // Un-match failing elements by moving them back to matcherIn 5169 i = temp.length; 5170 while (i--) { 5171 if (elem = temp[i]) { 5172 matcherOut[postMap[i]] = !(matcherIn[postMap[i]] = elem); 5173 } 5174 } 5175 } 5176 if (seed) { 5177 if (postFinder || preFilter) { 5178 if (postFinder) { 5179 // Get the final matcherOut by condensing this intermediate into postFinder contexts 5180 temp = []; 5181 i = matcherOut.length; 5182 while (i--) { 5183 if (elem = matcherOut[i]) { 5184 // Restore matcherIn since elem is not yet a final match 5185 temp.push(matcherIn[i] = elem); 5186 } 5187 } 5188 postFinder(null, matcherOut = [], temp, xml); 5189 } 5190 5191 // Move matched elements from seed to results to keep them synchronized 5192 i = matcherOut.length; 5193 while (i--) { 5194 if ((elem = matcherOut[i]) && (temp = postFinder ? indexOf.call(seed, elem) : preMap[i]) > -1) { 5195 seed[temp] = !(results[temp] = elem); 5196 } 5197 } 5198 } 5199 5200 // Add elements to results, through postFinder if defined 5201 } else { 5202 matcherOut = condense(matcherOut === results ? matcherOut.splice(preexisting, matcherOut.length) : matcherOut); 5203 if (postFinder) { 5204 postFinder(null, results, matcherOut, xml); 5205 } else { 5206 push.apply(results, matcherOut); 5207 } 5208 } 5209 }); 5210 } 5211 function matcherFromTokens(tokens) { 5212 var checkContext, 5213 matcher, 5214 j, 5215 len = tokens.length, 5216 leadingRelative = Expr.relative[tokens[0].type], 5217 implicitRelative = leadingRelative || Expr.relative[" "], 5218 i = leadingRelative ? 1 : 0, 5219 // The foundational matcher ensures that elements are reachable from top-level context(s) 5220 matchContext = addCombinator(function (elem) { 5221 return elem === checkContext; 5222 }, implicitRelative, true), 5223 matchAnyContext = addCombinator(function (elem) { 5224 return indexOf.call(checkContext, elem) > -1; 5225 }, implicitRelative, true), 5226 matchers = [function (elem, context, xml) { 5227 // Support: IE 11+, Edge 17 - 18+ 5228 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 5229 // two documents; shallow comparisons work. 5230 // eslint-disable-next-line eqeqeq 5231 var ret = !leadingRelative && (xml || context != outermostContext) || ((checkContext = context).nodeType ? matchContext(elem, context, xml) : matchAnyContext(elem, context, xml)); 5232 5233 // Avoid hanging onto element 5234 // (see https://github.com/jquery/sizzle/issues/299) 5235 checkContext = null; 5236 return ret; 5237 }]; 5238 for (; i < len; i++) { 5239 if (matcher = Expr.relative[tokens[i].type]) { 5240 matchers = [addCombinator(elementMatcher(matchers), matcher)]; 5241 } else { 5242 matcher = Expr.filter[tokens[i].type].apply(null, tokens[i].matches); 5243 5244 // Return special upon seeing a positional matcher 5245 if (matcher[expando]) { 5246 // Find the next relative operator (if any) for proper handling 5247 j = ++i; 5248 for (; j < len; j++) { 5249 if (Expr.relative[tokens[j].type]) { 5250 break; 5251 } 5252 } 5253 return setMatcher(i > 1 && elementMatcher(matchers), i > 1 && toSelector( 5254 // If the preceding token was a descendant combinator, insert an implicit any-element `*` 5255 tokens.slice(0, i - 1).concat({ 5256 value: tokens[i - 2].type === " " ? "*" : "" 5257 })).replace(rtrimCSS, "$1"), matcher, i < j && matcherFromTokens(tokens.slice(i, j)), j < len && matcherFromTokens(tokens = tokens.slice(j)), j < len && toSelector(tokens)); 5258 } 5259 matchers.push(matcher); 5260 } 5261 } 5262 return elementMatcher(matchers); 5263 } 5264 function matcherFromGroupMatchers(elementMatchers, setMatchers) { 5265 var bySet = setMatchers.length > 0, 5266 byElement = elementMatchers.length > 0, 5267 superMatcher = function superMatcher(seed, context, xml, results, outermost) { 5268 var elem, 5269 j, 5270 matcher, 5271 matchedCount = 0, 5272 i = "0", 5273 unmatched = seed && [], 5274 setMatched = [], 5275 contextBackup = outermostContext, 5276 // We must always have either seed elements or outermost context 5277 elems = seed || byElement && Expr.find.TAG("*", outermost), 5278 // Use integer dirruns iff this is the outermost matcher 5279 dirrunsUnique = dirruns += contextBackup == null ? 1 : Math.random() || 0.1, 5280 len = elems.length; 5281 if (outermost) { 5282 // Support: IE 11+, Edge 17 - 18+ 5283 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 5284 // two documents; shallow comparisons work. 5285 // eslint-disable-next-line eqeqeq 5286 outermostContext = context == document || context || outermost; 5287 } 5288 5289 // Add elements passing elementMatchers directly to results 5290 // Support: iOS <=7 - 9 only 5291 // Tolerate NodeList properties (IE: "length"; Safari: <number>) matching 5292 // elements by id. (see trac-14142) 5293 for (; i !== len && (elem = elems[i]) != null; i++) { 5294 if (byElement && elem) { 5295 j = 0; 5296 5297 // Support: IE 11+, Edge 17 - 18+ 5298 // IE/Edge sometimes throw a "Permission denied" error when strict-comparing 5299 // two documents; shallow comparisons work. 5300 // eslint-disable-next-line eqeqeq 5301 if (!context && elem.ownerDocument != document) { 5302 setDocument(elem); 5303 xml = !documentIsHTML; 5304 } 5305 while (matcher = elementMatchers[j++]) { 5306 if (matcher(elem, context || document, xml)) { 5307 push.call(results, elem); 5308 break; 5309 } 5310 } 5311 if (outermost) { 5312 dirruns = dirrunsUnique; 5313 } 5314 } 5315 5316 // Track unmatched elements for set filters 5317 if (bySet) { 5318 // They will have gone through all possible matchers 5319 if (elem = !matcher && elem) { 5320 matchedCount--; 5321 } 5322 5323 // Lengthen the array for every element, matched or not 5324 if (seed) { 5325 unmatched.push(elem); 5326 } 5327 } 5328 } 5329 5330 // `i` is now the count of elements visited above, and adding it to `matchedCount` 5331 // makes the latter nonnegative. 5332 matchedCount += i; 5333 5334 // Apply set filters to unmatched elements 5335 // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` 5336 // equals `i`), unless we didn't visit _any_ elements in the above loop because we have 5337 // no element matchers and no seed. 5338 // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that 5339 // case, which will result in a "00" `matchedCount` that differs from `i` but is also 5340 // numerically zero. 5341 if (bySet && i !== matchedCount) { 5342 j = 0; 5343 while (matcher = setMatchers[j++]) { 5344 matcher(unmatched, setMatched, context, xml); 5345 } 5346 if (seed) { 5347 // Reintegrate element matches to eliminate the need for sorting 5348 if (matchedCount > 0) { 5349 while (i--) { 5350 if (!(unmatched[i] || setMatched[i])) { 5351 setMatched[i] = pop.call(results); 5352 } 5353 } 5354 } 5355 5356 // Discard index placeholder values to get only actual matches 5357 setMatched = condense(setMatched); 5358 } 5359 5360 // Add matches to results 5361 push.apply(results, setMatched); 5362 5363 // Seedless set matches succeeding multiple successful matchers stipulate sorting 5364 if (outermost && !seed && setMatched.length > 0 && matchedCount + setMatchers.length > 1) { 5365 _jQuery2.uniqueSort(results); 5366 } 5367 } 5368 5369 // Override manipulation of globals by nested matchers 5370 if (outermost) { 5371 dirruns = dirrunsUnique; 5372 outermostContext = contextBackup; 5373 } 5374 return unmatched; 5375 }; 5376 return bySet ? markFunction(superMatcher) : superMatcher; 5377 } 5378 function compile(selector, match /* Internal Use Only */) { 5379 var i, 5380 setMatchers = [], 5381 elementMatchers = [], 5382 cached = compilerCache[selector + " "]; 5383 if (!cached) { 5384 // Generate a function of recursive functions that can be used to check each element 5385 if (!match) { 5386 match = tokenize(selector); 5387 } 5388 i = match.length; 5389 while (i--) { 5390 cached = matcherFromTokens(match[i]); 5391 if (cached[expando]) { 5392 setMatchers.push(cached); 5393 } else { 5394 elementMatchers.push(cached); 5395 } 5396 } 5397 5398 // Cache the compiled function 5399 cached = compilerCache(selector, matcherFromGroupMatchers(elementMatchers, setMatchers)); 5400 5401 // Save selector and tokenization 5402 cached.selector = selector; 5403 } 5404 return cached; 5405 } 5406 5407 /** 5408 * A low-level selection function that works with jQuery's compiled 5409 * selector functions 5410 * @param {String|Function} selector A selector or a pre-compiled 5411 * selector function built with jQuery selector compile 5412 * @param {Element} context 5413 * @param {Array} [results] 5414 * @param {Array} [seed] A set of elements to match against 5415 */ 5416 function select(selector, context, results, seed) { 5417 var i, 5418 tokens, 5419 token, 5420 type, 5421 find, 5422 compiled = typeof selector === "function" && selector, 5423 match = !seed && tokenize(selector = compiled.selector || selector); 5424 results = results || []; 5425 5426 // Try to minimize operations if there is only one selector in the list and no seed 5427 // (the latter of which guarantees us context) 5428 if (match.length === 1) { 5429 // Reduce context if the leading compound selector is an ID 5430 tokens = match[0] = match[0].slice(0); 5431 if (tokens.length > 2 && (token = tokens[0]).type === "ID" && context.nodeType === 9 && documentIsHTML && Expr.relative[tokens[1].type]) { 5432 context = (Expr.find.ID(token.matches[0].replace(runescape, funescape), context) || [])[0]; 5433 if (!context) { 5434 return results; 5435 5436 // Precompiled matchers will still verify ancestry, so step up a level 5437 } else if (compiled) { 5438 context = context.parentNode; 5439 } 5440 selector = selector.slice(tokens.shift().value.length); 5441 } 5442 5443 // Fetch a seed set for right-to-left matching 5444 i = matchExpr.needsContext.test(selector) ? 0 : tokens.length; 5445 while (i--) { 5446 token = tokens[i]; 5447 5448 // Abort if we hit a combinator 5449 if (Expr.relative[type = token.type]) { 5450 break; 5451 } 5452 if (find = Expr.find[type]) { 5453 // Search, expanding context for leading sibling combinators 5454 if (seed = find(token.matches[0].replace(runescape, funescape), rsibling.test(tokens[0].type) && testContext(context.parentNode) || context)) { 5455 // If seed is empty or no tokens remain, we can return early 5456 tokens.splice(i, 1); 5457 selector = seed.length && toSelector(tokens); 5458 if (!selector) { 5459 push.apply(results, seed); 5460 return results; 5461 } 5462 break; 5463 } 5464 } 5465 } 5466 } 5467 5468 // Compile and execute a filtering function if one is not provided 5469 // Provide `match` to avoid retokenization if we modified the selector above 5470 (compiled || compile(selector, match))(seed, context, !documentIsHTML, results, !context || rsibling.test(selector) && testContext(context.parentNode) || context); 5471 return results; 5472 } 5473 5474 // One-time assignments 5475 5476 // Support: Android <=4.0 - 4.1+ 5477 // Sort stability 5478 support.sortStable = expando.split("").sort(sortOrder).join("") === expando; 5479 5480 // Initialize against the default document 5481 setDocument(); 5482 5483 // Support: Android <=4.0 - 4.1+ 5484 // Detached nodes confoundingly follow *each other* 5485 support.sortDetached = assert(function (el) { 5486 // Should return 1, but returns 4 (following) 5487 return el.compareDocumentPosition(document.createElement("fieldset")) & 1; 5488 }); 5489 _jQuery2.find = find; 5490 5491 // Deprecated 5492 _jQuery2.expr[":"] = _jQuery2.expr.pseudos; 5493 _jQuery2.unique = _jQuery2.uniqueSort; 5494 5495 // These have always been private, but they used to be documented as part of 5496 // Sizzle so let's maintain them for now for backwards compatibility purposes. 5497 find.compile = compile; 5498 find.select = select; 5499 find.setDocument = setDocument; 5500 find.tokenize = tokenize; 5501 find.escape = _jQuery2.escapeSelector; 5502 find.getText = _jQuery2.text; 5503 find.isXML = _jQuery2.isXMLDoc; 5504 find.selectors = _jQuery2.expr; 5505 find.support = _jQuery2.support; 5506 find.uniqueSort = _jQuery2.uniqueSort; 5507 5508 /* eslint-enable */ 5509 })(); 5510 var dir = function dir(elem, _dir, until) { 5511 var matched = [], 5512 truncate = until !== undefined; 5513 while ((elem = elem[_dir]) && elem.nodeType !== 9) { 5514 if (elem.nodeType === 1) { 5515 if (truncate && _jQuery2(elem).is(until)) { 5516 break; 5517 } 5518 matched.push(elem); 5519 } 5520 } 5521 return matched; 5522 }; 5523 var _siblings = function siblings(n, elem) { 5524 var matched = []; 5525 for (; n; n = n.nextSibling) { 5526 if (n.nodeType === 1 && n !== elem) { 5527 matched.push(n); 5528 } 5529 } 5530 return matched; 5531 }; 5532 var rneedsContext = _jQuery2.expr.match.needsContext; 5533 var rsingleTag = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i; 5534 5535 // Implement the identical functionality for filter and not 5536 function winnow(elements, qualifier, not) { 5537 if (isFunction(qualifier)) { 5538 return _jQuery2.grep(elements, function (elem, i) { 5539 return !!qualifier.call(elem, i, elem) !== not; 5540 }); 5541 } 5542 5543 // Single element 5544 if (qualifier.nodeType) { 5545 return _jQuery2.grep(elements, function (elem) { 5546 return elem === qualifier !== not; 5547 }); 5548 } 5549 5550 // Arraylike of elements (jQuery, arguments, Array) 5551 if (typeof qualifier !== "string") { 5552 return _jQuery2.grep(elements, function (elem) { 5553 return indexOf.call(qualifier, elem) > -1 !== not; 5554 }); 5555 } 5556 5557 // Filtered directly for both simple and complex selectors 5558 return _jQuery2.filter(qualifier, elements, not); 5559 } 5560 _jQuery2.filter = function (expr, elems, not) { 5561 var elem = elems[0]; 5562 if (not) { 5563 expr = ":not(" + expr + ")"; 5564 } 5565 if (elems.length === 1 && elem.nodeType === 1) { 5566 return _jQuery2.find.matchesSelector(elem, expr) ? [elem] : []; 5567 } 5568 return _jQuery2.find.matches(expr, _jQuery2.grep(elems, function (elem) { 5569 return elem.nodeType === 1; 5570 })); 5571 }; 5572 _jQuery2.fn.extend({ 5573 find: function find(selector) { 5574 var i, 5575 ret, 5576 len = this.length, 5577 self = this; 5578 if (typeof selector !== "string") { 5579 return this.pushStack(_jQuery2(selector).filter(function () { 5580 for (i = 0; i < len; i++) { 5581 if (_jQuery2.contains(self[i], this)) { 5582 return true; 5583 } 5584 } 5585 })); 5586 } 5587 ret = this.pushStack([]); 5588 for (i = 0; i < len; i++) { 5589 _jQuery2.find(selector, self[i], ret); 5590 } 5591 return len > 1 ? _jQuery2.uniqueSort(ret) : ret; 5592 }, 5593 filter: function filter(selector) { 5594 return this.pushStack(winnow(this, selector || [], false)); 5595 }, 5596 not: function not(selector) { 5597 return this.pushStack(winnow(this, selector || [], true)); 5598 }, 5599 is: function is(selector) { 5600 return !!winnow(this, 5601 // If this is a positional/relative selector, check membership in the returned set 5602 // so $("p:first").is("p:last") won't return true for a doc with two "p". 5603 typeof selector === "string" && rneedsContext.test(selector) ? _jQuery2(selector) : selector || [], false).length; 5604 } 5605 }); 5606 5607 // Initialize a jQuery object 5608 5609 // A central reference to the root jQuery(document) 5610 var rootjQuery, 5611 // A simple way to check for HTML strings 5612 // Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521) 5613 // Strict HTML recognition (trac-11290: must start with <) 5614 // Shortcut simple #id case for speed 5615 rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, 5616 init = _jQuery2.fn.init = function (selector, context, root) { 5617 var match, elem; 5618 5619 // HANDLE: $(""), $(null), $(undefined), $(false) 5620 if (!selector) { 5621 return this; 5622 } 5623 5624 // Method init() accepts an alternate rootjQuery 5625 // so migrate can support jQuery.sub (gh-2101) 5626 root = root || rootjQuery; 5627 5628 // Handle HTML strings 5629 if (typeof selector === "string") { 5630 if (selector[0] === "<" && selector[selector.length - 1] === ">" && selector.length >= 3) { 5631 // Assume that strings that start and end with <> are HTML and skip the regex check 5632 match = [null, selector, null]; 5633 } else { 5634 match = rquickExpr.exec(selector); 5635 } 5636 5637 // Match html or make sure no context is specified for #id 5638 if (match && (match[1] || !context)) { 5639 // HANDLE: $(html) -> $(array) 5640 if (match[1]) { 5641 context = context instanceof _jQuery2 ? context[0] : context; 5642 5643 // Option to run scripts is true for back-compat 5644 // Intentionally let the error be thrown if parseHTML is not present 5645 _jQuery2.merge(this, _jQuery2.parseHTML(match[1], context && context.nodeType ? context.ownerDocument || context : document, true)); 5646 5647 // HANDLE: $(html, props) 5648 if (rsingleTag.test(match[1]) && _jQuery2.isPlainObject(context)) { 5649 for (match in context) { 5650 // Properties of context are called as methods if possible 5651 if (isFunction(this[match])) { 5652 this[match](context[match]); 5653 5654 // ...and otherwise set as attributes 5655 } else { 5656 this.attr(match, context[match]); 5657 } 5658 } 5659 } 5660 return this; 5661 5662 // HANDLE: $(#id) 5663 } else { 5664 elem = document.getElementById(match[2]); 5665 if (elem) { 5666 // Inject the element directly into the jQuery object 5667 this[0] = elem; 5668 this.length = 1; 5669 } 5670 return this; 5671 } 5672 5673 // HANDLE: $(expr, $(...)) 5674 } else if (!context || context.jquery) { 5675 return (context || root).find(selector); 5676 5677 // HANDLE: $(expr, context) 5678 // (which is just equivalent to: $(context).find(expr) 5679 } else { 5680 return this.constructor(context).find(selector); 5681 } 5682 5683 // HANDLE: $(DOMElement) 5684 } else if (selector.nodeType) { 5685 this[0] = selector; 5686 this.length = 1; 5687 return this; 5688 5689 // HANDLE: $(function) 5690 // Shortcut for document ready 5691 } else if (isFunction(selector)) { 5692 return root.ready !== undefined ? root.ready(selector) : 5693 // Execute immediately if ready is not present 5694 selector(_jQuery2); 5695 } 5696 return _jQuery2.makeArray(selector, this); 5697 }; 5698 5699 // Give the init function the jQuery prototype for later instantiation 5700 init.prototype = _jQuery2.fn; 5701 5702 // Initialize central reference 5703 rootjQuery = _jQuery2(document); 5704 var rparentsprev = /^(?:parents|prev(?:Until|All))/, 5705 // Methods guaranteed to produce a unique set when starting from a unique set 5706 guaranteedUnique = { 5707 children: true, 5708 contents: true, 5709 next: true, 5710 prev: true 5711 }; 5712 _jQuery2.fn.extend({ 5713 has: function has(target) { 5714 var targets = _jQuery2(target, this), 5715 l = targets.length; 5716 return this.filter(function () { 5717 var i = 0; 5718 for (; i < l; i++) { 5719 if (_jQuery2.contains(this, targets[i])) { 5720 return true; 5721 } 5722 } 5723 }); 5724 }, 5725 closest: function closest(selectors, context) { 5726 var cur, 5727 i = 0, 5728 l = this.length, 5729 matched = [], 5730 targets = typeof selectors !== "string" && _jQuery2(selectors); 5731 5732 // Positional selectors never match, since there's no _selection_ context 5733 if (!rneedsContext.test(selectors)) { 5734 for (; i < l; i++) { 5735 for (cur = this[i]; cur && cur !== context; cur = cur.parentNode) { 5736 // Always skip document fragments 5737 if (cur.nodeType < 11 && (targets ? targets.index(cur) > -1 : 5738 // Don't pass non-elements to jQuery#find 5739 cur.nodeType === 1 && _jQuery2.find.matchesSelector(cur, selectors))) { 5740 matched.push(cur); 5741 break; 5742 } 5743 } 5744 } 5745 } 5746 return this.pushStack(matched.length > 1 ? _jQuery2.uniqueSort(matched) : matched); 5747 }, 5748 // Determine the position of an element within the set 5749 index: function index(elem) { 5750 // No argument, return index in parent 5751 if (!elem) { 5752 return this[0] && this[0].parentNode ? this.first().prevAll().length : -1; 5753 } 5754 5755 // Index in selector 5756 if (typeof elem === "string") { 5757 return indexOf.call(_jQuery2(elem), this[0]); 5758 } 5759 5760 // Locate the position of the desired element 5761 return indexOf.call(this, 5762 // If it receives a jQuery object, the first element is used 5763 elem.jquery ? elem[0] : elem); 5764 }, 5765 add: function add(selector, context) { 5766 return this.pushStack(_jQuery2.uniqueSort(_jQuery2.merge(this.get(), _jQuery2(selector, context)))); 5767 }, 5768 addBack: function addBack(selector) { 5769 return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector)); 5770 } 5771 }); 5772 function sibling(cur, dir) { 5773 while ((cur = cur[dir]) && cur.nodeType !== 1) {} 5774 return cur; 5775 } 5776 _jQuery2.each({ 5777 parent: function parent(elem) { 5778 var parent = elem.parentNode; 5779 return parent && parent.nodeType !== 11 ? parent : null; 5780 }, 5781 parents: function parents(elem) { 5782 return dir(elem, "parentNode"); 5783 }, 5784 parentsUntil: function parentsUntil(elem, _i, until) { 5785 return dir(elem, "parentNode", until); 5786 }, 5787 next: function next(elem) { 5788 return sibling(elem, "nextSibling"); 5789 }, 5790 prev: function prev(elem) { 5791 return sibling(elem, "previousSibling"); 5792 }, 5793 nextAll: function nextAll(elem) { 5794 return dir(elem, "nextSibling"); 5795 }, 5796 prevAll: function prevAll(elem) { 5797 return dir(elem, "previousSibling"); 5798 }, 5799 nextUntil: function nextUntil(elem, _i, until) { 5800 return dir(elem, "nextSibling", until); 5801 }, 5802 prevUntil: function prevUntil(elem, _i, until) { 5803 return dir(elem, "previousSibling", until); 5804 }, 5805 siblings: function siblings(elem) { 5806 return _siblings((elem.parentNode || {}).firstChild, elem); 5807 }, 5808 children: function children(elem) { 5809 return _siblings(elem.firstChild); 5810 }, 5811 contents: function contents(elem) { 5812 if (elem.contentDocument != null && 5813 // Support: IE 11+ 5814 // <object> elements with no `data` attribute has an object 5815 // `contentDocument` with a `null` prototype. 5816 getProto(elem.contentDocument)) { 5817 return elem.contentDocument; 5818 } 5819 5820 // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only 5821 // Treat the template element as a regular one in browsers that 5822 // don't support it. 5823 if (nodeName(elem, "template")) { 5824 elem = elem.content || elem; 5825 } 5826 return _jQuery2.merge([], elem.childNodes); 5827 } 5828 }, function (name, fn) { 5829 _jQuery2.fn[name] = function (until, selector) { 5830 var matched = _jQuery2.map(this, fn, until); 5831 if (name.slice(-5) !== "Until") { 5832 selector = until; 5833 } 5834 if (selector && typeof selector === "string") { 5835 matched = _jQuery2.filter(selector, matched); 5836 } 5837 if (this.length > 1) { 5838 // Remove duplicates 5839 if (!guaranteedUnique[name]) { 5840 _jQuery2.uniqueSort(matched); 5841 } 5842 5843 // Reverse order for parents* and prev-derivatives 5844 if (rparentsprev.test(name)) { 5845 matched.reverse(); 5846 } 5847 } 5848 return this.pushStack(matched); 5849 }; 5850 }); 5851 var rnothtmlwhite = /[^\x20\t\r\n\f]+/g; 5852 5853 // Convert String-formatted options into Object-formatted ones 5854 function createOptions(options) { 5855 var object = {}; 5856 _jQuery2.each(options.match(rnothtmlwhite) || [], function (_, flag) { 5857 object[flag] = true; 5858 }); 5859 return object; 5860 } 5861 5862 /* 5863 * Create a callback list using the following parameters: 5864 * 5865 * options: an optional list of space-separated options that will change how 5866 * the callback list behaves or a more traditional option object 5867 * 5868 * By default a callback list will act like an event callback list and can be 5869 * "fired" multiple times. 5870 * 5871 * Possible options: 5872 * 5873 * once: will ensure the callback list can only be fired once (like a Deferred) 5874 * 5875 * memory: will keep track of previous values and will call any callback added 5876 * after the list has been fired right away with the latest "memorized" 5877 * values (like a Deferred) 5878 * 5879 * unique: will ensure a callback can only be added once (no duplicate in the list) 5880 * 5881 * stopOnFalse: interrupt callings when a callback returns false 5882 * 5883 */ 5884 _jQuery2.Callbacks = function (options) { 5885 // Convert options from String-formatted to Object-formatted if needed 5886 // (we check in cache first) 5887 options = typeof options === "string" ? createOptions(options) : _jQuery2.extend({}, options); 5888 var 5889 // Flag to know if list is currently firing 5890 firing, 5891 // Last fire value for non-forgettable lists 5892 memory, 5893 // Flag to know if list was already fired 5894 _fired, 5895 // Flag to prevent firing 5896 _locked, 5897 // Actual callback list 5898 list = [], 5899 // Queue of execution data for repeatable lists 5900 queue = [], 5901 // Index of currently firing callback (modified by add/remove as needed) 5902 firingIndex = -1, 5903 // Fire callbacks 5904 fire = function fire() { 5905 // Enforce single-firing 5906 _locked = _locked || options.once; 5907 5908 // Execute callbacks for all pending executions, 5909 // respecting firingIndex overrides and runtime changes 5910 _fired = firing = true; 5911 for (; queue.length; firingIndex = -1) { 5912 memory = queue.shift(); 5913 while (++firingIndex < list.length) { 5914 // Run callback and check for early termination 5915 if (list[firingIndex].apply(memory[0], memory[1]) === false && options.stopOnFalse) { 5916 // Jump to end and forget the data so .add doesn't re-fire 5917 firingIndex = list.length; 5918 memory = false; 5919 } 5920 } 5921 } 5922 5923 // Forget the data if we're done with it 5924 if (!options.memory) { 5925 memory = false; 5926 } 5927 firing = false; 5928 5929 // Clean up if we're done firing for good 5930 if (_locked) { 5931 // Keep an empty list if we have data for future add calls 5932 if (memory) { 5933 list = []; 5934 5935 // Otherwise, this object is spent 5936 } else { 5937 list = ""; 5938 } 5939 } 5940 }, 5941 // Actual Callbacks object 5942 self = { 5943 // Add a callback or a collection of callbacks to the list 5944 add: function add() { 5945 if (list) { 5946 // If we have memory from a past run, we should fire after adding 5947 if (memory && !firing) { 5948 firingIndex = list.length - 1; 5949 queue.push(memory); 5950 } 5951 (function add(args) { 5952 _jQuery2.each(args, function (_, arg) { 5953 if (isFunction(arg)) { 5954 if (!options.unique || !self.has(arg)) { 5955 list.push(arg); 5956 } 5957 } else if (arg && arg.length && toType(arg) !== "string") { 5958 // Inspect recursively 5959 add(arg); 5960 } 5961 }); 5962 })(arguments); 5963 if (memory && !firing) { 5964 fire(); 5965 } 5966 } 5967 return this; 5968 }, 5969 // Remove a callback from the list 5970 remove: function remove() { 5971 _jQuery2.each(arguments, function (_, arg) { 5972 var index; 5973 while ((index = _jQuery2.inArray(arg, list, index)) > -1) { 5974 list.splice(index, 1); 5975 5976 // Handle firing indexes 5977 if (index <= firingIndex) { 5978 firingIndex--; 5979 } 5980 } 5981 }); 5982 return this; 5983 }, 5984 // Check if a given callback is in the list. 5985 // If no argument is given, return whether or not list has callbacks attached. 5986 has: function has(fn) { 5987 return fn ? _jQuery2.inArray(fn, list) > -1 : list.length > 0; 5988 }, 5989 // Remove all callbacks from the list 5990 empty: function empty() { 5991 if (list) { 5992 list = []; 5993 } 5994 return this; 5995 }, 5996 // Disable .fire and .add 5997 // Abort any current/pending executions 5998 // Clear all callbacks and values 5999 disable: function disable() { 6000 _locked = queue = []; 6001 list = memory = ""; 6002 return this; 6003 }, 6004 disabled: function disabled() { 6005 return !list; 6006 }, 6007 // Disable .fire 6008 // Also disable .add unless we have memory (since it would have no effect) 6009 // Abort any pending executions 6010 lock: function lock() { 6011 _locked = queue = []; 6012 if (!memory && !firing) { 6013 list = memory = ""; 6014 } 6015 return this; 6016 }, 6017 locked: function locked() { 6018 return !!_locked; 6019 }, 6020 // Call all callbacks with the given context and arguments 6021 fireWith: function fireWith(context, args) { 6022 if (!_locked) { 6023 args = args || []; 6024 args = [context, args.slice ? args.slice() : args]; 6025 queue.push(args); 6026 if (!firing) { 6027 fire(); 6028 } 6029 } 6030 return this; 6031 }, 6032 // Call all the callbacks with the given arguments 6033 fire: function fire() { 6034 self.fireWith(this, arguments); 6035 return this; 6036 }, 6037 // To know if the callbacks have already been called at least once 6038 fired: function fired() { 6039 return !!_fired; 6040 } 6041 }; 6042 return self; 6043 }; 6044 function Identity(v) { 6045 return v; 6046 } 6047 function Thrower(ex) { 6048 throw ex; 6049 } 6050 function adoptValue(value, resolve, reject, noValue) { 6051 var method; 6052 try { 6053 // Check for promise aspect first to privilege synchronous behavior 6054 if (value && isFunction(method = value.promise)) { 6055 method.call(value).done(resolve).fail(reject); 6056 6057 // Other thenables 6058 } else if (value && isFunction(method = value.then)) { 6059 method.call(value, resolve, reject); 6060 6061 // Other non-thenables 6062 } else { 6063 // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: 6064 // * false: [ value ].slice( 0 ) => resolve( value ) 6065 // * true: [ value ].slice( 1 ) => resolve() 6066 resolve.apply(undefined, [value].slice(noValue)); 6067 } 6068 6069 // For Promises/A+, convert exceptions into rejections 6070 // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in 6071 // Deferred#then to conditionally suppress rejection. 6072 } catch (value) { 6073 // Support: Android 4.0 only 6074 // Strict mode functions invoked without .call/.apply get global-object context 6075 reject.apply(undefined, [value]); 6076 } 6077 } 6078 _jQuery2.extend({ 6079 Deferred: function Deferred(func) { 6080 var tuples = [ 6081 // action, add listener, callbacks, 6082 // ... .then handlers, argument index, [final state] 6083 ["notify", "progress", _jQuery2.Callbacks("memory"), _jQuery2.Callbacks("memory"), 2], ["resolve", "done", _jQuery2.Callbacks("once memory"), _jQuery2.Callbacks("once memory"), 0, "resolved"], ["reject", "fail", _jQuery2.Callbacks("once memory"), _jQuery2.Callbacks("once memory"), 1, "rejected"]], 6084 _state = "pending", 6085 _promise = { 6086 state: function state() { 6087 return _state; 6088 }, 6089 always: function always() { 6090 deferred.done(arguments).fail(arguments); 6091 return this; 6092 }, 6093 "catch": function _catch(fn) { 6094 return _promise.then(null, fn); 6095 }, 6096 // Keep pipe for back-compat 6097 pipe: function pipe(/* fnDone, fnFail, fnProgress */ 6098 ) { 6099 var fns = arguments; 6100 return _jQuery2.Deferred(function (newDefer) { 6101 _jQuery2.each(tuples, function (_i, tuple) { 6102 // Map tuples (progress, done, fail) to arguments (done, fail, progress) 6103 var fn = isFunction(fns[tuple[4]]) && fns[tuple[4]]; 6104 6105 // deferred.progress(function() { bind to newDefer or newDefer.notify }) 6106 // deferred.done(function() { bind to newDefer or newDefer.resolve }) 6107 // deferred.fail(function() { bind to newDefer or newDefer.reject }) 6108 deferred[tuple[1]](function () { 6109 var returned = fn && fn.apply(this, arguments); 6110 if (returned && isFunction(returned.promise)) { 6111 returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject); 6112 } else { 6113 newDefer[tuple[0] + "With"](this, fn ? [returned] : arguments); 6114 } 6115 }); 6116 }); 6117 fns = null; 6118 }).promise(); 6119 }, 6120 then: function then(onFulfilled, onRejected, onProgress) { 6121 var maxDepth = 0; 6122 function resolve(depth, deferred, handler, special) { 6123 return function () { 6124 var that = this, 6125 args = arguments, 6126 mightThrow = function mightThrow() { 6127 var returned, then; 6128 6129 // Support: Promises/A+ section 2.3.3.3.3 6130 // https://promisesaplus.com/#point-59 6131 // Ignore double-resolution attempts 6132 if (depth < maxDepth) { 6133 return; 6134 } 6135 returned = handler.apply(that, args); 6136 6137 // Support: Promises/A+ section 2.3.1 6138 // https://promisesaplus.com/#point-48 6139 if (returned === deferred.promise()) { 6140 throw new TypeError("Thenable self-resolution"); 6141 } 6142 6143 // Support: Promises/A+ sections 2.3.3.1, 3.5 6144 // https://promisesaplus.com/#point-54 6145 // https://promisesaplus.com/#point-75 6146 // Retrieve `then` only once 6147 then = returned && ( 6148 // Support: Promises/A+ section 2.3.4 6149 // https://promisesaplus.com/#point-64 6150 // Only check objects and functions for thenability 6151 _typeof(returned) === "object" || typeof returned === "function") && returned.then; 6152 6153 // Handle a returned thenable 6154 if (isFunction(then)) { 6155 // Special processors (notify) just wait for resolution 6156 if (special) { 6157 then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special)); 6158 6159 // Normal processors (resolve) also hook into progress 6160 } else { 6161 // ...and disregard older resolution values 6162 maxDepth++; 6163 then.call(returned, resolve(maxDepth, deferred, Identity, special), resolve(maxDepth, deferred, Thrower, special), resolve(maxDepth, deferred, Identity, deferred.notifyWith)); 6164 } 6165 6166 // Handle all other returned values 6167 } else { 6168 // Only substitute handlers pass on context 6169 // and multiple values (non-spec behavior) 6170 if (handler !== Identity) { 6171 that = undefined; 6172 args = [returned]; 6173 } 6174 6175 // Process the value(s) 6176 // Default process is resolve 6177 (special || deferred.resolveWith)(that, args); 6178 } 6179 }, 6180 // Only normal processors (resolve) catch and reject exceptions 6181 process = special ? mightThrow : function () { 6182 try { 6183 mightThrow(); 6184 } catch (e) { 6185 if (_jQuery2.Deferred.exceptionHook) { 6186 _jQuery2.Deferred.exceptionHook(e, process.error); 6187 } 6188 6189 // Support: Promises/A+ section 2.3.3.3.4.1 6190 // https://promisesaplus.com/#point-61 6191 // Ignore post-resolution exceptions 6192 if (depth + 1 >= maxDepth) { 6193 // Only substitute handlers pass on context 6194 // and multiple values (non-spec behavior) 6195 if (handler !== Thrower) { 6196 that = undefined; 6197 args = [e]; 6198 } 6199 deferred.rejectWith(that, args); 6200 } 6201 } 6202 }; 6203 6204 // Support: Promises/A+ section 2.3.3.3.1 6205 // https://promisesaplus.com/#point-57 6206 // Re-resolve promises immediately to dodge false rejection from 6207 // subsequent errors 6208 if (depth) { 6209 process(); 6210 } else { 6211 // Call an optional hook to record the error, in case of exception 6212 // since it's otherwise lost when execution goes async 6213 if (_jQuery2.Deferred.getErrorHook) { 6214 process.error = _jQuery2.Deferred.getErrorHook(); 6215 6216 // The deprecated alias of the above. While the name suggests 6217 // returning the stack, not an error instance, jQuery just passes 6218 // it directly to `console.warn` so both will work; an instance 6219 // just better cooperates with source maps. 6220 } else if (_jQuery2.Deferred.getStackHook) { 6221 process.error = _jQuery2.Deferred.getStackHook(); 6222 } 6223 window.setTimeout(process); 6224 } 6225 }; 6226 } 6227 return _jQuery2.Deferred(function (newDefer) { 6228 // progress_handlers.add( ... ) 6229 tuples[0][3].add(resolve(0, newDefer, isFunction(onProgress) ? onProgress : Identity, newDefer.notifyWith)); 6230 6231 // fulfilled_handlers.add( ... ) 6232 tuples[1][3].add(resolve(0, newDefer, isFunction(onFulfilled) ? onFulfilled : Identity)); 6233 6234 // rejected_handlers.add( ... ) 6235 tuples[2][3].add(resolve(0, newDefer, isFunction(onRejected) ? onRejected : Thrower)); 6236 }).promise(); 6237 }, 6238 // Get a promise for this deferred 6239 // If obj is provided, the promise aspect is added to the object 6240 promise: function promise(obj) { 6241 return obj != null ? _jQuery2.extend(obj, _promise) : _promise; 6242 } 6243 }, 6244 deferred = {}; 6245 6246 // Add list-specific methods 6247 _jQuery2.each(tuples, function (i, tuple) { 6248 var list = tuple[2], 6249 stateString = tuple[5]; 6250 6251 // promise.progress = list.add 6252 // promise.done = list.add 6253 // promise.fail = list.add 6254 _promise[tuple[1]] = list.add; 6255 6256 // Handle state 6257 if (stateString) { 6258 list.add(function () { 6259 // state = "resolved" (i.e., fulfilled) 6260 // state = "rejected" 6261 _state = stateString; 6262 }, 6263 // rejected_callbacks.disable 6264 // fulfilled_callbacks.disable 6265 tuples[3 - i][2].disable, 6266 // rejected_handlers.disable 6267 // fulfilled_handlers.disable 6268 tuples[3 - i][3].disable, 6269 // progress_callbacks.lock 6270 tuples[0][2].lock, 6271 // progress_handlers.lock 6272 tuples[0][3].lock); 6273 } 6274 6275 // progress_handlers.fire 6276 // fulfilled_handlers.fire 6277 // rejected_handlers.fire 6278 list.add(tuple[3].fire); 6279 6280 // deferred.notify = function() { deferred.notifyWith(...) } 6281 // deferred.resolve = function() { deferred.resolveWith(...) } 6282 // deferred.reject = function() { deferred.rejectWith(...) } 6283 deferred[tuple[0]] = function () { 6284 deferred[tuple[0] + "With"](this === deferred ? undefined : this, arguments); 6285 return this; 6286 }; 6287 6288 // deferred.notifyWith = list.fireWith 6289 // deferred.resolveWith = list.fireWith 6290 // deferred.rejectWith = list.fireWith 6291 deferred[tuple[0] + "With"] = list.fireWith; 6292 }); 6293 6294 // Make the deferred a promise 6295 _promise.promise(deferred); 6296 6297 // Call given func if any 6298 if (func) { 6299 func.call(deferred, deferred); 6300 } 6301 6302 // All done! 6303 return deferred; 6304 }, 6305 // Deferred helper 6306 when: function when(singleValue) { 6307 var 6308 // count of uncompleted subordinates 6309 remaining = arguments.length, 6310 // count of unprocessed arguments 6311 i = remaining, 6312 // subordinate fulfillment data 6313 resolveContexts = Array(i), 6314 resolveValues = _slice.call(arguments), 6315 // the primary Deferred 6316 primary = _jQuery2.Deferred(), 6317 // subordinate callback factory 6318 updateFunc = function updateFunc(i) { 6319 return function (value) { 6320 resolveContexts[i] = this; 6321 resolveValues[i] = arguments.length > 1 ? _slice.call(arguments) : value; 6322 if (! --remaining) { 6323 primary.resolveWith(resolveContexts, resolveValues); 6324 } 6325 }; 6326 }; 6327 6328 // Single- and empty arguments are adopted like Promise.resolve 6329 if (remaining <= 1) { 6330 adoptValue(singleValue, primary.done(updateFunc(i)).resolve, primary.reject, !remaining); 6331 6332 // Use .then() to unwrap secondary thenables (cf. gh-3000) 6333 if (primary.state() === "pending" || isFunction(resolveValues[i] && resolveValues[i].then)) { 6334 return primary.then(); 6335 } 6336 } 6337 6338 // Multiple arguments are aggregated like Promise.all array elements 6339 while (i--) { 6340 adoptValue(resolveValues[i], updateFunc(i), primary.reject); 6341 } 6342 return primary.promise(); 6343 } 6344 }); 6345 6346 // These usually indicate a programmer mistake during development, 6347 // warn about them ASAP rather than swallowing them by default. 6348 var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; 6349 6350 // If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error 6351 // captured before the async barrier to get the original error cause 6352 // which may otherwise be hidden. 6353 _jQuery2.Deferred.exceptionHook = function (error, asyncError) { 6354 // Support: IE 8 - 9 only 6355 // Console exists when dev tools are open, which can happen at any time 6356 if (window.console && window.console.warn && error && rerrorNames.test(error.name)) { 6357 window.console.warn("jQuery.Deferred exception: " + error.message, error.stack, asyncError); 6358 } 6359 }; 6360 _jQuery2.readyException = function (error) { 6361 window.setTimeout(function () { 6362 throw error; 6363 }); 6364 }; 6365 6366 // The deferred used on DOM ready 6367 var readyList = _jQuery2.Deferred(); 6368 _jQuery2.fn.ready = function (fn) { 6369 readyList.then(fn) 6370 6371 // Wrap jQuery.readyException in a function so that the lookup 6372 // happens at the time of error handling instead of callback 6373 // registration. 6374 .catch(function (error) { 6375 _jQuery2.readyException(error); 6376 }); 6377 return this; 6378 }; 6379 _jQuery2.extend({ 6380 // Is the DOM ready to be used? Set to true once it occurs. 6381 isReady: false, 6382 // A counter to track how many items to wait for before 6383 // the ready event fires. See trac-6781 6384 readyWait: 1, 6385 // Handle when the DOM is ready 6386 ready: function ready(wait) { 6387 // Abort if there are pending holds or we're already ready 6388 if (wait === true ? --_jQuery2.readyWait : _jQuery2.isReady) { 6389 return; 6390 } 6391 6392 // Remember that the DOM is ready 6393 _jQuery2.isReady = true; 6394 6395 // If a normal DOM Ready event fired, decrement, and wait if need be 6396 if (wait !== true && --_jQuery2.readyWait > 0) { 6397 return; 6398 } 6399 6400 // If there are functions bound, to execute 6401 readyList.resolveWith(document, [_jQuery2]); 6402 } 6403 }); 6404 _jQuery2.ready.then = readyList.then; 6405 6406 // The ready event handler and self cleanup method 6407 function completed() { 6408 document.removeEventListener("DOMContentLoaded", completed); 6409 window.removeEventListener("load", completed); 6410 _jQuery2.ready(); 6411 } 6412 6413 // Catch cases where $(document).ready() is called 6414 // after the browser event has already occurred. 6415 // Support: IE <=9 - 10 only 6416 // Older IE sometimes signals "interactive" too soon 6417 if (document.readyState === "complete" || document.readyState !== "loading" && !document.documentElement.doScroll) { 6418 // Handle it asynchronously to allow scripts the opportunity to delay ready 6419 window.setTimeout(_jQuery2.ready); 6420 } else { 6421 // Use the handy event callback 6422 document.addEventListener("DOMContentLoaded", completed); 6423 6424 // A fallback to window.onload, that will always work 6425 window.addEventListener("load", completed); 6426 } 6427 6428 // Multifunctional method to get and set values of a collection 6429 // The value/s can optionally be executed if it's a function 6430 var _access = function access(elems, fn, key, value, chainable, emptyGet, raw) { 6431 var i = 0, 6432 len = elems.length, 6433 bulk = key == null; 6434 6435 // Sets many values 6436 if (toType(key) === "object") { 6437 chainable = true; 6438 for (i in key) { 6439 _access(elems, fn, i, key[i], true, emptyGet, raw); 6440 } 6441 6442 // Sets one value 6443 } else if (value !== undefined) { 6444 chainable = true; 6445 if (!isFunction(value)) { 6446 raw = true; 6447 } 6448 if (bulk) { 6449 // Bulk operations run against the entire set 6450 if (raw) { 6451 fn.call(elems, value); 6452 fn = null; 6453 6454 // ...except when executing function values 6455 } else { 6456 bulk = fn; 6457 fn = function fn(elem, _key, value) { 6458 return bulk.call(_jQuery2(elem), value); 6459 }; 6460 } 6461 } 6462 if (fn) { 6463 for (; i < len; i++) { 6464 fn(elems[i], key, raw ? value : value.call(elems[i], i, fn(elems[i], key))); 6465 } 6466 } 6467 } 6468 if (chainable) { 6469 return elems; 6470 } 6471 6472 // Gets 6473 if (bulk) { 6474 return fn.call(elems); 6475 } 6476 return len ? fn(elems[0], key) : emptyGet; 6477 }; 6478 6479 // Matches dashed string for camelizing 6480 var rmsPrefix = /^-ms-/, 6481 rdashAlpha = /-([a-z])/g; 6482 6483 // Used by camelCase as callback to replace() 6484 function fcamelCase(_all, letter) { 6485 return letter.toUpperCase(); 6486 } 6487 6488 // Convert dashed to camelCase; used by the css and data modules 6489 // Support: IE <=9 - 11, Edge 12 - 15 6490 // Microsoft forgot to hump their vendor prefix (trac-9572) 6491 function camelCase(string) { 6492 return string.replace(rmsPrefix, "ms-").replace(rdashAlpha, fcamelCase); 6493 } 6494 var acceptData = function acceptData(owner) { 6495 // Accepts only: 6496 // - Node 6497 // - Node.ELEMENT_NODE 6498 // - Node.DOCUMENT_NODE 6499 // - Object 6500 // - Any 6501 return owner.nodeType === 1 || owner.nodeType === 9 || !+owner.nodeType; 6502 }; 6503 function Data() { 6504 this.expando = _jQuery2.expando + Data.uid++; 6505 } 6506 Data.uid = 1; 6507 Data.prototype = { 6508 cache: function cache(owner) { 6509 // Check if the owner object already has a cache 6510 var value = owner[this.expando]; 6511 6512 // If not, create one 6513 if (!value) { 6514 value = {}; 6515 6516 // We can accept data for non-element nodes in modern browsers, 6517 // but we should not, see trac-8335. 6518 // Always return an empty object. 6519 if (acceptData(owner)) { 6520 // If it is a node unlikely to be stringify-ed or looped over 6521 // use plain assignment 6522 if (owner.nodeType) { 6523 owner[this.expando] = value; 6524 6525 // Otherwise secure it in a non-enumerable property 6526 // configurable must be true to allow the property to be 6527 // deleted when data is removed 6528 } else { 6529 Object.defineProperty(owner, this.expando, { 6530 value: value, 6531 configurable: true 6532 }); 6533 } 6534 } 6535 } 6536 return value; 6537 }, 6538 set: function set(owner, data, value) { 6539 var prop, 6540 cache = this.cache(owner); 6541 6542 // Handle: [ owner, key, value ] args 6543 // Always use camelCase key (gh-2257) 6544 if (typeof data === "string") { 6545 cache[camelCase(data)] = value; 6546 6547 // Handle: [ owner, { properties } ] args 6548 } else { 6549 // Copy the properties one-by-one to the cache object 6550 for (prop in data) { 6551 cache[camelCase(prop)] = data[prop]; 6552 } 6553 } 6554 return cache; 6555 }, 6556 get: function get(owner, key) { 6557 return key === undefined ? this.cache(owner) : 6558 // Always use camelCase key (gh-2257) 6559 owner[this.expando] && owner[this.expando][camelCase(key)]; 6560 }, 6561 access: function access(owner, key, value) { 6562 // In cases where either: 6563 // 6564 // 1. No key was specified 6565 // 2. A string key was specified, but no value provided 6566 // 6567 // Take the "read" path and allow the get method to determine 6568 // which value to return, respectively either: 6569 // 6570 // 1. The entire cache object 6571 // 2. The data stored at the key 6572 // 6573 if (key === undefined || key && typeof key === "string" && value === undefined) { 6574 return this.get(owner, key); 6575 } 6576 6577 // When the key is not a string, or both a key and value 6578 // are specified, set or extend (existing objects) with either: 6579 // 6580 // 1. An object of properties 6581 // 2. A key and value 6582 // 6583 this.set(owner, key, value); 6584 6585 // Since the "set" path can have two possible entry points 6586 // return the expected data based on which path was taken[*] 6587 return value !== undefined ? value : key; 6588 }, 6589 remove: function remove(owner, key) { 6590 var i, 6591 cache = owner[this.expando]; 6592 if (cache === undefined) { 6593 return; 6594 } 6595 if (key !== undefined) { 6596 // Support array or space separated string of keys 6597 if (Array.isArray(key)) { 6598 // If key is an array of keys... 6599 // We always set camelCase keys, so remove that. 6600 key = key.map(camelCase); 6601 } else { 6602 key = camelCase(key); 6603 6604 // If a key with the spaces exists, use it. 6605 // Otherwise, create an array by matching non-whitespace 6606 key = key in cache ? [key] : key.match(rnothtmlwhite) || []; 6607 } 6608 i = key.length; 6609 while (i--) { 6610 delete cache[key[i]]; 6611 } 6612 } 6613 6614 // Remove the expando if there's no more data 6615 if (key === undefined || _jQuery2.isEmptyObject(cache)) { 6616 // Support: Chrome <=35 - 45 6617 // Webkit & Blink performance suffers when deleting properties 6618 // from DOM nodes, so set to undefined instead 6619 // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) 6620 if (owner.nodeType) { 6621 owner[this.expando] = undefined; 6622 } else { 6623 delete owner[this.expando]; 6624 } 6625 } 6626 }, 6627 hasData: function hasData(owner) { 6628 var cache = owner[this.expando]; 6629 return cache !== undefined && !_jQuery2.isEmptyObject(cache); 6630 } 6631 }; 6632 var dataPriv = new Data(); 6633 var dataUser = new Data(); 6634 6635 // Implementation Summary 6636 // 6637 // 1. Enforce API surface and semantic compatibility with 1.9.x branch 6638 // 2. Improve the module's maintainability by reducing the storage 6639 // paths to a single mechanism. 6640 // 3. Use the same single mechanism to support "private" and "user" data. 6641 // 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) 6642 // 5. Avoid exposing implementation details on user objects (eg. expando properties) 6643 // 6. Provide a clear path for implementation upgrade to WeakMap in 2014 6644 6645 var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, 6646 rmultiDash = /[A-Z]/g; 6647 function getData(data) { 6648 if (data === "true") { 6649 return true; 6650 } 6651 if (data === "false") { 6652 return false; 6653 } 6654 if (data === "null") { 6655 return null; 6656 } 6657 6658 // Only convert to a number if it doesn't change the string 6659 if (data === +data + "") { 6660 return +data; 6661 } 6662 if (rbrace.test(data)) { 6663 return JSON.parse(data); 6664 } 6665 return data; 6666 } 6667 function dataAttr(elem, key, data) { 6668 var name; 6669 6670 // If nothing was found internally, try to fetch any 6671 // data from the HTML5 data-* attribute 6672 if (data === undefined && elem.nodeType === 1) { 6673 name = "data-" + key.replace(rmultiDash, "-$&").toLowerCase(); 6674 data = elem.getAttribute(name); 6675 if (typeof data === "string") { 6676 try { 6677 data = getData(data); 6678 } catch (e) {} 6679 6680 // Make sure we set the data so it isn't changed later 6681 dataUser.set(elem, key, data); 6682 } else { 6683 data = undefined; 6684 } 6685 } 6686 return data; 6687 } 6688 _jQuery2.extend({ 6689 hasData: function hasData(elem) { 6690 return dataUser.hasData(elem) || dataPriv.hasData(elem); 6691 }, 6692 data: function data(elem, name, _data) { 6693 return dataUser.access(elem, name, _data); 6694 }, 6695 removeData: function removeData(elem, name) { 6696 dataUser.remove(elem, name); 6697 }, 6698 // TODO: Now that all calls to _data and _removeData have been replaced 6699 // with direct calls to dataPriv methods, these can be deprecated. 6700 _data: function _data(elem, name, data) { 6701 return dataPriv.access(elem, name, data); 6702 }, 6703 _removeData: function _removeData(elem, name) { 6704 dataPriv.remove(elem, name); 6705 } 6706 }); 6707 _jQuery2.fn.extend({ 6708 data: function data(key, value) { 6709 var i, 6710 name, 6711 data, 6712 elem = this[0], 6713 attrs = elem && elem.attributes; 6714 6715 // Gets all values 6716 if (key === undefined) { 6717 if (this.length) { 6718 data = dataUser.get(elem); 6719 if (elem.nodeType === 1 && !dataPriv.get(elem, "hasDataAttrs")) { 6720 i = attrs.length; 6721 while (i--) { 6722 // Support: IE 11 only 6723 // The attrs elements can be null (trac-14894) 6724 if (attrs[i]) { 6725 name = attrs[i].name; 6726 if (name.indexOf("data-") === 0) { 6727 name = camelCase(name.slice(5)); 6728 dataAttr(elem, name, data[name]); 6729 } 6730 } 6731 } 6732 dataPriv.set(elem, "hasDataAttrs", true); 6733 } 6734 } 6735 return data; 6736 } 6737 6738 // Sets multiple values 6739 if (_typeof(key) === "object") { 6740 return this.each(function () { 6741 dataUser.set(this, key); 6742 }); 6743 } 6744 return _access(this, function (value) { 6745 var data; 6746 6747 // The calling jQuery object (element matches) is not empty 6748 // (and therefore has an element appears at this[ 0 ]) and the 6749 // `value` parameter was not undefined. An empty jQuery object 6750 // will result in `undefined` for elem = this[ 0 ] which will 6751 // throw an exception if an attempt to read a data cache is made. 6752 if (elem && value === undefined) { 6753 // Attempt to get data from the cache 6754 // The key will always be camelCased in Data 6755 data = dataUser.get(elem, key); 6756 if (data !== undefined) { 6757 return data; 6758 } 6759 6760 // Attempt to "discover" the data in 6761 // HTML5 custom data-* attrs 6762 data = dataAttr(elem, key); 6763 if (data !== undefined) { 6764 return data; 6765 } 6766 6767 // We tried really hard, but the data doesn't exist. 6768 return; 6769 } 6770 6771 // Set the data... 6772 this.each(function () { 6773 // We always store the camelCased key 6774 dataUser.set(this, key, value); 6775 }); 6776 }, null, value, arguments.length > 1, null, true); 6777 }, 6778 removeData: function removeData(key) { 6779 return this.each(function () { 6780 dataUser.remove(this, key); 6781 }); 6782 } 6783 }); 6784 _jQuery2.extend({ 6785 queue: function queue(elem, type, data) { 6786 var queue; 6787 if (elem) { 6788 type = (type || "fx") + "queue"; 6789 queue = dataPriv.get(elem, type); 6790 6791 // Speed up dequeue by getting out quickly if this is just a lookup 6792 if (data) { 6793 if (!queue || Array.isArray(data)) { 6794 queue = dataPriv.access(elem, type, _jQuery2.makeArray(data)); 6795 } else { 6796 queue.push(data); 6797 } 6798 } 6799 return queue || []; 6800 } 6801 }, 6802 dequeue: function dequeue(elem, type) { 6803 type = type || "fx"; 6804 var queue = _jQuery2.queue(elem, type), 6805 startLength = queue.length, 6806 fn = queue.shift(), 6807 hooks = _jQuery2._queueHooks(elem, type), 6808 next = function next() { 6809 _jQuery2.dequeue(elem, type); 6810 }; 6811 6812 // If the fx queue is dequeued, always remove the progress sentinel 6813 if (fn === "inprogress") { 6814 fn = queue.shift(); 6815 startLength--; 6816 } 6817 if (fn) { 6818 // Add a progress sentinel to prevent the fx queue from being 6819 // automatically dequeued 6820 if (type === "fx") { 6821 queue.unshift("inprogress"); 6822 } 6823 6824 // Clear up the last queue stop function 6825 delete hooks.stop; 6826 fn.call(elem, next, hooks); 6827 } 6828 if (!startLength && hooks) { 6829 hooks.empty.fire(); 6830 } 6831 }, 6832 // Not public - generate a queueHooks object, or return the current one 6833 _queueHooks: function _queueHooks(elem, type) { 6834 var key = type + "queueHooks"; 6835 return dataPriv.get(elem, key) || dataPriv.access(elem, key, { 6836 empty: _jQuery2.Callbacks("once memory").add(function () { 6837 dataPriv.remove(elem, [type + "queue", key]); 6838 }) 6839 }); 6840 } 6841 }); 6842 _jQuery2.fn.extend({ 6843 queue: function queue(type, data) { 6844 var setter = 2; 6845 if (typeof type !== "string") { 6846 data = type; 6847 type = "fx"; 6848 setter--; 6849 } 6850 if (arguments.length < setter) { 6851 return _jQuery2.queue(this[0], type); 6852 } 6853 return data === undefined ? this : this.each(function () { 6854 var queue = _jQuery2.queue(this, type, data); 6855 6856 // Ensure a hooks for this queue 6857 _jQuery2._queueHooks(this, type); 6858 if (type === "fx" && queue[0] !== "inprogress") { 6859 _jQuery2.dequeue(this, type); 6860 } 6861 }); 6862 }, 6863 dequeue: function dequeue(type) { 6864 return this.each(function () { 6865 _jQuery2.dequeue(this, type); 6866 }); 6867 }, 6868 clearQueue: function clearQueue(type) { 6869 return this.queue(type || "fx", []); 6870 }, 6871 // Get a promise resolved when queues of a certain type 6872 // are emptied (fx is the type by default) 6873 promise: function promise(type, obj) { 6874 var tmp, 6875 count = 1, 6876 defer = _jQuery2.Deferred(), 6877 elements = this, 6878 i = this.length, 6879 resolve = function resolve() { 6880 if (! --count) { 6881 defer.resolveWith(elements, [elements]); 6882 } 6883 }; 6884 if (typeof type !== "string") { 6885 obj = type; 6886 type = undefined; 6887 } 6888 type = type || "fx"; 6889 while (i--) { 6890 tmp = dataPriv.get(elements[i], type + "queueHooks"); 6891 if (tmp && tmp.empty) { 6892 count++; 6893 tmp.empty.add(resolve); 6894 } 6895 } 6896 resolve(); 6897 return defer.promise(obj); 6898 } 6899 }); 6900 var pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source; 6901 var rcssNum = new RegExp("^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i"); 6902 var cssExpand = ["Top", "Right", "Bottom", "Left"]; 6903 var documentElement = document.documentElement; 6904 var isAttached = function isAttached(elem) { 6905 return _jQuery2.contains(elem.ownerDocument, elem); 6906 }, 6907 composed = { 6908 composed: true 6909 }; 6910 6911 // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only 6912 // Check attachment across shadow DOM boundaries when possible (gh-3504) 6913 // Support: iOS 10.0-10.2 only 6914 // Early iOS 10 versions support `attachShadow` but not `getRootNode`, 6915 // leading to errors. We need to check for `getRootNode`. 6916 if (documentElement.getRootNode) { 6917 isAttached = function isAttached(elem) { 6918 return _jQuery2.contains(elem.ownerDocument, elem) || elem.getRootNode(composed) === elem.ownerDocument; 6919 }; 6920 } 6921 var isHiddenWithinTree = function isHiddenWithinTree(elem, el) { 6922 // isHiddenWithinTree might be called from jQuery#filter function; 6923 // in that case, element will be second argument 6924 elem = el || elem; 6925 6926 // Inline style trumps all 6927 return elem.style.display === "none" || elem.style.display === "" && 6928 // Otherwise, check computed style 6929 // Support: Firefox <=43 - 45 6930 // Disconnected elements can have computed display: none, so first confirm that elem is 6931 // in the document. 6932 isAttached(elem) && _jQuery2.css(elem, "display") === "none"; 6933 }; 6934 function adjustCSS(elem, prop, valueParts, tween) { 6935 var adjusted, 6936 scale, 6937 maxIterations = 20, 6938 currentValue = tween ? function () { 6939 return tween.cur(); 6940 } : function () { 6941 return _jQuery2.css(elem, prop, ""); 6942 }, 6943 initial = currentValue(), 6944 unit = valueParts && valueParts[3] || (_jQuery2.cssNumber[prop] ? "" : "px"), 6945 // Starting value computation is required for potential unit mismatches 6946 initialInUnit = elem.nodeType && (_jQuery2.cssNumber[prop] || unit !== "px" && +initial) && rcssNum.exec(_jQuery2.css(elem, prop)); 6947 if (initialInUnit && initialInUnit[3] !== unit) { 6948 // Support: Firefox <=54 6949 // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) 6950 initial = initial / 2; 6951 6952 // Trust units reported by jQuery.css 6953 unit = unit || initialInUnit[3]; 6954 6955 // Iteratively approximate from a nonzero starting point 6956 initialInUnit = +initial || 1; 6957 while (maxIterations--) { 6958 // Evaluate and update our best guess (doubling guesses that zero out). 6959 // Finish if the scale equals or crosses 1 (making the old*new product non-positive). 6960 _jQuery2.style(elem, prop, initialInUnit + unit); 6961 if ((1 - scale) * (1 - (scale = currentValue() / initial || 0.5)) <= 0) { 6962 maxIterations = 0; 6963 } 6964 initialInUnit = initialInUnit / scale; 6965 } 6966 initialInUnit = initialInUnit * 2; 6967 _jQuery2.style(elem, prop, initialInUnit + unit); 6968 6969 // Make sure we update the tween properties later on 6970 valueParts = valueParts || []; 6971 } 6972 if (valueParts) { 6973 initialInUnit = +initialInUnit || +initial || 0; 6974 6975 // Apply relative offset (+=/-=) if specified 6976 adjusted = valueParts[1] ? initialInUnit + (valueParts[1] + 1) * valueParts[2] : +valueParts[2]; 6977 if (tween) { 6978 tween.unit = unit; 6979 tween.start = initialInUnit; 6980 tween.end = adjusted; 6981 } 6982 } 6983 return adjusted; 6984 } 6985 var defaultDisplayMap = {}; 6986 function getDefaultDisplay(elem) { 6987 var temp, 6988 doc = elem.ownerDocument, 6989 nodeName = elem.nodeName, 6990 display = defaultDisplayMap[nodeName]; 6991 if (display) { 6992 return display; 6993 } 6994 temp = doc.body.appendChild(doc.createElement(nodeName)); 6995 display = _jQuery2.css(temp, "display"); 6996 temp.parentNode.removeChild(temp); 6997 if (display === "none") { 6998 display = "block"; 6999 } 7000 defaultDisplayMap[nodeName] = display; 7001 return display; 7002 } 7003 function showHide(elements, show) { 7004 var display, 7005 elem, 7006 values = [], 7007 index = 0, 7008 length = elements.length; 7009 7010 // Determine new display value for elements that need to change 7011 for (; index < length; index++) { 7012 elem = elements[index]; 7013 if (!elem.style) { 7014 continue; 7015 } 7016 display = elem.style.display; 7017 if (show) { 7018 // Since we force visibility upon cascade-hidden elements, an immediate (and slow) 7019 // check is required in this first loop unless we have a nonempty display value (either 7020 // inline or about-to-be-restored) 7021 if (display === "none") { 7022 values[index] = dataPriv.get(elem, "display") || null; 7023 if (!values[index]) { 7024 elem.style.display = ""; 7025 } 7026 } 7027 if (elem.style.display === "" && isHiddenWithinTree(elem)) { 7028 values[index] = getDefaultDisplay(elem); 7029 } 7030 } else { 7031 if (display !== "none") { 7032 values[index] = "none"; 7033 7034 // Remember what we're overwriting 7035 dataPriv.set(elem, "display", display); 7036 } 7037 } 7038 } 7039 7040 // Set the display of the elements in a second loop to avoid constant reflow 7041 for (index = 0; index < length; index++) { 7042 if (values[index] != null) { 7043 elements[index].style.display = values[index]; 7044 } 7045 } 7046 return elements; 7047 } 7048 _jQuery2.fn.extend({ 7049 show: function show() { 7050 return showHide(this, true); 7051 }, 7052 hide: function hide() { 7053 return showHide(this); 7054 }, 7055 toggle: function toggle(state) { 7056 if (typeof state === "boolean") { 7057 return state ? this.show() : this.hide(); 7058 } 7059 return this.each(function () { 7060 if (isHiddenWithinTree(this)) { 7061 _jQuery2(this).show(); 7062 } else { 7063 _jQuery2(this).hide(); 7064 } 7065 }); 7066 } 7067 }); 7068 var rcheckableType = /^(?:checkbox|radio)$/i; 7069 var rtagName = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i; 7070 var rscriptType = /^$|^module$|\/(?:java|ecma)script/i; 7071 (function () { 7072 var fragment = document.createDocumentFragment(), 7073 div = fragment.appendChild(document.createElement("div")), 7074 input = document.createElement("input"); 7075 7076 // Support: Android 4.0 - 4.3 only 7077 // Check state lost if the name is set (trac-11217) 7078 // Support: Windows Web Apps (WWA) 7079 // `name` and `type` must use .setAttribute for WWA (trac-14901) 7080 input.setAttribute("type", "radio"); 7081 input.setAttribute("checked", "checked"); 7082 input.setAttribute("name", "t"); 7083 div.appendChild(input); 7084 7085 // Support: Android <=4.1 only 7086 // Older WebKit doesn't clone checked state correctly in fragments 7087 support.checkClone = div.cloneNode(true).cloneNode(true).lastChild.checked; 7088 7089 // Support: IE <=11 only 7090 // Make sure textarea (and checkbox) defaultValue is properly cloned 7091 div.innerHTML = "<textarea>x</textarea>"; 7092 support.noCloneChecked = !!div.cloneNode(true).lastChild.defaultValue; 7093 7094 // Support: IE <=9 only 7095 // IE <=9 replaces <option> tags with their contents when inserted outside of 7096 // the select element. 7097 div.innerHTML = "<option></option>"; 7098 support.option = !!div.lastChild; 7099 })(); 7100 7101 // We have to close these tags to support XHTML (trac-13200) 7102 var wrapMap = { 7103 // XHTML parsers do not magically insert elements in the 7104 // same way that tag soup parsers do. So we cannot shorten 7105 // this by omitting <tbody> or other required elements. 7106 thead: [1, "<table>", "</table>"], 7107 col: [2, "<table><colgroup>", "</colgroup></table>"], 7108 tr: [2, "<table><tbody>", "</tbody></table>"], 7109 td: [3, "<table><tbody><tr>", "</tr></tbody></table>"], 7110 _default: [0, "", ""] 7111 }; 7112 wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; 7113 wrapMap.th = wrapMap.td; 7114 7115 // Support: IE <=9 only 7116 if (!support.option) { 7117 wrapMap.optgroup = wrapMap.option = [1, "<select multiple='multiple'>", "</select>"]; 7118 } 7119 function getAll(context, tag) { 7120 // Support: IE <=9 - 11 only 7121 // Use typeof to avoid zero-argument method invocation on host objects (trac-15151) 7122 var ret; 7123 if (typeof context.getElementsByTagName !== "undefined") { 7124 ret = context.getElementsByTagName(tag || "*"); 7125 } else if (typeof context.querySelectorAll !== "undefined") { 7126 ret = context.querySelectorAll(tag || "*"); 7127 } else { 7128 ret = []; 7129 } 7130 if (tag === undefined || tag && nodeName(context, tag)) { 7131 return _jQuery2.merge([context], ret); 7132 } 7133 return ret; 7134 } 7135 7136 // Mark scripts as having already been evaluated 7137 function setGlobalEval(elems, refElements) { 7138 var i = 0, 7139 l = elems.length; 7140 for (; i < l; i++) { 7141 dataPriv.set(elems[i], "globalEval", !refElements || dataPriv.get(refElements[i], "globalEval")); 7142 } 7143 } 7144 var rhtml = /<|&#?\w+;/; 7145 function buildFragment(elems, context, scripts, selection, ignored) { 7146 var elem, 7147 tmp, 7148 tag, 7149 wrap, 7150 attached, 7151 j, 7152 fragment = context.createDocumentFragment(), 7153 nodes = [], 7154 i = 0, 7155 l = elems.length; 7156 for (; i < l; i++) { 7157 elem = elems[i]; 7158 if (elem || elem === 0) { 7159 // Add nodes directly 7160 if (toType(elem) === "object") { 7161 // Support: Android <=4.0 only, PhantomJS 1 only 7162 // push.apply(_, arraylike) throws on ancient WebKit 7163 _jQuery2.merge(nodes, elem.nodeType ? [elem] : elem); 7164 7165 // Convert non-html into a text node 7166 } else if (!rhtml.test(elem)) { 7167 nodes.push(context.createTextNode(elem)); 7168 7169 // Convert html into DOM nodes 7170 } else { 7171 tmp = tmp || fragment.appendChild(context.createElement("div")); 7172 7173 // Deserialize a standard representation 7174 tag = (rtagName.exec(elem) || ["", ""])[1].toLowerCase(); 7175 wrap = wrapMap[tag] || wrapMap._default; 7176 tmp.innerHTML = wrap[1] + _jQuery2.htmlPrefilter(elem) + wrap[2]; 7177 7178 // Descend through wrappers to the right content 7179 j = wrap[0]; 7180 while (j--) { 7181 tmp = tmp.lastChild; 7182 } 7183 7184 // Support: Android <=4.0 only, PhantomJS 1 only 7185 // push.apply(_, arraylike) throws on ancient WebKit 7186 _jQuery2.merge(nodes, tmp.childNodes); 7187 7188 // Remember the top-level container 7189 tmp = fragment.firstChild; 7190 7191 // Ensure the created nodes are orphaned (trac-12392) 7192 tmp.textContent = ""; 7193 } 7194 } 7195 } 7196 7197 // Remove wrapper from fragment 7198 fragment.textContent = ""; 7199 i = 0; 7200 while (elem = nodes[i++]) { 7201 // Skip elements already in the context collection (trac-4087) 7202 if (selection && _jQuery2.inArray(elem, selection) > -1) { 7203 if (ignored) { 7204 ignored.push(elem); 7205 } 7206 continue; 7207 } 7208 attached = isAttached(elem); 7209 7210 // Append to fragment 7211 tmp = getAll(fragment.appendChild(elem), "script"); 7212 7213 // Preserve script evaluation history 7214 if (attached) { 7215 setGlobalEval(tmp); 7216 } 7217 7218 // Capture executables 7219 if (scripts) { 7220 j = 0; 7221 while (elem = tmp[j++]) { 7222 if (rscriptType.test(elem.type || "")) { 7223 scripts.push(elem); 7224 } 7225 } 7226 } 7227 } 7228 return fragment; 7229 } 7230 var rtypenamespace = /^([^.]*)(?:\.(.+)|)/; 7231 function returnTrue() { 7232 return true; 7233 } 7234 function returnFalse() { 7235 return false; 7236 } 7237 function _on(elem, types, selector, data, fn, one) { 7238 var origFn, type; 7239 7240 // Types can be a map of types/handlers 7241 if (_typeof(types) === "object") { 7242 // ( types-Object, selector, data ) 7243 if (typeof selector !== "string") { 7244 // ( types-Object, data ) 7245 data = data || selector; 7246 selector = undefined; 7247 } 7248 for (type in types) { 7249 _on(elem, type, selector, data, types[type], one); 7250 } 7251 return elem; 7252 } 7253 if (data == null && fn == null) { 7254 // ( types, fn ) 7255 fn = selector; 7256 data = selector = undefined; 7257 } else if (fn == null) { 7258 if (typeof selector === "string") { 7259 // ( types, selector, fn ) 7260 fn = data; 7261 data = undefined; 7262 } else { 7263 // ( types, data, fn ) 7264 fn = data; 7265 data = selector; 7266 selector = undefined; 7267 } 7268 } 7269 if (fn === false) { 7270 fn = returnFalse; 7271 } else if (!fn) { 7272 return elem; 7273 } 7274 if (one === 1) { 7275 origFn = fn; 7276 fn = function fn(event) { 7277 // Can use an empty set, since event contains the info 7278 _jQuery2().off(event); 7279 return origFn.apply(this, arguments); 7280 }; 7281 7282 // Use same guid so caller can remove using origFn 7283 fn.guid = origFn.guid || (origFn.guid = _jQuery2.guid++); 7284 } 7285 return elem.each(function () { 7286 _jQuery2.event.add(this, types, fn, data, selector); 7287 }); 7288 } 7289 7290 /* 7291 * Helper functions for managing events -- not part of the public interface. 7292 * Props to Dean Edwards' addEvent library for many of the ideas. 7293 */ 7294 _jQuery2.event = { 7295 global: {}, 7296 add: function add(elem, types, handler, data, selector) { 7297 var handleObjIn, 7298 eventHandle, 7299 tmp, 7300 events, 7301 t, 7302 handleObj, 7303 special, 7304 handlers, 7305 type, 7306 namespaces, 7307 origType, 7308 elemData = dataPriv.get(elem); 7309 7310 // Only attach events to objects that accept data 7311 if (!acceptData(elem)) { 7312 return; 7313 } 7314 7315 // Caller can pass in an object of custom data in lieu of the handler 7316 if (handler.handler) { 7317 handleObjIn = handler; 7318 handler = handleObjIn.handler; 7319 selector = handleObjIn.selector; 7320 } 7321 7322 // Ensure that invalid selectors throw exceptions at attach time 7323 // Evaluate against documentElement in case elem is a non-element node (e.g., document) 7324 if (selector) { 7325 _jQuery2.find.matchesSelector(documentElement, selector); 7326 } 7327 7328 // Make sure that the handler has a unique ID, used to find/remove it later 7329 if (!handler.guid) { 7330 handler.guid = _jQuery2.guid++; 7331 } 7332 7333 // Init the element's event structure and main handler, if this is the first 7334 if (!(events = elemData.events)) { 7335 events = elemData.events = Object.create(null); 7336 } 7337 if (!(eventHandle = elemData.handle)) { 7338 eventHandle = elemData.handle = function (e) { 7339 // Discard the second event of a jQuery.event.trigger() and 7340 // when an event is called after a page has unloaded 7341 return typeof _jQuery2 !== "undefined" && _jQuery2.event.triggered !== e.type ? _jQuery2.event.dispatch.apply(elem, arguments) : undefined; 7342 }; 7343 } 7344 7345 // Handle multiple events separated by a space 7346 types = (types || "").match(rnothtmlwhite) || [""]; 7347 t = types.length; 7348 while (t--) { 7349 tmp = rtypenamespace.exec(types[t]) || []; 7350 type = origType = tmp[1]; 7351 namespaces = (tmp[2] || "").split(".").sort(); 7352 7353 // There *must* be a type, no attaching namespace-only handlers 7354 if (!type) { 7355 continue; 7356 } 7357 7358 // If event changes its type, use the special event handlers for the changed type 7359 special = _jQuery2.event.special[type] || {}; 7360 7361 // If selector defined, determine special event api type, otherwise given type 7362 type = (selector ? special.delegateType : special.bindType) || type; 7363 7364 // Update special based on newly reset type 7365 special = _jQuery2.event.special[type] || {}; 7366 7367 // handleObj is passed to all event handlers 7368 handleObj = _jQuery2.extend({ 7369 type: type, 7370 origType: origType, 7371 data: data, 7372 handler: handler, 7373 guid: handler.guid, 7374 selector: selector, 7375 needsContext: selector && _jQuery2.expr.match.needsContext.test(selector), 7376 namespace: namespaces.join(".") 7377 }, handleObjIn); 7378 7379 // Init the event handler queue if we're the first 7380 if (!(handlers = events[type])) { 7381 handlers = events[type] = []; 7382 handlers.delegateCount = 0; 7383 7384 // Only use addEventListener if the special events handler returns false 7385 if (!special.setup || special.setup.call(elem, data, namespaces, eventHandle) === false) { 7386 if (elem.addEventListener) { 7387 elem.addEventListener(type, eventHandle); 7388 } 7389 } 7390 } 7391 if (special.add) { 7392 special.add.call(elem, handleObj); 7393 if (!handleObj.handler.guid) { 7394 handleObj.handler.guid = handler.guid; 7395 } 7396 } 7397 7398 // Add to the element's handler list, delegates in front 7399 if (selector) { 7400 handlers.splice(handlers.delegateCount++, 0, handleObj); 7401 } else { 7402 handlers.push(handleObj); 7403 } 7404 7405 // Keep track of which events have ever been used, for event optimization 7406 _jQuery2.event.global[type] = true; 7407 } 7408 }, 7409 // Detach an event or set of events from an element 7410 remove: function remove(elem, types, handler, selector, mappedTypes) { 7411 var j, 7412 origCount, 7413 tmp, 7414 events, 7415 t, 7416 handleObj, 7417 special, 7418 handlers, 7419 type, 7420 namespaces, 7421 origType, 7422 elemData = dataPriv.hasData(elem) && dataPriv.get(elem); 7423 if (!elemData || !(events = elemData.events)) { 7424 return; 7425 } 7426 7427 // Once for each type.namespace in types; type may be omitted 7428 types = (types || "").match(rnothtmlwhite) || [""]; 7429 t = types.length; 7430 while (t--) { 7431 tmp = rtypenamespace.exec(types[t]) || []; 7432 type = origType = tmp[1]; 7433 namespaces = (tmp[2] || "").split(".").sort(); 7434 7435 // Unbind all events (on this namespace, if provided) for the element 7436 if (!type) { 7437 for (type in events) { 7438 _jQuery2.event.remove(elem, type + types[t], handler, selector, true); 7439 } 7440 continue; 7441 } 7442 special = _jQuery2.event.special[type] || {}; 7443 type = (selector ? special.delegateType : special.bindType) || type; 7444 handlers = events[type] || []; 7445 tmp = tmp[2] && new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)"); 7446 7447 // Remove matching events 7448 origCount = j = handlers.length; 7449 while (j--) { 7450 handleObj = handlers[j]; 7451 if ((mappedTypes || origType === handleObj.origType) && (!handler || handler.guid === handleObj.guid) && (!tmp || tmp.test(handleObj.namespace)) && (!selector || selector === handleObj.selector || selector === "**" && handleObj.selector)) { 7452 handlers.splice(j, 1); 7453 if (handleObj.selector) { 7454 handlers.delegateCount--; 7455 } 7456 if (special.remove) { 7457 special.remove.call(elem, handleObj); 7458 } 7459 } 7460 } 7461 7462 // Remove generic event handler if we removed something and no more handlers exist 7463 // (avoids potential for endless recursion during removal of special event handlers) 7464 if (origCount && !handlers.length) { 7465 if (!special.teardown || special.teardown.call(elem, namespaces, elemData.handle) === false) { 7466 _jQuery2.removeEvent(elem, type, elemData.handle); 7467 } 7468 delete events[type]; 7469 } 7470 } 7471 7472 // Remove data and the expando if it's no longer used 7473 if (_jQuery2.isEmptyObject(events)) { 7474 dataPriv.remove(elem, "handle events"); 7475 } 7476 }, 7477 dispatch: function dispatch(nativeEvent) { 7478 var i, 7479 j, 7480 ret, 7481 matched, 7482 handleObj, 7483 handlerQueue, 7484 args = new Array(arguments.length), 7485 // Make a writable jQuery.Event from the native event object 7486 event = _jQuery2.event.fix(nativeEvent), 7487 handlers = (dataPriv.get(this, "events") || Object.create(null))[event.type] || [], 7488 special = _jQuery2.event.special[event.type] || {}; 7489 7490 // Use the fix-ed jQuery.Event rather than the (read-only) native event 7491 args[0] = event; 7492 for (i = 1; i < arguments.length; i++) { 7493 args[i] = arguments[i]; 7494 } 7495 event.delegateTarget = this; 7496 7497 // Call the preDispatch hook for the mapped type, and let it bail if desired 7498 if (special.preDispatch && special.preDispatch.call(this, event) === false) { 7499 return; 7500 } 7501 7502 // Determine handlers 7503 handlerQueue = _jQuery2.event.handlers.call(this, event, handlers); 7504 7505 // Run delegates first; they may want to stop propagation beneath us 7506 i = 0; 7507 while ((matched = handlerQueue[i++]) && !event.isPropagationStopped()) { 7508 event.currentTarget = matched.elem; 7509 j = 0; 7510 while ((handleObj = matched.handlers[j++]) && !event.isImmediatePropagationStopped()) { 7511 // If the event is namespaced, then each handler is only invoked if it is 7512 // specially universal or its namespaces are a superset of the event's. 7513 if (!event.rnamespace || handleObj.namespace === false || event.rnamespace.test(handleObj.namespace)) { 7514 event.handleObj = handleObj; 7515 event.data = handleObj.data; 7516 ret = ((_jQuery2.event.special[handleObj.origType] || {}).handle || handleObj.handler).apply(matched.elem, args); 7517 if (ret !== undefined) { 7518 if ((event.result = ret) === false) { 7519 event.preventDefault(); 7520 event.stopPropagation(); 7521 } 7522 } 7523 } 7524 } 7525 } 7526 7527 // Call the postDispatch hook for the mapped type 7528 if (special.postDispatch) { 7529 special.postDispatch.call(this, event); 7530 } 7531 return event.result; 7532 }, 7533 handlers: function handlers(event, _handlers) { 7534 var i, 7535 handleObj, 7536 sel, 7537 matchedHandlers, 7538 matchedSelectors, 7539 handlerQueue = [], 7540 delegateCount = _handlers.delegateCount, 7541 cur = event.target; 7542 7543 // Find delegate handlers 7544 if (delegateCount && 7545 // Support: IE <=9 7546 // Black-hole SVG <use> instance trees (trac-13180) 7547 cur.nodeType && 7548 // Support: Firefox <=42 7549 // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) 7550 // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click 7551 // Support: IE 11 only 7552 // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) 7553 !(event.type === "click" && event.button >= 1)) { 7554 for (; cur !== this; cur = cur.parentNode || this) { 7555 // Don't check non-elements (trac-13208) 7556 // Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764) 7557 if (cur.nodeType === 1 && !(event.type === "click" && cur.disabled === true)) { 7558 matchedHandlers = []; 7559 matchedSelectors = {}; 7560 for (i = 0; i < delegateCount; i++) { 7561 handleObj = _handlers[i]; 7562 7563 // Don't conflict with Object.prototype properties (trac-13203) 7564 sel = handleObj.selector + " "; 7565 if (matchedSelectors[sel] === undefined) { 7566 matchedSelectors[sel] = handleObj.needsContext ? _jQuery2(sel, this).index(cur) > -1 : _jQuery2.find(sel, this, null, [cur]).length; 7567 } 7568 if (matchedSelectors[sel]) { 7569 matchedHandlers.push(handleObj); 7570 } 7571 } 7572 if (matchedHandlers.length) { 7573 handlerQueue.push({ 7574 elem: cur, 7575 handlers: matchedHandlers 7576 }); 7577 } 7578 } 7579 } 7580 } 7581 7582 // Add the remaining (directly-bound) handlers 7583 cur = this; 7584 if (delegateCount < _handlers.length) { 7585 handlerQueue.push({ 7586 elem: cur, 7587 handlers: _handlers.slice(delegateCount) 7588 }); 7589 } 7590 return handlerQueue; 7591 }, 7592 addProp: function addProp(name, hook) { 7593 Object.defineProperty(_jQuery2.Event.prototype, name, { 7594 enumerable: true, 7595 configurable: true, 7596 get: isFunction(hook) ? function () { 7597 if (this.originalEvent) { 7598 return hook(this.originalEvent); 7599 } 7600 } : function () { 7601 if (this.originalEvent) { 7602 return this.originalEvent[name]; 7603 } 7604 }, 7605 set: function set(value) { 7606 Object.defineProperty(this, name, { 7607 enumerable: true, 7608 configurable: true, 7609 writable: true, 7610 value: value 7611 }); 7612 } 7613 }); 7614 }, 7615 fix: function fix(originalEvent) { 7616 return originalEvent[_jQuery2.expando] ? originalEvent : new _jQuery2.Event(originalEvent); 7617 }, 7618 special: { 7619 load: { 7620 // Prevent triggered image.load events from bubbling to window.load 7621 noBubble: true 7622 }, 7623 click: { 7624 // Utilize native event to ensure correct state for checkable inputs 7625 setup: function setup(data) { 7626 // For mutual compressibility with _default, replace `this` access with a local var. 7627 // `|| data` is dead code meant only to preserve the variable through minification. 7628 var el = this || data; 7629 7630 // Claim the first handler 7631 if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) { 7632 // dataPriv.set( el, "click", ... ) 7633 leverageNative(el, "click", true); 7634 } 7635 7636 // Return false to allow normal processing in the caller 7637 return false; 7638 }, 7639 trigger: function trigger(data) { 7640 // For mutual compressibility with _default, replace `this` access with a local var. 7641 // `|| data` is dead code meant only to preserve the variable through minification. 7642 var el = this || data; 7643 7644 // Force setup before triggering a click 7645 if (rcheckableType.test(el.type) && el.click && nodeName(el, "input")) { 7646 leverageNative(el, "click"); 7647 } 7648 7649 // Return non-false to allow normal event-path propagation 7650 return true; 7651 }, 7652 // For cross-browser consistency, suppress native .click() on links 7653 // Also prevent it if we're currently inside a leveraged native-event stack 7654 _default: function _default(event) { 7655 var target = event.target; 7656 return rcheckableType.test(target.type) && target.click && nodeName(target, "input") && dataPriv.get(target, "click") || nodeName(target, "a"); 7657 } 7658 }, 7659 beforeunload: { 7660 postDispatch: function postDispatch(event) { 7661 // Support: Firefox 20+ 7662 // Firefox doesn't alert if the returnValue field is not set. 7663 if (event.result !== undefined && event.originalEvent) { 7664 event.originalEvent.returnValue = event.result; 7665 } 7666 } 7667 } 7668 } 7669 }; 7670 7671 // Ensure the presence of an event listener that handles manually-triggered 7672 // synthetic events by interrupting progress until reinvoked in response to 7673 // *native* events that it fires directly, ensuring that state changes have 7674 // already occurred before other listeners are invoked. 7675 function leverageNative(el, type, isSetup) { 7676 // Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add 7677 if (!isSetup) { 7678 if (dataPriv.get(el, type) === undefined) { 7679 _jQuery2.event.add(el, type, returnTrue); 7680 } 7681 return; 7682 } 7683 7684 // Register the controller as a special universal handler for all event namespaces 7685 dataPriv.set(el, type, false); 7686 _jQuery2.event.add(el, type, { 7687 namespace: false, 7688 handler: function handler(event) { 7689 var result, 7690 saved = dataPriv.get(this, type); 7691 if (event.isTrigger & 1 && this[type]) { 7692 // Interrupt processing of the outer synthetic .trigger()ed event 7693 if (!saved) { 7694 // Store arguments for use when handling the inner native event 7695 // There will always be at least one argument (an event object), so this array 7696 // will not be confused with a leftover capture object. 7697 saved = _slice.call(arguments); 7698 dataPriv.set(this, type, saved); 7699 7700 // Trigger the native event and capture its result 7701 this[type](); 7702 result = dataPriv.get(this, type); 7703 dataPriv.set(this, type, false); 7704 if (saved !== result) { 7705 // Cancel the outer synthetic event 7706 event.stopImmediatePropagation(); 7707 event.preventDefault(); 7708 return result; 7709 } 7710 7711 // If this is an inner synthetic event for an event with a bubbling surrogate 7712 // (focus or blur), assume that the surrogate already propagated from triggering 7713 // the native event and prevent that from happening again here. 7714 // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the 7715 // bubbling surrogate propagates *after* the non-bubbling base), but that seems 7716 // less bad than duplication. 7717 } else if ((_jQuery2.event.special[type] || {}).delegateType) { 7718 event.stopPropagation(); 7719 } 7720 7721 // If this is a native event triggered above, everything is now in order 7722 // Fire an inner synthetic event with the original arguments 7723 } else if (saved) { 7724 // ...and capture the result 7725 dataPriv.set(this, type, _jQuery2.event.trigger(saved[0], saved.slice(1), this)); 7726 7727 // Abort handling of the native event by all jQuery handlers while allowing 7728 // native handlers on the same element to run. On target, this is achieved 7729 // by stopping immediate propagation just on the jQuery event. However, 7730 // the native event is re-wrapped by a jQuery one on each level of the 7731 // propagation so the only way to stop it for jQuery is to stop it for 7732 // everyone via native `stopPropagation()`. This is not a problem for 7733 // focus/blur which don't bubble, but it does also stop click on checkboxes 7734 // and radios. We accept this limitation. 7735 event.stopPropagation(); 7736 event.isImmediatePropagationStopped = returnTrue; 7737 } 7738 } 7739 }); 7740 } 7741 _jQuery2.removeEvent = function (elem, type, handle) { 7742 // This "if" is needed for plain objects 7743 if (elem.removeEventListener) { 7744 elem.removeEventListener(type, handle); 7745 } 7746 }; 7747 _jQuery2.Event = function (src, props) { 7748 // Allow instantiation without the 'new' keyword 7749 if (!(this instanceof _jQuery2.Event)) { 7750 return new _jQuery2.Event(src, props); 7751 } 7752 7753 // Event object 7754 if (src && src.type) { 7755 this.originalEvent = src; 7756 this.type = src.type; 7757 7758 // Events bubbling up the document may have been marked as prevented 7759 // by a handler lower down the tree; reflect the correct value. 7760 this.isDefaultPrevented = src.defaultPrevented || src.defaultPrevented === undefined && 7761 // Support: Android <=2.3 only 7762 src.returnValue === false ? returnTrue : returnFalse; 7763 7764 // Create target properties 7765 // Support: Safari <=6 - 7 only 7766 // Target should not be a text node (trac-504, trac-13143) 7767 this.target = src.target && src.target.nodeType === 3 ? src.target.parentNode : src.target; 7768 this.currentTarget = src.currentTarget; 7769 this.relatedTarget = src.relatedTarget; 7770 7771 // Event type 7772 } else { 7773 this.type = src; 7774 } 7775 7776 // Put explicitly provided properties onto the event object 7777 if (props) { 7778 _jQuery2.extend(this, props); 7779 } 7780 7781 // Create a timestamp if incoming event doesn't have one 7782 this.timeStamp = src && src.timeStamp || Date.now(); 7783 7784 // Mark it as fixed 7785 this[_jQuery2.expando] = true; 7786 }; 7787 7788 // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding 7789 // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html 7790 _jQuery2.Event.prototype = { 7791 constructor: _jQuery2.Event, 7792 isDefaultPrevented: returnFalse, 7793 isPropagationStopped: returnFalse, 7794 isImmediatePropagationStopped: returnFalse, 7795 isSimulated: false, 7796 preventDefault: function preventDefault() { 7797 var e = this.originalEvent; 7798 this.isDefaultPrevented = returnTrue; 7799 if (e && !this.isSimulated) { 7800 e.preventDefault(); 7801 } 7802 }, 7803 stopPropagation: function stopPropagation() { 7804 var e = this.originalEvent; 7805 this.isPropagationStopped = returnTrue; 7806 if (e && !this.isSimulated) { 7807 e.stopPropagation(); 7808 } 7809 }, 7810 stopImmediatePropagation: function stopImmediatePropagation() { 7811 var e = this.originalEvent; 7812 this.isImmediatePropagationStopped = returnTrue; 7813 if (e && !this.isSimulated) { 7814 e.stopImmediatePropagation(); 7815 } 7816 this.stopPropagation(); 7817 } 7818 }; 7819 7820 // Includes all common event props including KeyEvent and MouseEvent specific props 7821 _jQuery2.each({ 7822 altKey: true, 7823 bubbles: true, 7824 cancelable: true, 7825 changedTouches: true, 7826 ctrlKey: true, 7827 detail: true, 7828 eventPhase: true, 7829 metaKey: true, 7830 pageX: true, 7831 pageY: true, 7832 shiftKey: true, 7833 view: true, 7834 "char": true, 7835 code: true, 7836 charCode: true, 7837 key: true, 7838 keyCode: true, 7839 button: true, 7840 buttons: true, 7841 clientX: true, 7842 clientY: true, 7843 offsetX: true, 7844 offsetY: true, 7845 pointerId: true, 7846 pointerType: true, 7847 screenX: true, 7848 screenY: true, 7849 targetTouches: true, 7850 toElement: true, 7851 touches: true, 7852 which: true 7853 }, _jQuery2.event.addProp); 7854 _jQuery2.each({ 7855 focus: "focusin", 7856 blur: "focusout" 7857 }, function (type, delegateType) { 7858 function focusMappedHandler(nativeEvent) { 7859 if (document.documentMode) { 7860 // Support: IE 11+ 7861 // Attach a single focusin/focusout handler on the document while someone wants 7862 // focus/blur. This is because the former are synchronous in IE while the latter 7863 // are async. In other browsers, all those handlers are invoked synchronously. 7864 7865 // `handle` from private data would already wrap the event, but we need 7866 // to change the `type` here. 7867 var handle = dataPriv.get(this, "handle"), 7868 event = _jQuery2.event.fix(nativeEvent); 7869 event.type = nativeEvent.type === "focusin" ? "focus" : "blur"; 7870 event.isSimulated = true; 7871 7872 // First, handle focusin/focusout 7873 handle(nativeEvent); 7874 7875 // ...then, handle focus/blur 7876 // 7877 // focus/blur don't bubble while focusin/focusout do; simulate the former by only 7878 // invoking the handler at the lower level. 7879 if (event.target === event.currentTarget) { 7880 // The setup part calls `leverageNative`, which, in turn, calls 7881 // `jQuery.event.add`, so event handle will already have been set 7882 // by this point. 7883 handle(event); 7884 } 7885 } else { 7886 // For non-IE browsers, attach a single capturing handler on the document 7887 // while someone wants focusin/focusout. 7888 _jQuery2.event.simulate(delegateType, nativeEvent.target, _jQuery2.event.fix(nativeEvent)); 7889 } 7890 } 7891 _jQuery2.event.special[type] = { 7892 // Utilize native event if possible so blur/focus sequence is correct 7893 setup: function setup() { 7894 var attaches; 7895 7896 // Claim the first handler 7897 // dataPriv.set( this, "focus", ... ) 7898 // dataPriv.set( this, "blur", ... ) 7899 leverageNative(this, type, true); 7900 if (document.documentMode) { 7901 // Support: IE 9 - 11+ 7902 // We use the same native handler for focusin & focus (and focusout & blur) 7903 // so we need to coordinate setup & teardown parts between those events. 7904 // Use `delegateType` as the key as `type` is already used by `leverageNative`. 7905 attaches = dataPriv.get(this, delegateType); 7906 if (!attaches) { 7907 this.addEventListener(delegateType, focusMappedHandler); 7908 } 7909 dataPriv.set(this, delegateType, (attaches || 0) + 1); 7910 } else { 7911 // Return false to allow normal processing in the caller 7912 return false; 7913 } 7914 }, 7915 trigger: function trigger() { 7916 // Force setup before trigger 7917 leverageNative(this, type); 7918 7919 // Return non-false to allow normal event-path propagation 7920 return true; 7921 }, 7922 teardown: function teardown() { 7923 var attaches; 7924 if (document.documentMode) { 7925 attaches = dataPriv.get(this, delegateType) - 1; 7926 if (!attaches) { 7927 this.removeEventListener(delegateType, focusMappedHandler); 7928 dataPriv.remove(this, delegateType); 7929 } else { 7930 dataPriv.set(this, delegateType, attaches); 7931 } 7932 } else { 7933 // Return false to indicate standard teardown should be applied 7934 return false; 7935 } 7936 }, 7937 // Suppress native focus or blur if we're currently inside 7938 // a leveraged native-event stack 7939 _default: function _default(event) { 7940 return dataPriv.get(event.target, type); 7941 }, 7942 delegateType: delegateType 7943 }; 7944 7945 // Support: Firefox <=44 7946 // Firefox doesn't have focus(in | out) events 7947 // Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 7948 // 7949 // Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 7950 // focus(in | out) events fire after focus & blur events, 7951 // which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order 7952 // Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 7953 // 7954 // Support: IE 9 - 11+ 7955 // To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch, 7956 // attach a single handler for both events in IE. 7957 _jQuery2.event.special[delegateType] = { 7958 setup: function setup() { 7959 // Handle: regular nodes (via `this.ownerDocument`), window 7960 // (via `this.document`) & document (via `this`). 7961 var doc = this.ownerDocument || this.document || this, 7962 dataHolder = document.documentMode ? this : doc, 7963 attaches = dataPriv.get(dataHolder, delegateType); 7964 7965 // Support: IE 9 - 11+ 7966 // We use the same native handler for focusin & focus (and focusout & blur) 7967 // so we need to coordinate setup & teardown parts between those events. 7968 // Use `delegateType` as the key as `type` is already used by `leverageNative`. 7969 if (!attaches) { 7970 if (document.documentMode) { 7971 this.addEventListener(delegateType, focusMappedHandler); 7972 } else { 7973 doc.addEventListener(type, focusMappedHandler, true); 7974 } 7975 } 7976 dataPriv.set(dataHolder, delegateType, (attaches || 0) + 1); 7977 }, 7978 teardown: function teardown() { 7979 var doc = this.ownerDocument || this.document || this, 7980 dataHolder = document.documentMode ? this : doc, 7981 attaches = dataPriv.get(dataHolder, delegateType) - 1; 7982 if (!attaches) { 7983 if (document.documentMode) { 7984 this.removeEventListener(delegateType, focusMappedHandler); 7985 } else { 7986 doc.removeEventListener(type, focusMappedHandler, true); 7987 } 7988 dataPriv.remove(dataHolder, delegateType); 7989 } else { 7990 dataPriv.set(dataHolder, delegateType, attaches); 7991 } 7992 } 7993 }; 7994 }); 7995 7996 // Create mouseenter/leave events using mouseover/out and event-time checks 7997 // so that event delegation works in jQuery. 7998 // Do the same for pointerenter/pointerleave and pointerover/pointerout 7999 // 8000 // Support: Safari 7 only 8001 // Safari sends mouseenter too often; see: 8002 // https://bugs.chromium.org/p/chromium/issues/detail?id=470258 8003 // for the description of the bug (it existed in older Chrome versions as well). 8004 _jQuery2.each({ 8005 mouseenter: "mouseover", 8006 mouseleave: "mouseout", 8007 pointerenter: "pointerover", 8008 pointerleave: "pointerout" 8009 }, function (orig, fix) { 8010 _jQuery2.event.special[orig] = { 8011 delegateType: fix, 8012 bindType: fix, 8013 handle: function handle(event) { 8014 var ret, 8015 target = this, 8016 related = event.relatedTarget, 8017 handleObj = event.handleObj; 8018 8019 // For mouseenter/leave call the handler if related is outside the target. 8020 // NB: No relatedTarget if the mouse left/entered the browser window 8021 if (!related || related !== target && !_jQuery2.contains(target, related)) { 8022 event.type = handleObj.origType; 8023 ret = handleObj.handler.apply(this, arguments); 8024 event.type = fix; 8025 } 8026 return ret; 8027 } 8028 }; 8029 }); 8030 _jQuery2.fn.extend({ 8031 on: function on(types, selector, data, fn) { 8032 return _on(this, types, selector, data, fn); 8033 }, 8034 one: function one(types, selector, data, fn) { 8035 return _on(this, types, selector, data, fn, 1); 8036 }, 8037 off: function off(types, selector, fn) { 8038 var handleObj, type; 8039 if (types && types.preventDefault && types.handleObj) { 8040 // ( event ) dispatched jQuery.Event 8041 handleObj = types.handleObj; 8042 _jQuery2(types.delegateTarget).off(handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, handleObj.selector, handleObj.handler); 8043 return this; 8044 } 8045 if (_typeof(types) === "object") { 8046 // ( types-object [, selector] ) 8047 for (type in types) { 8048 this.off(type, selector, types[type]); 8049 } 8050 return this; 8051 } 8052 if (selector === false || typeof selector === "function") { 8053 // ( types [, fn] ) 8054 fn = selector; 8055 selector = undefined; 8056 } 8057 if (fn === false) { 8058 fn = returnFalse; 8059 } 8060 return this.each(function () { 8061 _jQuery2.event.remove(this, types, fn, selector); 8062 }); 8063 } 8064 }); 8065 var 8066 // Support: IE <=10 - 11, Edge 12 - 13 only 8067 // In IE/Edge using regex groups here causes severe slowdowns. 8068 // See https://connect.microsoft.com/IE/feedback/details/1736512/ 8069 rnoInnerhtml = /<script|<style|<link/i, 8070 // checked="checked" or checked 8071 rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, 8072 rcleanScript = /^\s*<!\[CDATA\[|\]\]>\s*$/g; 8073 8074 // Prefer a tbody over its parent table for containing new rows 8075 function manipulationTarget(elem, content) { 8076 if (nodeName(elem, "table") && nodeName(content.nodeType !== 11 ? content : content.firstChild, "tr")) { 8077 return _jQuery2(elem).children("tbody")[0] || elem; 8078 } 8079 return elem; 8080 } 8081 8082 // Replace/restore the type attribute of script elements for safe DOM manipulation 8083 function disableScript(elem) { 8084 elem.type = (elem.getAttribute("type") !== null) + "/" + elem.type; 8085 return elem; 8086 } 8087 function restoreScript(elem) { 8088 if ((elem.type || "").slice(0, 5) === "true/") { 8089 elem.type = elem.type.slice(5); 8090 } else { 8091 elem.removeAttribute("type"); 8092 } 8093 return elem; 8094 } 8095 function cloneCopyEvent(src, dest) { 8096 var i, l, type, pdataOld, udataOld, udataCur, events; 8097 if (dest.nodeType !== 1) { 8098 return; 8099 } 8100 8101 // 1. Copy private data: events, handlers, etc. 8102 if (dataPriv.hasData(src)) { 8103 pdataOld = dataPriv.get(src); 8104 events = pdataOld.events; 8105 if (events) { 8106 dataPriv.remove(dest, "handle events"); 8107 for (type in events) { 8108 for (i = 0, l = events[type].length; i < l; i++) { 8109 _jQuery2.event.add(dest, type, events[type][i]); 8110 } 8111 } 8112 } 8113 } 8114 8115 // 2. Copy user data 8116 if (dataUser.hasData(src)) { 8117 udataOld = dataUser.access(src); 8118 udataCur = _jQuery2.extend({}, udataOld); 8119 dataUser.set(dest, udataCur); 8120 } 8121 } 8122 8123 // Fix IE bugs, see support tests 8124 function fixInput(src, dest) { 8125 var nodeName = dest.nodeName.toLowerCase(); 8126 8127 // Fails to persist the checked state of a cloned checkbox or radio button. 8128 if (nodeName === "input" && rcheckableType.test(src.type)) { 8129 dest.checked = src.checked; 8130 8131 // Fails to return the selected option to the default selected state when cloning options 8132 } else if (nodeName === "input" || nodeName === "textarea") { 8133 dest.defaultValue = src.defaultValue; 8134 } 8135 } 8136 function domManip(collection, args, callback, ignored) { 8137 // Flatten any nested arrays 8138 args = flat(args); 8139 var fragment, 8140 first, 8141 scripts, 8142 hasScripts, 8143 node, 8144 doc, 8145 i = 0, 8146 l = collection.length, 8147 iNoClone = l - 1, 8148 value = args[0], 8149 valueIsFunction = isFunction(value); 8150 8151 // We can't cloneNode fragments that contain checked, in WebKit 8152 if (valueIsFunction || l > 1 && typeof value === "string" && !support.checkClone && rchecked.test(value)) { 8153 return collection.each(function (index) { 8154 var self = collection.eq(index); 8155 if (valueIsFunction) { 8156 args[0] = value.call(this, index, self.html()); 8157 } 8158 domManip(self, args, callback, ignored); 8159 }); 8160 } 8161 if (l) { 8162 fragment = buildFragment(args, collection[0].ownerDocument, false, collection, ignored); 8163 first = fragment.firstChild; 8164 if (fragment.childNodes.length === 1) { 8165 fragment = first; 8166 } 8167 8168 // Require either new content or an interest in ignored elements to invoke the callback 8169 if (first || ignored) { 8170 scripts = _jQuery2.map(getAll(fragment, "script"), disableScript); 8171 hasScripts = scripts.length; 8172 8173 // Use the original fragment for the last item 8174 // instead of the first because it can end up 8175 // being emptied incorrectly in certain situations (trac-8070). 8176 for (; i < l; i++) { 8177 node = fragment; 8178 if (i !== iNoClone) { 8179 node = _jQuery2.clone(node, true, true); 8180 8181 // Keep references to cloned scripts for later restoration 8182 if (hasScripts) { 8183 // Support: Android <=4.0 only, PhantomJS 1 only 8184 // push.apply(_, arraylike) throws on ancient WebKit 8185 _jQuery2.merge(scripts, getAll(node, "script")); 8186 } 8187 } 8188 callback.call(collection[i], node, i); 8189 } 8190 if (hasScripts) { 8191 doc = scripts[scripts.length - 1].ownerDocument; 8192 8193 // Re-enable scripts 8194 _jQuery2.map(scripts, restoreScript); 8195 8196 // Evaluate executable scripts on first document insertion 8197 for (i = 0; i < hasScripts; i++) { 8198 node = scripts[i]; 8199 if (rscriptType.test(node.type || "") && !dataPriv.access(node, "globalEval") && _jQuery2.contains(doc, node)) { 8200 if (node.src && (node.type || "").toLowerCase() !== "module") { 8201 // Optional AJAX dependency, but won't run scripts if not present 8202 if (_jQuery2._evalUrl && !node.noModule) { 8203 _jQuery2._evalUrl(node.src, { 8204 nonce: node.nonce || node.getAttribute("nonce") 8205 }, doc); 8206 } 8207 } else { 8208 // Unwrap a CDATA section containing script contents. This shouldn't be 8209 // needed as in XML documents they're already not visible when 8210 // inspecting element contents and in HTML documents they have no 8211 // meaning but we're preserving that logic for backwards compatibility. 8212 // This will be removed completely in 4.0. See gh-4904. 8213 DOMEval(node.textContent.replace(rcleanScript, ""), node, doc); 8214 } 8215 } 8216 } 8217 } 8218 } 8219 } 8220 return collection; 8221 } 8222 function _remove(elem, selector, keepData) { 8223 var node, 8224 nodes = selector ? _jQuery2.filter(selector, elem) : elem, 8225 i = 0; 8226 for (; (node = nodes[i]) != null; i++) { 8227 if (!keepData && node.nodeType === 1) { 8228 _jQuery2.cleanData(getAll(node)); 8229 } 8230 if (node.parentNode) { 8231 if (keepData && isAttached(node)) { 8232 setGlobalEval(getAll(node, "script")); 8233 } 8234 node.parentNode.removeChild(node); 8235 } 8236 } 8237 return elem; 8238 } 8239 _jQuery2.extend({ 8240 htmlPrefilter: function htmlPrefilter(html) { 8241 return html; 8242 }, 8243 clone: function clone(elem, dataAndEvents, deepDataAndEvents) { 8244 var i, 8245 l, 8246 srcElements, 8247 destElements, 8248 clone = elem.cloneNode(true), 8249 inPage = isAttached(elem); 8250 8251 // Fix IE cloning issues 8252 if (!support.noCloneChecked && (elem.nodeType === 1 || elem.nodeType === 11) && !_jQuery2.isXMLDoc(elem)) { 8253 // We eschew jQuery#find here for performance reasons: 8254 // https://jsperf.com/getall-vs-sizzle/2 8255 destElements = getAll(clone); 8256 srcElements = getAll(elem); 8257 for (i = 0, l = srcElements.length; i < l; i++) { 8258 fixInput(srcElements[i], destElements[i]); 8259 } 8260 } 8261 8262 // Copy the events from the original to the clone 8263 if (dataAndEvents) { 8264 if (deepDataAndEvents) { 8265 srcElements = srcElements || getAll(elem); 8266 destElements = destElements || getAll(clone); 8267 for (i = 0, l = srcElements.length; i < l; i++) { 8268 cloneCopyEvent(srcElements[i], destElements[i]); 8269 } 8270 } else { 8271 cloneCopyEvent(elem, clone); 8272 } 8273 } 8274 8275 // Preserve script evaluation history 8276 destElements = getAll(clone, "script"); 8277 if (destElements.length > 0) { 8278 setGlobalEval(destElements, !inPage && getAll(elem, "script")); 8279 } 8280 8281 // Return the cloned set 8282 return clone; 8283 }, 8284 cleanData: function cleanData(elems) { 8285 var data, 8286 elem, 8287 type, 8288 special = _jQuery2.event.special, 8289 i = 0; 8290 for (; (elem = elems[i]) !== undefined; i++) { 8291 if (acceptData(elem)) { 8292 if (data = elem[dataPriv.expando]) { 8293 if (data.events) { 8294 for (type in data.events) { 8295 if (special[type]) { 8296 _jQuery2.event.remove(elem, type); 8297 8298 // This is a shortcut to avoid jQuery.event.remove's overhead 8299 } else { 8300 _jQuery2.removeEvent(elem, type, data.handle); 8301 } 8302 } 8303 } 8304 8305 // Support: Chrome <=35 - 45+ 8306 // Assign undefined instead of using delete, see Data#remove 8307 elem[dataPriv.expando] = undefined; 8308 } 8309 if (elem[dataUser.expando]) { 8310 // Support: Chrome <=35 - 45+ 8311 // Assign undefined instead of using delete, see Data#remove 8312 elem[dataUser.expando] = undefined; 8313 } 8314 } 8315 } 8316 } 8317 }); 8318 _jQuery2.fn.extend({ 8319 detach: function detach(selector) { 8320 return _remove(this, selector, true); 8321 }, 8322 remove: function remove(selector) { 8323 return _remove(this, selector); 8324 }, 8325 text: function text(value) { 8326 return _access(this, function (value) { 8327 return value === undefined ? _jQuery2.text(this) : this.empty().each(function () { 8328 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 8329 this.textContent = value; 8330 } 8331 }); 8332 }, null, value, arguments.length); 8333 }, 8334 append: function append() { 8335 return domManip(this, arguments, function (elem) { 8336 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 8337 var target = manipulationTarget(this, elem); 8338 target.appendChild(elem); 8339 } 8340 }); 8341 }, 8342 prepend: function prepend() { 8343 return domManip(this, arguments, function (elem) { 8344 if (this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9) { 8345 var target = manipulationTarget(this, elem); 8346 target.insertBefore(elem, target.firstChild); 8347 } 8348 }); 8349 }, 8350 before: function before() { 8351 return domManip(this, arguments, function (elem) { 8352 if (this.parentNode) { 8353 this.parentNode.insertBefore(elem, this); 8354 } 8355 }); 8356 }, 8357 after: function after() { 8358 return domManip(this, arguments, function (elem) { 8359 if (this.parentNode) { 8360 this.parentNode.insertBefore(elem, this.nextSibling); 8361 } 8362 }); 8363 }, 8364 empty: function empty() { 8365 var elem, 8366 i = 0; 8367 for (; (elem = this[i]) != null; i++) { 8368 if (elem.nodeType === 1) { 8369 // Prevent memory leaks 8370 _jQuery2.cleanData(getAll(elem, false)); 8371 8372 // Remove any remaining nodes 8373 elem.textContent = ""; 8374 } 8375 } 8376 return this; 8377 }, 8378 clone: function clone(dataAndEvents, deepDataAndEvents) { 8379 dataAndEvents = dataAndEvents == null ? false : dataAndEvents; 8380 deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; 8381 return this.map(function () { 8382 return _jQuery2.clone(this, dataAndEvents, deepDataAndEvents); 8383 }); 8384 }, 8385 html: function html(value) { 8386 return _access(this, function (value) { 8387 var elem = this[0] || {}, 8388 i = 0, 8389 l = this.length; 8390 if (value === undefined && elem.nodeType === 1) { 8391 return elem.innerHTML; 8392 } 8393 8394 // See if we can take a shortcut and just use innerHTML 8395 if (typeof value === "string" && !rnoInnerhtml.test(value) && !wrapMap[(rtagName.exec(value) || ["", ""])[1].toLowerCase()]) { 8396 value = _jQuery2.htmlPrefilter(value); 8397 try { 8398 for (; i < l; i++) { 8399 elem = this[i] || {}; 8400 8401 // Remove element nodes and prevent memory leaks 8402 if (elem.nodeType === 1) { 8403 _jQuery2.cleanData(getAll(elem, false)); 8404 elem.innerHTML = value; 8405 } 8406 } 8407 elem = 0; 8408 8409 // If using innerHTML throws an exception, use the fallback method 8410 } catch (e) {} 8411 } 8412 if (elem) { 8413 this.empty().append(value); 8414 } 8415 }, null, value, arguments.length); 8416 }, 8417 replaceWith: function replaceWith() { 8418 var ignored = []; 8419 8420 // Make the changes, replacing each non-ignored context element with the new content 8421 return domManip(this, arguments, function (elem) { 8422 var parent = this.parentNode; 8423 if (_jQuery2.inArray(this, ignored) < 0) { 8424 _jQuery2.cleanData(getAll(this)); 8425 if (parent) { 8426 parent.replaceChild(elem, this); 8427 } 8428 } 8429 8430 // Force callback invocation 8431 }, ignored); 8432 } 8433 }); 8434 _jQuery2.each({ 8435 appendTo: "append", 8436 prependTo: "prepend", 8437 insertBefore: "before", 8438 insertAfter: "after", 8439 replaceAll: "replaceWith" 8440 }, function (name, original) { 8441 _jQuery2.fn[name] = function (selector) { 8442 var elems, 8443 ret = [], 8444 insert = _jQuery2(selector), 8445 last = insert.length - 1, 8446 i = 0; 8447 for (; i <= last; i++) { 8448 elems = i === last ? this : this.clone(true); 8449 _jQuery2(insert[i])[original](elems); 8450 8451 // Support: Android <=4.0 only, PhantomJS 1 only 8452 // .get() because push.apply(_, arraylike) throws on ancient WebKit 8453 push.apply(ret, elems.get()); 8454 } 8455 return this.pushStack(ret); 8456 }; 8457 }); 8458 var rnumnonpx = new RegExp("^(" + pnum + ")(?!px)[a-z%]+$", "i"); 8459 var rcustomProp = /^--/; 8460 var getStyles = function getStyles(elem) { 8461 // Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150) 8462 // IE throws on elements created in popups 8463 // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 8464 var view = elem.ownerDocument.defaultView; 8465 if (!view || !view.opener) { 8466 view = window; 8467 } 8468 return view.getComputedStyle(elem); 8469 }; 8470 var swap = function swap(elem, options, callback) { 8471 var ret, 8472 name, 8473 old = {}; 8474 8475 // Remember the old values, and insert the new ones 8476 for (name in options) { 8477 old[name] = elem.style[name]; 8478 elem.style[name] = options[name]; 8479 } 8480 ret = callback.call(elem); 8481 8482 // Revert the old values 8483 for (name in options) { 8484 elem.style[name] = old[name]; 8485 } 8486 return ret; 8487 }; 8488 var rboxStyle = new RegExp(cssExpand.join("|"), "i"); 8489 (function () { 8490 // Executing both pixelPosition & boxSizingReliable tests require only one layout 8491 // so they're executed at the same time to save the second computation. 8492 function computeStyleTests() { 8493 // This is a singleton, we need to execute it only once 8494 if (!div) { 8495 return; 8496 } 8497 container.style.cssText = "position:absolute;left:-11111px;width:60px;" + "margin-top:1px;padding:0;border:0"; 8498 div.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + "margin:auto;border:1px;padding:1px;" + "width:60%;top:1%"; 8499 documentElement.appendChild(container).appendChild(div); 8500 var divStyle = window.getComputedStyle(div); 8501 pixelPositionVal = divStyle.top !== "1%"; 8502 8503 // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 8504 reliableMarginLeftVal = roundPixelMeasures(divStyle.marginLeft) === 12; 8505 8506 // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 8507 // Some styles come back with percentage values, even though they shouldn't 8508 div.style.right = "60%"; 8509 pixelBoxStylesVal = roundPixelMeasures(divStyle.right) === 36; 8510 8511 // Support: IE 9 - 11 only 8512 // Detect misreporting of content dimensions for box-sizing:border-box elements 8513 boxSizingReliableVal = roundPixelMeasures(divStyle.width) === 36; 8514 8515 // Support: IE 9 only 8516 // Detect overflow:scroll screwiness (gh-3699) 8517 // Support: Chrome <=64 8518 // Don't get tricked when zoom affects offsetWidth (gh-4029) 8519 div.style.position = "absolute"; 8520 scrollboxSizeVal = roundPixelMeasures(div.offsetWidth / 3) === 12; 8521 documentElement.removeChild(container); 8522 8523 // Nullify the div so it wouldn't be stored in the memory and 8524 // it will also be a sign that checks already performed 8525 div = null; 8526 } 8527 function roundPixelMeasures(measure) { 8528 return Math.round(parseFloat(measure)); 8529 } 8530 var pixelPositionVal, 8531 boxSizingReliableVal, 8532 scrollboxSizeVal, 8533 pixelBoxStylesVal, 8534 reliableTrDimensionsVal, 8535 reliableMarginLeftVal, 8536 container = document.createElement("div"), 8537 div = document.createElement("div"); 8538 8539 // Finish early in limited (non-browser) environments 8540 if (!div.style) { 8541 return; 8542 } 8543 8544 // Support: IE <=9 - 11 only 8545 // Style of cloned element affects source element cloned (trac-8908) 8546 div.style.backgroundClip = "content-box"; 8547 div.cloneNode(true).style.backgroundClip = ""; 8548 support.clearCloneStyle = div.style.backgroundClip === "content-box"; 8549 _jQuery2.extend(support, { 8550 boxSizingReliable: function boxSizingReliable() { 8551 computeStyleTests(); 8552 return boxSizingReliableVal; 8553 }, 8554 pixelBoxStyles: function pixelBoxStyles() { 8555 computeStyleTests(); 8556 return pixelBoxStylesVal; 8557 }, 8558 pixelPosition: function pixelPosition() { 8559 computeStyleTests(); 8560 return pixelPositionVal; 8561 }, 8562 reliableMarginLeft: function reliableMarginLeft() { 8563 computeStyleTests(); 8564 return reliableMarginLeftVal; 8565 }, 8566 scrollboxSize: function scrollboxSize() { 8567 computeStyleTests(); 8568 return scrollboxSizeVal; 8569 }, 8570 // Support: IE 9 - 11+, Edge 15 - 18+ 8571 // IE/Edge misreport `getComputedStyle` of table rows with width/height 8572 // set in CSS while `offset*` properties report correct values. 8573 // Behavior in IE 9 is more subtle than in newer versions & it passes 8574 // some versions of this test; make sure not to make it pass there! 8575 // 8576 // Support: Firefox 70+ 8577 // Only Firefox includes border widths 8578 // in computed dimensions. (gh-4529) 8579 reliableTrDimensions: function reliableTrDimensions() { 8580 var table, tr, trChild, trStyle; 8581 if (reliableTrDimensionsVal == null) { 8582 table = document.createElement("table"); 8583 tr = document.createElement("tr"); 8584 trChild = document.createElement("div"); 8585 table.style.cssText = "position:absolute;left:-11111px;border-collapse:separate"; 8586 tr.style.cssText = "box-sizing:content-box;border:1px solid"; 8587 8588 // Support: Chrome 86+ 8589 // Height set through cssText does not get applied. 8590 // Computed height then comes back as 0. 8591 tr.style.height = "1px"; 8592 trChild.style.height = "9px"; 8593 8594 // Support: Android 8 Chrome 86+ 8595 // In our bodyBackground.html iframe, 8596 // display for all div elements is set to "inline", 8597 // which causes a problem only in Android 8 Chrome 86. 8598 // Ensuring the div is `display: block` 8599 // gets around this issue. 8600 trChild.style.display = "block"; 8601 documentElement.appendChild(table).appendChild(tr).appendChild(trChild); 8602 trStyle = window.getComputedStyle(tr); 8603 reliableTrDimensionsVal = parseInt(trStyle.height, 10) + parseInt(trStyle.borderTopWidth, 10) + parseInt(trStyle.borderBottomWidth, 10) === tr.offsetHeight; 8604 documentElement.removeChild(table); 8605 } 8606 return reliableTrDimensionsVal; 8607 } 8608 }); 8609 })(); 8610 function curCSS(elem, name, computed) { 8611 var width, 8612 minWidth, 8613 maxWidth, 8614 ret, 8615 isCustomProp = rcustomProp.test(name), 8616 // Support: Firefox 51+ 8617 // Retrieving style before computed somehow 8618 // fixes an issue with getting wrong values 8619 // on detached elements 8620 style = elem.style; 8621 computed = computed || getStyles(elem); 8622 8623 // getPropertyValue is needed for: 8624 // .css('filter') (IE 9 only, trac-12537) 8625 // .css('--customProperty) (gh-3144) 8626 if (computed) { 8627 // Support: IE <=9 - 11+ 8628 // IE only supports `"float"` in `getPropertyValue`; in computed styles 8629 // it's only available as `"cssFloat"`. We no longer modify properties 8630 // sent to `.css()` apart from camelCasing, so we need to check both. 8631 // Normally, this would create difference in behavior: if 8632 // `getPropertyValue` returns an empty string, the value returned 8633 // by `.css()` would be `undefined`. This is usually the case for 8634 // disconnected elements. However, in IE even disconnected elements 8635 // with no styles return `"none"` for `getPropertyValue( "float" )` 8636 ret = computed.getPropertyValue(name) || computed[name]; 8637 if (isCustomProp && ret) { 8638 // Support: Firefox 105+, Chrome <=105+ 8639 // Spec requires trimming whitespace for custom properties (gh-4926). 8640 // Firefox only trims leading whitespace. Chrome just collapses 8641 // both leading & trailing whitespace to a single space. 8642 // 8643 // Fall back to `undefined` if empty string returned. 8644 // This collapses a missing definition with property defined 8645 // and set to an empty string but there's no standard API 8646 // allowing us to differentiate them without a performance penalty 8647 // and returning `undefined` aligns with older jQuery. 8648 // 8649 // rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED 8650 // as whitespace while CSS does not, but this is not a problem 8651 // because CSS preprocessing replaces them with U+000A LINE FEED 8652 // (which *is* CSS whitespace) 8653 // https://www.w3.org/TR/css-syntax-3/#input-preprocessing 8654 ret = ret.replace(rtrimCSS, "$1") || undefined; 8655 } 8656 if (ret === "" && !isAttached(elem)) { 8657 ret = _jQuery2.style(elem, name); 8658 } 8659 8660 // A tribute to the "awesome hack by Dean Edwards" 8661 // Android Browser returns percentage for some values, 8662 // but width seems to be reliably pixels. 8663 // This is against the CSSOM draft spec: 8664 // https://drafts.csswg.org/cssom/#resolved-values 8665 if (!support.pixelBoxStyles() && rnumnonpx.test(ret) && rboxStyle.test(name)) { 8666 // Remember the original values 8667 width = style.width; 8668 minWidth = style.minWidth; 8669 maxWidth = style.maxWidth; 8670 8671 // Put in the new values to get a computed value out 8672 style.minWidth = style.maxWidth = style.width = ret; 8673 ret = computed.width; 8674 8675 // Revert the changed values 8676 style.width = width; 8677 style.minWidth = minWidth; 8678 style.maxWidth = maxWidth; 8679 } 8680 } 8681 return ret !== undefined ? 8682 // Support: IE <=9 - 11 only 8683 // IE returns zIndex value as an integer. 8684 ret + "" : ret; 8685 } 8686 function addGetHookIf(conditionFn, hookFn) { 8687 // Define the hook, we'll check on the first run if it's really needed. 8688 return { 8689 get: function get() { 8690 if (conditionFn()) { 8691 // Hook not needed (or it's not possible to use it due 8692 // to missing dependency), remove it. 8693 delete this.get; 8694 return; 8695 } 8696 8697 // Hook needed; redefine it so that the support test is not executed again. 8698 return (this.get = hookFn).apply(this, arguments); 8699 } 8700 }; 8701 } 8702 var cssPrefixes = ["Webkit", "Moz", "ms"], 8703 emptyStyle = document.createElement("div").style, 8704 vendorProps = {}; 8705 8706 // Return a vendor-prefixed property or undefined 8707 function vendorPropName(name) { 8708 // Check for vendor prefixed names 8709 var capName = name[0].toUpperCase() + name.slice(1), 8710 i = cssPrefixes.length; 8711 while (i--) { 8712 name = cssPrefixes[i] + capName; 8713 if (name in emptyStyle) { 8714 return name; 8715 } 8716 } 8717 } 8718 8719 // Return a potentially-mapped jQuery.cssProps or vendor prefixed property 8720 function finalPropName(name) { 8721 var final = _jQuery2.cssProps[name] || vendorProps[name]; 8722 if (final) { 8723 return final; 8724 } 8725 if (name in emptyStyle) { 8726 return name; 8727 } 8728 return vendorProps[name] = vendorPropName(name) || name; 8729 } 8730 var 8731 // Swappable if display is none or starts with table 8732 // except "table", "table-cell", or "table-caption" 8733 // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display 8734 rdisplayswap = /^(none|table(?!-c[ea]).+)/, 8735 cssShow = { 8736 position: "absolute", 8737 visibility: "hidden", 8738 display: "block" 8739 }, 8740 cssNormalTransform = { 8741 letterSpacing: "0", 8742 fontWeight: "400" 8743 }; 8744 function setPositiveNumber(_elem, value, subtract) { 8745 // Any relative (+/-) values have already been 8746 // normalized at this point 8747 var matches = rcssNum.exec(value); 8748 return matches ? 8749 // Guard against undefined "subtract", e.g., when used as in cssHooks 8750 Math.max(0, matches[2] - (subtract || 0)) + (matches[3] || "px") : value; 8751 } 8752 function boxModelAdjustment(elem, dimension, box, isBorderBox, styles, computedVal) { 8753 var i = dimension === "width" ? 1 : 0, 8754 extra = 0, 8755 delta = 0, 8756 marginDelta = 0; 8757 8758 // Adjustment may not be necessary 8759 if (box === (isBorderBox ? "border" : "content")) { 8760 return 0; 8761 } 8762 for (; i < 4; i += 2) { 8763 // Both box models exclude margin 8764 // Count margin delta separately to only add it after scroll gutter adjustment. 8765 // This is needed to make negative margins work with `outerHeight( true )` (gh-3982). 8766 if (box === "margin") { 8767 marginDelta += _jQuery2.css(elem, box + cssExpand[i], true, styles); 8768 } 8769 8770 // If we get here with a content-box, we're seeking "padding" or "border" or "margin" 8771 if (!isBorderBox) { 8772 // Add padding 8773 delta += _jQuery2.css(elem, "padding" + cssExpand[i], true, styles); 8774 8775 // For "border" or "margin", add border 8776 if (box !== "padding") { 8777 delta += _jQuery2.css(elem, "border" + cssExpand[i] + "Width", true, styles); 8778 8779 // But still keep track of it otherwise 8780 } else { 8781 extra += _jQuery2.css(elem, "border" + cssExpand[i] + "Width", true, styles); 8782 } 8783 8784 // If we get here with a border-box (content + padding + border), we're seeking "content" or 8785 // "padding" or "margin" 8786 } else { 8787 // For "content", subtract padding 8788 if (box === "content") { 8789 delta -= _jQuery2.css(elem, "padding" + cssExpand[i], true, styles); 8790 } 8791 8792 // For "content" or "padding", subtract border 8793 if (box !== "margin") { 8794 delta -= _jQuery2.css(elem, "border" + cssExpand[i] + "Width", true, styles); 8795 } 8796 } 8797 } 8798 8799 // Account for positive content-box scroll gutter when requested by providing computedVal 8800 if (!isBorderBox && computedVal >= 0) { 8801 // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border 8802 // Assuming integer scroll gutter, subtract the rest and round down 8803 delta += Math.max(0, Math.ceil(elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - computedVal - delta - extra - 0.5 8804 8805 // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter 8806 // Use an explicit zero to avoid NaN (gh-3964) 8807 )) || 0; 8808 } 8809 return delta + marginDelta; 8810 } 8811 function getWidthOrHeight(elem, dimension, extra) { 8812 // Start with computed style 8813 var styles = getStyles(elem), 8814 // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). 8815 // Fake content-box until we know it's needed to know the true value. 8816 boxSizingNeeded = !support.boxSizingReliable() || extra, 8817 isBorderBox = boxSizingNeeded && _jQuery2.css(elem, "boxSizing", false, styles) === "border-box", 8818 valueIsBorderBox = isBorderBox, 8819 val = curCSS(elem, dimension, styles), 8820 offsetProp = "offset" + dimension[0].toUpperCase() + dimension.slice(1); 8821 8822 // Support: Firefox <=54 8823 // Return a confounding non-pixel value or feign ignorance, as appropriate. 8824 if (rnumnonpx.test(val)) { 8825 if (!extra) { 8826 return val; 8827 } 8828 val = "auto"; 8829 } 8830 8831 // Support: IE 9 - 11 only 8832 // Use offsetWidth/offsetHeight for when box sizing is unreliable. 8833 // In those cases, the computed value can be trusted to be border-box. 8834 if ((!support.boxSizingReliable() && isBorderBox || 8835 // Support: IE 10 - 11+, Edge 15 - 18+ 8836 // IE/Edge misreport `getComputedStyle` of table rows with width/height 8837 // set in CSS while `offset*` properties report correct values. 8838 // Interestingly, in some cases IE 9 doesn't suffer from this issue. 8839 !support.reliableTrDimensions() && nodeName(elem, "tr") || 8840 // Fall back to offsetWidth/offsetHeight when value is "auto" 8841 // This happens for inline elements with no explicit setting (gh-3571) 8842 val === "auto" || 8843 // Support: Android <=4.1 - 4.3 only 8844 // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) 8845 !parseFloat(val) && _jQuery2.css(elem, "display", false, styles) === "inline") && 8846 // Make sure the element is visible & connected 8847 elem.getClientRects().length) { 8848 isBorderBox = _jQuery2.css(elem, "boxSizing", false, styles) === "border-box"; 8849 8850 // Where available, offsetWidth/offsetHeight approximate border box dimensions. 8851 // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the 8852 // retrieved value as a content box dimension. 8853 valueIsBorderBox = offsetProp in elem; 8854 if (valueIsBorderBox) { 8855 val = elem[offsetProp]; 8856 } 8857 } 8858 8859 // Normalize "" and auto 8860 val = parseFloat(val) || 0; 8861 8862 // Adjust for the element's box model 8863 return val + boxModelAdjustment(elem, dimension, extra || (isBorderBox ? "border" : "content"), valueIsBorderBox, styles, 8864 // Provide the current computed size to request scroll gutter calculation (gh-3589) 8865 val) + "px"; 8866 } 8867 _jQuery2.extend({ 8868 // Add in style property hooks for overriding the default 8869 // behavior of getting and setting a style property 8870 cssHooks: { 8871 opacity: { 8872 get: function get(elem, computed) { 8873 if (computed) { 8874 // We should always get a number back from opacity 8875 var ret = curCSS(elem, "opacity"); 8876 return ret === "" ? "1" : ret; 8877 } 8878 } 8879 } 8880 }, 8881 // Don't automatically add "px" to these possibly-unitless properties 8882 cssNumber: { 8883 animationIterationCount: true, 8884 aspectRatio: true, 8885 borderImageSlice: true, 8886 columnCount: true, 8887 flexGrow: true, 8888 flexShrink: true, 8889 fontWeight: true, 8890 gridArea: true, 8891 gridColumn: true, 8892 gridColumnEnd: true, 8893 gridColumnStart: true, 8894 gridRow: true, 8895 gridRowEnd: true, 8896 gridRowStart: true, 8897 lineHeight: true, 8898 opacity: true, 8899 order: true, 8900 orphans: true, 8901 scale: true, 8902 widows: true, 8903 zIndex: true, 8904 zoom: true, 8905 // SVG-related 8906 fillOpacity: true, 8907 floodOpacity: true, 8908 stopOpacity: true, 8909 strokeMiterlimit: true, 8910 strokeOpacity: true 8911 }, 8912 // Add in properties whose names you wish to fix before 8913 // setting or getting the value 8914 cssProps: {}, 8915 // Get and set the style property on a DOM Node 8916 style: function style(elem, name, value, extra) { 8917 // Don't set styles on text and comment nodes 8918 if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) { 8919 return; 8920 } 8921 8922 // Make sure that we're working with the right name 8923 var ret, 8924 type, 8925 hooks, 8926 origName = camelCase(name), 8927 isCustomProp = rcustomProp.test(name), 8928 style = elem.style; 8929 8930 // Make sure that we're working with the right name. We don't 8931 // want to query the value if it is a CSS custom property 8932 // since they are user-defined. 8933 if (!isCustomProp) { 8934 name = finalPropName(origName); 8935 } 8936 8937 // Gets hook for the prefixed version, then unprefixed version 8938 hooks = _jQuery2.cssHooks[name] || _jQuery2.cssHooks[origName]; 8939 8940 // Check if we're setting a value 8941 if (value !== undefined) { 8942 type = _typeof(value); 8943 8944 // Convert "+=" or "-=" to relative numbers (trac-7345) 8945 if (type === "string" && (ret = rcssNum.exec(value)) && ret[1]) { 8946 value = adjustCSS(elem, name, ret); 8947 8948 // Fixes bug trac-9237 8949 type = "number"; 8950 } 8951 8952 // Make sure that null and NaN values aren't set (trac-7116) 8953 if (value == null || value !== value) { 8954 return; 8955 } 8956 8957 // If a number was passed in, add the unit (except for certain CSS properties) 8958 // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append 8959 // "px" to a few hardcoded values. 8960 if (type === "number" && !isCustomProp) { 8961 value += ret && ret[3] || (_jQuery2.cssNumber[origName] ? "" : "px"); 8962 } 8963 8964 // background-* props affect original clone's values 8965 if (!support.clearCloneStyle && value === "" && name.indexOf("background") === 0) { 8966 style[name] = "inherit"; 8967 } 8968 8969 // If a hook was provided, use that value, otherwise just set the specified value 8970 if (!hooks || !("set" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) { 8971 if (isCustomProp) { 8972 style.setProperty(name, value); 8973 } else { 8974 style[name] = value; 8975 } 8976 } 8977 } else { 8978 // If a hook was provided get the non-computed value from there 8979 if (hooks && "get" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) { 8980 return ret; 8981 } 8982 8983 // Otherwise just get the value from the style object 8984 return style[name]; 8985 } 8986 }, 8987 css: function css(elem, name, extra, styles) { 8988 var val, 8989 num, 8990 hooks, 8991 origName = camelCase(name), 8992 isCustomProp = rcustomProp.test(name); 8993 8994 // Make sure that we're working with the right name. We don't 8995 // want to modify the value if it is a CSS custom property 8996 // since they are user-defined. 8997 if (!isCustomProp) { 8998 name = finalPropName(origName); 8999 } 9000 9001 // Try prefixed name followed by the unprefixed name 9002 hooks = _jQuery2.cssHooks[name] || _jQuery2.cssHooks[origName]; 9003 9004 // If a hook was provided get the computed value from there 9005 if (hooks && "get" in hooks) { 9006 val = hooks.get(elem, true, extra); 9007 } 9008 9009 // Otherwise, if a way to get the computed value exists, use that 9010 if (val === undefined) { 9011 val = curCSS(elem, name, styles); 9012 } 9013 9014 // Convert "normal" to computed value 9015 if (val === "normal" && name in cssNormalTransform) { 9016 val = cssNormalTransform[name]; 9017 } 9018 9019 // Make numeric if forced or a qualifier was provided and val looks numeric 9020 if (extra === "" || extra) { 9021 num = parseFloat(val); 9022 return extra === true || isFinite(num) ? num || 0 : val; 9023 } 9024 return val; 9025 } 9026 }); 9027 _jQuery2.each(["height", "width"], function (_i, dimension) { 9028 _jQuery2.cssHooks[dimension] = { 9029 get: function get(elem, computed, extra) { 9030 if (computed) { 9031 // Certain elements can have dimension info if we invisibly show them 9032 // but it must have a current display style that would benefit 9033 return rdisplayswap.test(_jQuery2.css(elem, "display")) && ( 9034 // Support: Safari 8+ 9035 // Table columns in Safari have non-zero offsetWidth & zero 9036 // getBoundingClientRect().width unless display is changed. 9037 // Support: IE <=11 only 9038 // Running getBoundingClientRect on a disconnected node 9039 // in IE throws an error. 9040 !elem.getClientRects().length || !elem.getBoundingClientRect().width) ? swap(elem, cssShow, function () { 9041 return getWidthOrHeight(elem, dimension, extra); 9042 }) : getWidthOrHeight(elem, dimension, extra); 9043 } 9044 }, 9045 set: function set(elem, value, extra) { 9046 var matches, 9047 styles = getStyles(elem), 9048 // Only read styles.position if the test has a chance to fail 9049 // to avoid forcing a reflow. 9050 scrollboxSizeBuggy = !support.scrollboxSize() && styles.position === "absolute", 9051 // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) 9052 boxSizingNeeded = scrollboxSizeBuggy || extra, 9053 isBorderBox = boxSizingNeeded && _jQuery2.css(elem, "boxSizing", false, styles) === "border-box", 9054 subtract = extra ? boxModelAdjustment(elem, dimension, extra, isBorderBox, styles) : 0; 9055 9056 // Account for unreliable border-box dimensions by comparing offset* to computed and 9057 // faking a content-box to get border and padding (gh-3699) 9058 if (isBorderBox && scrollboxSizeBuggy) { 9059 subtract -= Math.ceil(elem["offset" + dimension[0].toUpperCase() + dimension.slice(1)] - parseFloat(styles[dimension]) - boxModelAdjustment(elem, dimension, "border", false, styles) - 0.5); 9060 } 9061 9062 // Convert to pixels if value adjustment is needed 9063 if (subtract && (matches = rcssNum.exec(value)) && (matches[3] || "px") !== "px") { 9064 elem.style[dimension] = value; 9065 value = _jQuery2.css(elem, dimension); 9066 } 9067 return setPositiveNumber(elem, value, subtract); 9068 } 9069 }; 9070 }); 9071 _jQuery2.cssHooks.marginLeft = addGetHookIf(support.reliableMarginLeft, function (elem, computed) { 9072 if (computed) { 9073 return (parseFloat(curCSS(elem, "marginLeft")) || elem.getBoundingClientRect().left - swap(elem, { 9074 marginLeft: 0 9075 }, function () { 9076 return elem.getBoundingClientRect().left; 9077 })) + "px"; 9078 } 9079 }); 9080 9081 // These hooks are used by animate to expand properties 9082 _jQuery2.each({ 9083 margin: "", 9084 padding: "", 9085 border: "Width" 9086 }, function (prefix, suffix) { 9087 _jQuery2.cssHooks[prefix + suffix] = { 9088 expand: function expand(value) { 9089 var i = 0, 9090 expanded = {}, 9091 // Assumes a single number if not a string 9092 parts = typeof value === "string" ? value.split(" ") : [value]; 9093 for (; i < 4; i++) { 9094 expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0]; 9095 } 9096 return expanded; 9097 } 9098 }; 9099 if (prefix !== "margin") { 9100 _jQuery2.cssHooks[prefix + suffix].set = setPositiveNumber; 9101 } 9102 }); 9103 _jQuery2.fn.extend({ 9104 css: function css(name, value) { 9105 return _access(this, function (elem, name, value) { 9106 var styles, 9107 len, 9108 map = {}, 9109 i = 0; 9110 if (Array.isArray(name)) { 9111 styles = getStyles(elem); 9112 len = name.length; 9113 for (; i < len; i++) { 9114 map[name[i]] = _jQuery2.css(elem, name[i], false, styles); 9115 } 9116 return map; 9117 } 9118 return value !== undefined ? _jQuery2.style(elem, name, value) : _jQuery2.css(elem, name); 9119 }, name, value, arguments.length > 1); 9120 } 9121 }); 9122 function Tween(elem, options, prop, end, easing) { 9123 return new Tween.prototype.init(elem, options, prop, end, easing); 9124 } 9125 _jQuery2.Tween = Tween; 9126 Tween.prototype = { 9127 constructor: Tween, 9128 init: function init(elem, options, prop, end, easing, unit) { 9129 this.elem = elem; 9130 this.prop = prop; 9131 this.easing = easing || _jQuery2.easing._default; 9132 this.options = options; 9133 this.start = this.now = this.cur(); 9134 this.end = end; 9135 this.unit = unit || (_jQuery2.cssNumber[prop] ? "" : "px"); 9136 }, 9137 cur: function cur() { 9138 var hooks = Tween.propHooks[this.prop]; 9139 return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this); 9140 }, 9141 run: function run(percent) { 9142 var eased, 9143 hooks = Tween.propHooks[this.prop]; 9144 if (this.options.duration) { 9145 this.pos = eased = _jQuery2.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration); 9146 } else { 9147 this.pos = eased = percent; 9148 } 9149 this.now = (this.end - this.start) * eased + this.start; 9150 if (this.options.step) { 9151 this.options.step.call(this.elem, this.now, this); 9152 } 9153 if (hooks && hooks.set) { 9154 hooks.set(this); 9155 } else { 9156 Tween.propHooks._default.set(this); 9157 } 9158 return this; 9159 } 9160 }; 9161 Tween.prototype.init.prototype = Tween.prototype; 9162 Tween.propHooks = { 9163 _default: { 9164 get: function get(tween) { 9165 var result; 9166 9167 // Use a property on the element directly when it is not a DOM element, 9168 // or when there is no matching style property that exists. 9169 if (tween.elem.nodeType !== 1 || tween.elem[tween.prop] != null && tween.elem.style[tween.prop] == null) { 9170 return tween.elem[tween.prop]; 9171 } 9172 9173 // Passing an empty string as a 3rd parameter to .css will automatically 9174 // attempt a parseFloat and fallback to a string if the parse fails. 9175 // Simple values such as "10px" are parsed to Float; 9176 // complex values such as "rotate(1rad)" are returned as-is. 9177 result = _jQuery2.css(tween.elem, tween.prop, ""); 9178 9179 // Empty strings, null, undefined and "auto" are converted to 0. 9180 return !result || result === "auto" ? 0 : result; 9181 }, 9182 set: function set(tween) { 9183 // Use step hook for back compat. 9184 // Use cssHook if its there. 9185 // Use .style if available and use plain properties where available. 9186 if (_jQuery2.fx.step[tween.prop]) { 9187 _jQuery2.fx.step[tween.prop](tween); 9188 } else if (tween.elem.nodeType === 1 && (_jQuery2.cssHooks[tween.prop] || tween.elem.style[finalPropName(tween.prop)] != null)) { 9189 _jQuery2.style(tween.elem, tween.prop, tween.now + tween.unit); 9190 } else { 9191 tween.elem[tween.prop] = tween.now; 9192 } 9193 } 9194 } 9195 }; 9196 9197 // Support: IE <=9 only 9198 // Panic based approach to setting things on disconnected nodes 9199 Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { 9200 set: function set(tween) { 9201 if (tween.elem.nodeType && tween.elem.parentNode) { 9202 tween.elem[tween.prop] = tween.now; 9203 } 9204 } 9205 }; 9206 _jQuery2.easing = { 9207 linear: function linear(p) { 9208 return p; 9209 }, 9210 swing: function swing(p) { 9211 return 0.5 - Math.cos(p * Math.PI) / 2; 9212 }, 9213 _default: "swing" 9214 }; 9215 _jQuery2.fx = Tween.prototype.init; 9216 9217 // Back compat <1.8 extension point 9218 _jQuery2.fx.step = {}; 9219 var fxNow, 9220 inProgress, 9221 rfxtypes = /^(?:toggle|show|hide)$/, 9222 rrun = /queueHooks$/; 9223 function schedule() { 9224 if (inProgress) { 9225 if (document.hidden === false && window.requestAnimationFrame) { 9226 window.requestAnimationFrame(schedule); 9227 } else { 9228 window.setTimeout(schedule, _jQuery2.fx.interval); 9229 } 9230 _jQuery2.fx.tick(); 9231 } 9232 } 9233 9234 // Animations created synchronously will run synchronously 9235 function createFxNow() { 9236 window.setTimeout(function () { 9237 fxNow = undefined; 9238 }); 9239 return fxNow = Date.now(); 9240 } 9241 9242 // Generate parameters to create a standard animation 9243 function genFx(type, includeWidth) { 9244 var which, 9245 i = 0, 9246 attrs = { 9247 height: type 9248 }; 9249 9250 // If we include width, step value is 1 to do all cssExpand values, 9251 // otherwise step value is 2 to skip over Left and Right 9252 includeWidth = includeWidth ? 1 : 0; 9253 for (; i < 4; i += 2 - includeWidth) { 9254 which = cssExpand[i]; 9255 attrs["margin" + which] = attrs["padding" + which] = type; 9256 } 9257 if (includeWidth) { 9258 attrs.opacity = attrs.width = type; 9259 } 9260 return attrs; 9261 } 9262 function createTween(value, prop, animation) { 9263 var tween, 9264 collection = (Animation.tweeners[prop] || []).concat(Animation.tweeners["*"]), 9265 index = 0, 9266 length = collection.length; 9267 for (; index < length; index++) { 9268 if (tween = collection[index].call(animation, prop, value)) { 9269 // We're done with this property 9270 return tween; 9271 } 9272 } 9273 } 9274 function defaultPrefilter(elem, props, opts) { 9275 var prop, 9276 value, 9277 toggle, 9278 hooks, 9279 oldfire, 9280 propTween, 9281 restoreDisplay, 9282 display, 9283 isBox = "width" in props || "height" in props, 9284 anim = this, 9285 orig = {}, 9286 style = elem.style, 9287 hidden = elem.nodeType && isHiddenWithinTree(elem), 9288 dataShow = dataPriv.get(elem, "fxshow"); 9289 9290 // Queue-skipping animations hijack the fx hooks 9291 if (!opts.queue) { 9292 hooks = _jQuery2._queueHooks(elem, "fx"); 9293 if (hooks.unqueued == null) { 9294 hooks.unqueued = 0; 9295 oldfire = hooks.empty.fire; 9296 hooks.empty.fire = function () { 9297 if (!hooks.unqueued) { 9298 oldfire(); 9299 } 9300 }; 9301 } 9302 hooks.unqueued++; 9303 anim.always(function () { 9304 // Ensure the complete handler is called before this completes 9305 anim.always(function () { 9306 hooks.unqueued--; 9307 if (!_jQuery2.queue(elem, "fx").length) { 9308 hooks.empty.fire(); 9309 } 9310 }); 9311 }); 9312 } 9313 9314 // Detect show/hide animations 9315 for (prop in props) { 9316 value = props[prop]; 9317 if (rfxtypes.test(value)) { 9318 delete props[prop]; 9319 toggle = toggle || value === "toggle"; 9320 if (value === (hidden ? "hide" : "show")) { 9321 // Pretend to be hidden if this is a "show" and 9322 // there is still data from a stopped show/hide 9323 if (value === "show" && dataShow && dataShow[prop] !== undefined) { 9324 hidden = true; 9325 9326 // Ignore all other no-op show/hide data 9327 } else { 9328 continue; 9329 } 9330 } 9331 orig[prop] = dataShow && dataShow[prop] || _jQuery2.style(elem, prop); 9332 } 9333 } 9334 9335 // Bail out if this is a no-op like .hide().hide() 9336 propTween = !_jQuery2.isEmptyObject(props); 9337 if (!propTween && _jQuery2.isEmptyObject(orig)) { 9338 return; 9339 } 9340 9341 // Restrict "overflow" and "display" styles during box animations 9342 if (isBox && elem.nodeType === 1) { 9343 // Support: IE <=9 - 11, Edge 12 - 15 9344 // Record all 3 overflow attributes because IE does not infer the shorthand 9345 // from identically-valued overflowX and overflowY and Edge just mirrors 9346 // the overflowX value there. 9347 opts.overflow = [style.overflow, style.overflowX, style.overflowY]; 9348 9349 // Identify a display type, preferring old show/hide data over the CSS cascade 9350 restoreDisplay = dataShow && dataShow.display; 9351 if (restoreDisplay == null) { 9352 restoreDisplay = dataPriv.get(elem, "display"); 9353 } 9354 display = _jQuery2.css(elem, "display"); 9355 if (display === "none") { 9356 if (restoreDisplay) { 9357 display = restoreDisplay; 9358 } else { 9359 // Get nonempty value(s) by temporarily forcing visibility 9360 showHide([elem], true); 9361 restoreDisplay = elem.style.display || restoreDisplay; 9362 display = _jQuery2.css(elem, "display"); 9363 showHide([elem]); 9364 } 9365 } 9366 9367 // Animate inline elements as inline-block 9368 if (display === "inline" || display === "inline-block" && restoreDisplay != null) { 9369 if (_jQuery2.css(elem, "float") === "none") { 9370 // Restore the original display value at the end of pure show/hide animations 9371 if (!propTween) { 9372 anim.done(function () { 9373 style.display = restoreDisplay; 9374 }); 9375 if (restoreDisplay == null) { 9376 display = style.display; 9377 restoreDisplay = display === "none" ? "" : display; 9378 } 9379 } 9380 style.display = "inline-block"; 9381 } 9382 } 9383 } 9384 if (opts.overflow) { 9385 style.overflow = "hidden"; 9386 anim.always(function () { 9387 style.overflow = opts.overflow[0]; 9388 style.overflowX = opts.overflow[1]; 9389 style.overflowY = opts.overflow[2]; 9390 }); 9391 } 9392 9393 // Implement show/hide animations 9394 propTween = false; 9395 for (prop in orig) { 9396 // General show/hide setup for this element animation 9397 if (!propTween) { 9398 if (dataShow) { 9399 if ("hidden" in dataShow) { 9400 hidden = dataShow.hidden; 9401 } 9402 } else { 9403 dataShow = dataPriv.access(elem, "fxshow", { 9404 display: restoreDisplay 9405 }); 9406 } 9407 9408 // Store hidden/visible for toggle so `.stop().toggle()` "reverses" 9409 if (toggle) { 9410 dataShow.hidden = !hidden; 9411 } 9412 9413 // Show elements before animating them 9414 if (hidden) { 9415 showHide([elem], true); 9416 } 9417 9418 /* eslint-disable no-loop-func */ 9419 9420 anim.done(function () { 9421 /* eslint-enable no-loop-func */ 9422 9423 // The final step of a "hide" animation is actually hiding the element 9424 if (!hidden) { 9425 showHide([elem]); 9426 } 9427 dataPriv.remove(elem, "fxshow"); 9428 for (prop in orig) { 9429 _jQuery2.style(elem, prop, orig[prop]); 9430 } 9431 }); 9432 } 9433 9434 // Per-property setup 9435 propTween = createTween(hidden ? dataShow[prop] : 0, prop, anim); 9436 if (!(prop in dataShow)) { 9437 dataShow[prop] = propTween.start; 9438 if (hidden) { 9439 propTween.end = propTween.start; 9440 propTween.start = 0; 9441 } 9442 } 9443 } 9444 } 9445 function propFilter(props, specialEasing) { 9446 var index, name, easing, value, hooks; 9447 9448 // camelCase, specialEasing and expand cssHook pass 9449 for (index in props) { 9450 name = camelCase(index); 9451 easing = specialEasing[name]; 9452 value = props[index]; 9453 if (Array.isArray(value)) { 9454 easing = value[1]; 9455 value = props[index] = value[0]; 9456 } 9457 if (index !== name) { 9458 props[name] = value; 9459 delete props[index]; 9460 } 9461 hooks = _jQuery2.cssHooks[name]; 9462 if (hooks && "expand" in hooks) { 9463 value = hooks.expand(value); 9464 delete props[name]; 9465 9466 // Not quite $.extend, this won't overwrite existing keys. 9467 // Reusing 'index' because we have the correct "name" 9468 for (index in value) { 9469 if (!(index in props)) { 9470 props[index] = value[index]; 9471 specialEasing[index] = easing; 9472 } 9473 } 9474 } else { 9475 specialEasing[name] = easing; 9476 } 9477 } 9478 } 9479 function Animation(elem, properties, options) { 9480 var result, 9481 stopped, 9482 index = 0, 9483 length = Animation.prefilters.length, 9484 deferred = _jQuery2.Deferred().always(function () { 9485 // Don't match elem in the :animated selector 9486 delete tick.elem; 9487 }), 9488 tick = function tick() { 9489 if (stopped) { 9490 return false; 9491 } 9492 var currentTime = fxNow || createFxNow(), 9493 remaining = Math.max(0, animation.startTime + animation.duration - currentTime), 9494 // Support: Android 2.3 only 9495 // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497) 9496 temp = remaining / animation.duration || 0, 9497 percent = 1 - temp, 9498 index = 0, 9499 length = animation.tweens.length; 9500 for (; index < length; index++) { 9501 animation.tweens[index].run(percent); 9502 } 9503 deferred.notifyWith(elem, [animation, percent, remaining]); 9504 9505 // If there's more to do, yield 9506 if (percent < 1 && length) { 9507 return remaining; 9508 } 9509 9510 // If this was an empty animation, synthesize a final progress notification 9511 if (!length) { 9512 deferred.notifyWith(elem, [animation, 1, 0]); 9513 } 9514 9515 // Resolve the animation and report its conclusion 9516 deferred.resolveWith(elem, [animation]); 9517 return false; 9518 }, 9519 animation = deferred.promise({ 9520 elem: elem, 9521 props: _jQuery2.extend({}, properties), 9522 opts: _jQuery2.extend(true, { 9523 specialEasing: {}, 9524 easing: _jQuery2.easing._default 9525 }, options), 9526 originalProperties: properties, 9527 originalOptions: options, 9528 startTime: fxNow || createFxNow(), 9529 duration: options.duration, 9530 tweens: [], 9531 createTween: function createTween(prop, end) { 9532 var tween = _jQuery2.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing); 9533 animation.tweens.push(tween); 9534 return tween; 9535 }, 9536 stop: function stop(gotoEnd) { 9537 var index = 0, 9538 // If we are going to the end, we want to run all the tweens 9539 // otherwise we skip this part 9540 length = gotoEnd ? animation.tweens.length : 0; 9541 if (stopped) { 9542 return this; 9543 } 9544 stopped = true; 9545 for (; index < length; index++) { 9546 animation.tweens[index].run(1); 9547 } 9548 9549 // Resolve when we played the last frame; otherwise, reject 9550 if (gotoEnd) { 9551 deferred.notifyWith(elem, [animation, 1, 0]); 9552 deferred.resolveWith(elem, [animation, gotoEnd]); 9553 } else { 9554 deferred.rejectWith(elem, [animation, gotoEnd]); 9555 } 9556 return this; 9557 } 9558 }), 9559 props = animation.props; 9560 propFilter(props, animation.opts.specialEasing); 9561 for (; index < length; index++) { 9562 result = Animation.prefilters[index].call(animation, elem, props, animation.opts); 9563 if (result) { 9564 if (isFunction(result.stop)) { 9565 _jQuery2._queueHooks(animation.elem, animation.opts.queue).stop = result.stop.bind(result); 9566 } 9567 return result; 9568 } 9569 } 9570 _jQuery2.map(props, createTween, animation); 9571 if (isFunction(animation.opts.start)) { 9572 animation.opts.start.call(elem, animation); 9573 } 9574 9575 // Attach callbacks from options 9576 animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always); 9577 _jQuery2.fx.timer(_jQuery2.extend(tick, { 9578 elem: elem, 9579 anim: animation, 9580 queue: animation.opts.queue 9581 })); 9582 return animation; 9583 } 9584 _jQuery2.Animation = _jQuery2.extend(Animation, { 9585 tweeners: { 9586 "*": [function (prop, value) { 9587 var tween = this.createTween(prop, value); 9588 adjustCSS(tween.elem, prop, rcssNum.exec(value), tween); 9589 return tween; 9590 }] 9591 }, 9592 tweener: function tweener(props, callback) { 9593 if (isFunction(props)) { 9594 callback = props; 9595 props = ["*"]; 9596 } else { 9597 props = props.match(rnothtmlwhite); 9598 } 9599 var prop, 9600 index = 0, 9601 length = props.length; 9602 for (; index < length; index++) { 9603 prop = props[index]; 9604 Animation.tweeners[prop] = Animation.tweeners[prop] || []; 9605 Animation.tweeners[prop].unshift(callback); 9606 } 9607 }, 9608 prefilters: [defaultPrefilter], 9609 prefilter: function prefilter(callback, prepend) { 9610 if (prepend) { 9611 Animation.prefilters.unshift(callback); 9612 } else { 9613 Animation.prefilters.push(callback); 9614 } 9615 } 9616 }); 9617 _jQuery2.speed = function (speed, easing, fn) { 9618 var opt = speed && _typeof(speed) === "object" ? _jQuery2.extend({}, speed) : { 9619 complete: fn || !fn && easing || isFunction(speed) && speed, 9620 duration: speed, 9621 easing: fn && easing || easing && !isFunction(easing) && easing 9622 }; 9623 9624 // Go to the end state if fx are off 9625 if (_jQuery2.fx.off) { 9626 opt.duration = 0; 9627 } else { 9628 if (typeof opt.duration !== "number") { 9629 if (opt.duration in _jQuery2.fx.speeds) { 9630 opt.duration = _jQuery2.fx.speeds[opt.duration]; 9631 } else { 9632 opt.duration = _jQuery2.fx.speeds._default; 9633 } 9634 } 9635 } 9636 9637 // Normalize opt.queue - true/undefined/null -> "fx" 9638 if (opt.queue == null || opt.queue === true) { 9639 opt.queue = "fx"; 9640 } 9641 9642 // Queueing 9643 opt.old = opt.complete; 9644 opt.complete = function () { 9645 if (isFunction(opt.old)) { 9646 opt.old.call(this); 9647 } 9648 if (opt.queue) { 9649 _jQuery2.dequeue(this, opt.queue); 9650 } 9651 }; 9652 return opt; 9653 }; 9654 _jQuery2.fn.extend({ 9655 fadeTo: function fadeTo(speed, to, easing, callback) { 9656 // Show any hidden elements after setting opacity to 0 9657 return this.filter(isHiddenWithinTree).css("opacity", 0).show() 9658 9659 // Animate to the value specified 9660 .end().animate({ 9661 opacity: to 9662 }, speed, easing, callback); 9663 }, 9664 animate: function animate(prop, speed, easing, callback) { 9665 var empty = _jQuery2.isEmptyObject(prop), 9666 optall = _jQuery2.speed(speed, easing, callback), 9667 doAnimation = function doAnimation() { 9668 // Operate on a copy of prop so per-property easing won't be lost 9669 var anim = Animation(this, _jQuery2.extend({}, prop), optall); 9670 9671 // Empty animations, or finishing resolves immediately 9672 if (empty || dataPriv.get(this, "finish")) { 9673 anim.stop(true); 9674 } 9675 }; 9676 doAnimation.finish = doAnimation; 9677 return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation); 9678 }, 9679 stop: function stop(type, clearQueue, gotoEnd) { 9680 var stopQueue = function stopQueue(hooks) { 9681 var stop = hooks.stop; 9682 delete hooks.stop; 9683 stop(gotoEnd); 9684 }; 9685 if (typeof type !== "string") { 9686 gotoEnd = clearQueue; 9687 clearQueue = type; 9688 type = undefined; 9689 } 9690 if (clearQueue) { 9691 this.queue(type || "fx", []); 9692 } 9693 return this.each(function () { 9694 var dequeue = true, 9695 index = type != null && type + "queueHooks", 9696 timers = _jQuery2.timers, 9697 data = dataPriv.get(this); 9698 if (index) { 9699 if (data[index] && data[index].stop) { 9700 stopQueue(data[index]); 9701 } 9702 } else { 9703 for (index in data) { 9704 if (data[index] && data[index].stop && rrun.test(index)) { 9705 stopQueue(data[index]); 9706 } 9707 } 9708 } 9709 for (index = timers.length; index--;) { 9710 if (timers[index].elem === this && (type == null || timers[index].queue === type)) { 9711 timers[index].anim.stop(gotoEnd); 9712 dequeue = false; 9713 timers.splice(index, 1); 9714 } 9715 } 9716 9717 // Start the next in the queue if the last step wasn't forced. 9718 // Timers currently will call their complete callbacks, which 9719 // will dequeue but only if they were gotoEnd. 9720 if (dequeue || !gotoEnd) { 9721 _jQuery2.dequeue(this, type); 9722 } 9723 }); 9724 }, 9725 finish: function finish(type) { 9726 if (type !== false) { 9727 type = type || "fx"; 9728 } 9729 return this.each(function () { 9730 var index, 9731 data = dataPriv.get(this), 9732 queue = data[type + "queue"], 9733 hooks = data[type + "queueHooks"], 9734 timers = _jQuery2.timers, 9735 length = queue ? queue.length : 0; 9736 9737 // Enable finishing flag on private data 9738 data.finish = true; 9739 9740 // Empty the queue first 9741 _jQuery2.queue(this, type, []); 9742 if (hooks && hooks.stop) { 9743 hooks.stop.call(this, true); 9744 } 9745 9746 // Look for any active animations, and finish them 9747 for (index = timers.length; index--;) { 9748 if (timers[index].elem === this && timers[index].queue === type) { 9749 timers[index].anim.stop(true); 9750 timers.splice(index, 1); 9751 } 9752 } 9753 9754 // Look for any animations in the old queue and finish them 9755 for (index = 0; index < length; index++) { 9756 if (queue[index] && queue[index].finish) { 9757 queue[index].finish.call(this); 9758 } 9759 } 9760 9761 // Turn off finishing flag 9762 delete data.finish; 9763 }); 9764 } 9765 }); 9766 _jQuery2.each(["toggle", "show", "hide"], function (_i, name) { 9767 var cssFn = _jQuery2.fn[name]; 9768 _jQuery2.fn[name] = function (speed, easing, callback) { 9769 return speed == null || typeof speed === "boolean" ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback); 9770 }; 9771 }); 9772 9773 // Generate shortcuts for custom animations 9774 _jQuery2.each({ 9775 slideDown: genFx("show"), 9776 slideUp: genFx("hide"), 9777 slideToggle: genFx("toggle"), 9778 fadeIn: { 9779 opacity: "show" 9780 }, 9781 fadeOut: { 9782 opacity: "hide" 9783 }, 9784 fadeToggle: { 9785 opacity: "toggle" 9786 } 9787 }, function (name, props) { 9788 _jQuery2.fn[name] = function (speed, easing, callback) { 9789 return this.animate(props, speed, easing, callback); 9790 }; 9791 }); 9792 _jQuery2.timers = []; 9793 _jQuery2.fx.tick = function () { 9794 var timer, 9795 i = 0, 9796 timers = _jQuery2.timers; 9797 fxNow = Date.now(); 9798 for (; i < timers.length; i++) { 9799 timer = timers[i]; 9800 9801 // Run the timer and safely remove it when done (allowing for external removal) 9802 if (!timer() && timers[i] === timer) { 9803 timers.splice(i--, 1); 9804 } 9805 } 9806 if (!timers.length) { 9807 _jQuery2.fx.stop(); 9808 } 9809 fxNow = undefined; 9810 }; 9811 _jQuery2.fx.timer = function (timer) { 9812 _jQuery2.timers.push(timer); 9813 _jQuery2.fx.start(); 9814 }; 9815 _jQuery2.fx.interval = 13; 9816 _jQuery2.fx.start = function () { 9817 if (inProgress) { 9818 return; 9819 } 9820 inProgress = true; 9821 schedule(); 9822 }; 9823 _jQuery2.fx.stop = function () { 9824 inProgress = null; 9825 }; 9826 _jQuery2.fx.speeds = { 9827 slow: 600, 9828 fast: 200, 9829 // Default speed 9830 _default: 400 9831 }; 9832 9833 // Based off of the plugin by Clint Helfers, with permission. 9834 _jQuery2.fn.delay = function (time, type) { 9835 time = _jQuery2.fx ? _jQuery2.fx.speeds[time] || time : time; 9836 type = type || "fx"; 9837 return this.queue(type, function (next, hooks) { 9838 var timeout = window.setTimeout(next, time); 9839 hooks.stop = function () { 9840 window.clearTimeout(timeout); 9841 }; 9842 }); 9843 }; 9844 (function () { 9845 var input = document.createElement("input"), 9846 select = document.createElement("select"), 9847 opt = select.appendChild(document.createElement("option")); 9848 input.type = "checkbox"; 9849 9850 // Support: Android <=4.3 only 9851 // Default value for a checkbox should be "on" 9852 support.checkOn = input.value !== ""; 9853 9854 // Support: IE <=11 only 9855 // Must access selectedIndex to make default options select 9856 support.optSelected = opt.selected; 9857 9858 // Support: IE <=11 only 9859 // An input loses its value after becoming a radio 9860 input = document.createElement("input"); 9861 input.value = "t"; 9862 input.type = "radio"; 9863 support.radioValue = input.value === "t"; 9864 })(); 9865 var boolHook, 9866 attrHandle = _jQuery2.expr.attrHandle; 9867 _jQuery2.fn.extend({ 9868 attr: function attr(name, value) { 9869 return _access(this, _jQuery2.attr, name, value, arguments.length > 1); 9870 }, 9871 removeAttr: function removeAttr(name) { 9872 return this.each(function () { 9873 _jQuery2.removeAttr(this, name); 9874 }); 9875 } 9876 }); 9877 _jQuery2.extend({ 9878 attr: function attr(elem, name, value) { 9879 var ret, 9880 hooks, 9881 nType = elem.nodeType; 9882 9883 // Don't get/set attributes on text, comment and attribute nodes 9884 if (nType === 3 || nType === 8 || nType === 2) { 9885 return; 9886 } 9887 9888 // Fallback to prop when attributes are not supported 9889 if (typeof elem.getAttribute === "undefined") { 9890 return _jQuery2.prop(elem, name, value); 9891 } 9892 9893 // Attribute hooks are determined by the lowercase version 9894 // Grab necessary hook if one is defined 9895 if (nType !== 1 || !_jQuery2.isXMLDoc(elem)) { 9896 hooks = _jQuery2.attrHooks[name.toLowerCase()] || (_jQuery2.expr.match.bool.test(name) ? boolHook : undefined); 9897 } 9898 if (value !== undefined) { 9899 if (value === null) { 9900 _jQuery2.removeAttr(elem, name); 9901 return; 9902 } 9903 if (hooks && "set" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) { 9904 return ret; 9905 } 9906 elem.setAttribute(name, value + ""); 9907 return value; 9908 } 9909 if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) { 9910 return ret; 9911 } 9912 ret = _jQuery2.find.attr(elem, name); 9913 9914 // Non-existent attributes return null, we normalize to undefined 9915 return ret == null ? undefined : ret; 9916 }, 9917 attrHooks: { 9918 type: { 9919 set: function set(elem, value) { 9920 if (!support.radioValue && value === "radio" && nodeName(elem, "input")) { 9921 var val = elem.value; 9922 elem.setAttribute("type", value); 9923 if (val) { 9924 elem.value = val; 9925 } 9926 return value; 9927 } 9928 } 9929 } 9930 }, 9931 removeAttr: function removeAttr(elem, value) { 9932 var name, 9933 i = 0, 9934 // Attribute names can contain non-HTML whitespace characters 9935 // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 9936 attrNames = value && value.match(rnothtmlwhite); 9937 if (attrNames && elem.nodeType === 1) { 9938 while (name = attrNames[i++]) { 9939 elem.removeAttribute(name); 9940 } 9941 } 9942 } 9943 }); 9944 9945 // Hooks for boolean attributes 9946 boolHook = { 9947 set: function set(elem, value, name) { 9948 if (value === false) { 9949 // Remove boolean attributes when set to false 9950 _jQuery2.removeAttr(elem, name); 9951 } else { 9952 elem.setAttribute(name, name); 9953 } 9954 return name; 9955 } 9956 }; 9957 _jQuery2.each(_jQuery2.expr.match.bool.source.match(/\w+/g), function (_i, name) { 9958 var getter = attrHandle[name] || _jQuery2.find.attr; 9959 attrHandle[name] = function (elem, name, isXML) { 9960 var ret, 9961 handle, 9962 lowercaseName = name.toLowerCase(); 9963 if (!isXML) { 9964 // Avoid an infinite loop by temporarily removing this function from the getter 9965 handle = attrHandle[lowercaseName]; 9966 attrHandle[lowercaseName] = ret; 9967 ret = getter(elem, name, isXML) != null ? lowercaseName : null; 9968 attrHandle[lowercaseName] = handle; 9969 } 9970 return ret; 9971 }; 9972 }); 9973 var rfocusable = /^(?:input|select|textarea|button)$/i, 9974 rclickable = /^(?:a|area)$/i; 9975 _jQuery2.fn.extend({ 9976 prop: function prop(name, value) { 9977 return _access(this, _jQuery2.prop, name, value, arguments.length > 1); 9978 }, 9979 removeProp: function removeProp(name) { 9980 return this.each(function () { 9981 delete this[_jQuery2.propFix[name] || name]; 9982 }); 9983 } 9984 }); 9985 _jQuery2.extend({ 9986 prop: function prop(elem, name, value) { 9987 var ret, 9988 hooks, 9989 nType = elem.nodeType; 9990 9991 // Don't get/set properties on text, comment and attribute nodes 9992 if (nType === 3 || nType === 8 || nType === 2) { 9993 return; 9994 } 9995 if (nType !== 1 || !_jQuery2.isXMLDoc(elem)) { 9996 // Fix name and attach hooks 9997 name = _jQuery2.propFix[name] || name; 9998 hooks = _jQuery2.propHooks[name]; 9999 } 10000 if (value !== undefined) { 10001 if (hooks && "set" in hooks && (ret = hooks.set(elem, value, name)) !== undefined) { 10002 return ret; 10003 } 10004 return elem[name] = value; 10005 } 10006 if (hooks && "get" in hooks && (ret = hooks.get(elem, name)) !== null) { 10007 return ret; 10008 } 10009 return elem[name]; 10010 }, 10011 propHooks: { 10012 tabIndex: { 10013 get: function get(elem) { 10014 // Support: IE <=9 - 11 only 10015 // elem.tabIndex doesn't always return the 10016 // correct value when it hasn't been explicitly set 10017 // Use proper attribute retrieval (trac-12072) 10018 var tabindex = _jQuery2.find.attr(elem, "tabindex"); 10019 if (tabindex) { 10020 return parseInt(tabindex, 10); 10021 } 10022 if (rfocusable.test(elem.nodeName) || rclickable.test(elem.nodeName) && elem.href) { 10023 return 0; 10024 } 10025 return -1; 10026 } 10027 } 10028 }, 10029 propFix: { 10030 "for": "htmlFor", 10031 "class": "className" 10032 } 10033 }); 10034 10035 // Support: IE <=11 only 10036 // Accessing the selectedIndex property 10037 // forces the browser to respect setting selected 10038 // on the option 10039 // The getter ensures a default option is selected 10040 // when in an optgroup 10041 // eslint rule "no-unused-expressions" is disabled for this code 10042 // since it considers such accessions noop 10043 if (!support.optSelected) { 10044 _jQuery2.propHooks.selected = { 10045 get: function get(elem) { 10046 /* eslint no-unused-expressions: "off" */ 10047 10048 var parent = elem.parentNode; 10049 if (parent && parent.parentNode) { 10050 parent.parentNode.selectedIndex; 10051 } 10052 return null; 10053 }, 10054 set: function set(elem) { 10055 /* eslint no-unused-expressions: "off" */ 10056 10057 var parent = elem.parentNode; 10058 if (parent) { 10059 parent.selectedIndex; 10060 if (parent.parentNode) { 10061 parent.parentNode.selectedIndex; 10062 } 10063 } 10064 } 10065 }; 10066 } 10067 _jQuery2.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () { 10068 _jQuery2.propFix[this.toLowerCase()] = this; 10069 }); 10070 10071 // Strip and collapse whitespace according to HTML spec 10072 // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace 10073 function stripAndCollapse(value) { 10074 var tokens = value.match(rnothtmlwhite) || []; 10075 return tokens.join(" "); 10076 } 10077 function getClass(elem) { 10078 return elem.getAttribute && elem.getAttribute("class") || ""; 10079 } 10080 function classesToArray(value) { 10081 if (Array.isArray(value)) { 10082 return value; 10083 } 10084 if (typeof value === "string") { 10085 return value.match(rnothtmlwhite) || []; 10086 } 10087 return []; 10088 } 10089 _jQuery2.fn.extend({ 10090 addClass: function addClass(value) { 10091 var classNames, cur, curValue, className, i, finalValue; 10092 if (isFunction(value)) { 10093 return this.each(function (j) { 10094 _jQuery2(this).addClass(value.call(this, j, getClass(this))); 10095 }); 10096 } 10097 classNames = classesToArray(value); 10098 if (classNames.length) { 10099 return this.each(function () { 10100 curValue = getClass(this); 10101 cur = this.nodeType === 1 && " " + stripAndCollapse(curValue) + " "; 10102 if (cur) { 10103 for (i = 0; i < classNames.length; i++) { 10104 className = classNames[i]; 10105 if (cur.indexOf(" " + className + " ") < 0) { 10106 cur += className + " "; 10107 } 10108 } 10109 10110 // Only assign if different to avoid unneeded rendering. 10111 finalValue = stripAndCollapse(cur); 10112 if (curValue !== finalValue) { 10113 this.setAttribute("class", finalValue); 10114 } 10115 } 10116 }); 10117 } 10118 return this; 10119 }, 10120 removeClass: function removeClass(value) { 10121 var classNames, cur, curValue, className, i, finalValue; 10122 if (isFunction(value)) { 10123 return this.each(function (j) { 10124 _jQuery2(this).removeClass(value.call(this, j, getClass(this))); 10125 }); 10126 } 10127 if (!arguments.length) { 10128 return this.attr("class", ""); 10129 } 10130 classNames = classesToArray(value); 10131 if (classNames.length) { 10132 return this.each(function () { 10133 curValue = getClass(this); 10134 10135 // This expression is here for better compressibility (see addClass) 10136 cur = this.nodeType === 1 && " " + stripAndCollapse(curValue) + " "; 10137 if (cur) { 10138 for (i = 0; i < classNames.length; i++) { 10139 className = classNames[i]; 10140 10141 // Remove *all* instances 10142 while (cur.indexOf(" " + className + " ") > -1) { 10143 cur = cur.replace(" " + className + " ", " "); 10144 } 10145 } 10146 10147 // Only assign if different to avoid unneeded rendering. 10148 finalValue = stripAndCollapse(cur); 10149 if (curValue !== finalValue) { 10150 this.setAttribute("class", finalValue); 10151 } 10152 } 10153 }); 10154 } 10155 return this; 10156 }, 10157 toggleClass: function toggleClass(value, stateVal) { 10158 var classNames, 10159 className, 10160 i, 10161 self, 10162 type = _typeof(value), 10163 isValidValue = type === "string" || Array.isArray(value); 10164 if (isFunction(value)) { 10165 return this.each(function (i) { 10166 _jQuery2(this).toggleClass(value.call(this, i, getClass(this), stateVal), stateVal); 10167 }); 10168 } 10169 if (typeof stateVal === "boolean" && isValidValue) { 10170 return stateVal ? this.addClass(value) : this.removeClass(value); 10171 } 10172 classNames = classesToArray(value); 10173 return this.each(function () { 10174 if (isValidValue) { 10175 // Toggle individual class names 10176 self = _jQuery2(this); 10177 for (i = 0; i < classNames.length; i++) { 10178 className = classNames[i]; 10179 10180 // Check each className given, space separated list 10181 if (self.hasClass(className)) { 10182 self.removeClass(className); 10183 } else { 10184 self.addClass(className); 10185 } 10186 } 10187 10188 // Toggle whole class name 10189 } else if (value === undefined || type === "boolean") { 10190 className = getClass(this); 10191 if (className) { 10192 // Store className if set 10193 dataPriv.set(this, "__className__", className); 10194 } 10195 10196 // If the element has a class name or if we're passed `false`, 10197 // then remove the whole classname (if there was one, the above saved it). 10198 // Otherwise bring back whatever was previously saved (if anything), 10199 // falling back to the empty string if nothing was stored. 10200 if (this.setAttribute) { 10201 this.setAttribute("class", className || value === false ? "" : dataPriv.get(this, "__className__") || ""); 10202 } 10203 } 10204 }); 10205 }, 10206 hasClass: function hasClass(selector) { 10207 var className, 10208 elem, 10209 i = 0; 10210 className = " " + selector + " "; 10211 while (elem = this[i++]) { 10212 if (elem.nodeType === 1 && (" " + stripAndCollapse(getClass(elem)) + " ").indexOf(className) > -1) { 10213 return true; 10214 } 10215 } 10216 return false; 10217 } 10218 }); 10219 var rreturn = /\r/g; 10220 _jQuery2.fn.extend({ 10221 val: function val(value) { 10222 var hooks, 10223 ret, 10224 valueIsFunction, 10225 elem = this[0]; 10226 if (!arguments.length) { 10227 if (elem) { 10228 hooks = _jQuery2.valHooks[elem.type] || _jQuery2.valHooks[elem.nodeName.toLowerCase()]; 10229 if (hooks && "get" in hooks && (ret = hooks.get(elem, "value")) !== undefined) { 10230 return ret; 10231 } 10232 ret = elem.value; 10233 10234 // Handle most common string cases 10235 if (typeof ret === "string") { 10236 return ret.replace(rreturn, ""); 10237 } 10238 10239 // Handle cases where value is null/undef or number 10240 return ret == null ? "" : ret; 10241 } 10242 return; 10243 } 10244 valueIsFunction = isFunction(value); 10245 return this.each(function (i) { 10246 var val; 10247 if (this.nodeType !== 1) { 10248 return; 10249 } 10250 if (valueIsFunction) { 10251 val = value.call(this, i, _jQuery2(this).val()); 10252 } else { 10253 val = value; 10254 } 10255 10256 // Treat null/undefined as ""; convert numbers to string 10257 if (val == null) { 10258 val = ""; 10259 } else if (typeof val === "number") { 10260 val += ""; 10261 } else if (Array.isArray(val)) { 10262 val = _jQuery2.map(val, function (value) { 10263 return value == null ? "" : value + ""; 10264 }); 10265 } 10266 hooks = _jQuery2.valHooks[this.type] || _jQuery2.valHooks[this.nodeName.toLowerCase()]; 10267 10268 // If set returns undefined, fall back to normal setting 10269 if (!hooks || !("set" in hooks) || hooks.set(this, val, "value") === undefined) { 10270 this.value = val; 10271 } 10272 }); 10273 } 10274 }); 10275 _jQuery2.extend({ 10276 valHooks: { 10277 option: { 10278 get: function get(elem) { 10279 var val = _jQuery2.find.attr(elem, "value"); 10280 return val != null ? val : 10281 // Support: IE <=10 - 11 only 10282 // option.text throws exceptions (trac-14686, trac-14858) 10283 // Strip and collapse whitespace 10284 // https://html.spec.whatwg.org/#strip-and-collapse-whitespace 10285 stripAndCollapse(_jQuery2.text(elem)); 10286 } 10287 }, 10288 select: { 10289 get: function get(elem) { 10290 var value, 10291 option, 10292 i, 10293 options = elem.options, 10294 index = elem.selectedIndex, 10295 one = elem.type === "select-one", 10296 values = one ? null : [], 10297 max = one ? index + 1 : options.length; 10298 if (index < 0) { 10299 i = max; 10300 } else { 10301 i = one ? index : 0; 10302 } 10303 10304 // Loop through all the selected options 10305 for (; i < max; i++) { 10306 option = options[i]; 10307 10308 // Support: IE <=9 only 10309 // IE8-9 doesn't update selected after form reset (trac-2551) 10310 if ((option.selected || i === index) && 10311 // Don't return options that are disabled or in a disabled optgroup 10312 !option.disabled && (!option.parentNode.disabled || !nodeName(option.parentNode, "optgroup"))) { 10313 // Get the specific value for the option 10314 value = _jQuery2(option).val(); 10315 10316 // We don't need an array for one selects 10317 if (one) { 10318 return value; 10319 } 10320 10321 // Multi-Selects return an array 10322 values.push(value); 10323 } 10324 } 10325 return values; 10326 }, 10327 set: function set(elem, value) { 10328 var optionSet, 10329 option, 10330 options = elem.options, 10331 values = _jQuery2.makeArray(value), 10332 i = options.length; 10333 while (i--) { 10334 option = options[i]; 10335 10336 /* eslint-disable no-cond-assign */ 10337 10338 if (option.selected = _jQuery2.inArray(_jQuery2.valHooks.option.get(option), values) > -1) { 10339 optionSet = true; 10340 } 10341 10342 /* eslint-enable no-cond-assign */ 10343 } 10344 10345 // Force browsers to behave consistently when non-matching value is set 10346 if (!optionSet) { 10347 elem.selectedIndex = -1; 10348 } 10349 return values; 10350 } 10351 } 10352 } 10353 }); 10354 10355 // Radios and checkboxes getter/setter 10356 _jQuery2.each(["radio", "checkbox"], function () { 10357 _jQuery2.valHooks[this] = { 10358 set: function set(elem, value) { 10359 if (Array.isArray(value)) { 10360 return elem.checked = _jQuery2.inArray(_jQuery2(elem).val(), value) > -1; 10361 } 10362 } 10363 }; 10364 if (!support.checkOn) { 10365 _jQuery2.valHooks[this].get = function (elem) { 10366 return elem.getAttribute("value") === null ? "on" : elem.value; 10367 }; 10368 } 10369 }); 10370 10371 // Return jQuery for attributes-only inclusion 10372 var location = window.location; 10373 var nonce = { 10374 guid: Date.now() 10375 }; 10376 var rquery = /\?/; 10377 10378 // Cross-browser xml parsing 10379 _jQuery2.parseXML = function (data) { 10380 var xml, parserErrorElem; 10381 if (!data || typeof data !== "string") { 10382 return null; 10383 } 10384 10385 // Support: IE 9 - 11 only 10386 // IE throws on parseFromString with invalid input. 10387 try { 10388 xml = new window.DOMParser().parseFromString(data, "text/xml"); 10389 } catch (e) {} 10390 parserErrorElem = xml && xml.getElementsByTagName("parsererror")[0]; 10391 if (!xml || parserErrorElem) { 10392 _jQuery2.error("Invalid XML: " + (parserErrorElem ? _jQuery2.map(parserErrorElem.childNodes, function (el) { 10393 return el.textContent; 10394 }).join("\n") : data)); 10395 } 10396 return xml; 10397 }; 10398 var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, 10399 stopPropagationCallback = function stopPropagationCallback(e) { 10400 e.stopPropagation(); 10401 }; 10402 _jQuery2.extend(_jQuery2.event, { 10403 trigger: function trigger(event, data, elem, onlyHandlers) { 10404 var i, 10405 cur, 10406 tmp, 10407 bubbleType, 10408 ontype, 10409 handle, 10410 special, 10411 lastElement, 10412 eventPath = [elem || document], 10413 type = hasOwn.call(event, "type") ? event.type : event, 10414 namespaces = hasOwn.call(event, "namespace") ? event.namespace.split(".") : []; 10415 cur = lastElement = tmp = elem = elem || document; 10416 10417 // Don't do events on text and comment nodes 10418 if (elem.nodeType === 3 || elem.nodeType === 8) { 10419 return; 10420 } 10421 10422 // focus/blur morphs to focusin/out; ensure we're not firing them right now 10423 if (rfocusMorph.test(type + _jQuery2.event.triggered)) { 10424 return; 10425 } 10426 if (type.indexOf(".") > -1) { 10427 // Namespaced trigger; create a regexp to match event type in handle() 10428 namespaces = type.split("."); 10429 type = namespaces.shift(); 10430 namespaces.sort(); 10431 } 10432 ontype = type.indexOf(":") < 0 && "on" + type; 10433 10434 // Caller can pass in a jQuery.Event object, Object, or just an event type string 10435 event = event[_jQuery2.expando] ? event : new _jQuery2.Event(type, _typeof(event) === "object" && event); 10436 10437 // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) 10438 event.isTrigger = onlyHandlers ? 2 : 3; 10439 event.namespace = namespaces.join("."); 10440 event.rnamespace = event.namespace ? new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)") : null; 10441 10442 // Clean up the event in case it is being reused 10443 event.result = undefined; 10444 if (!event.target) { 10445 event.target = elem; 10446 } 10447 10448 // Clone any incoming data and prepend the event, creating the handler arg list 10449 data = data == null ? [event] : _jQuery2.makeArray(data, [event]); 10450 10451 // Allow special events to draw outside the lines 10452 special = _jQuery2.event.special[type] || {}; 10453 if (!onlyHandlers && special.trigger && special.trigger.apply(elem, data) === false) { 10454 return; 10455 } 10456 10457 // Determine event propagation path in advance, per W3C events spec (trac-9951) 10458 // Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724) 10459 if (!onlyHandlers && !special.noBubble && !isWindow(elem)) { 10460 bubbleType = special.delegateType || type; 10461 if (!rfocusMorph.test(bubbleType + type)) { 10462 cur = cur.parentNode; 10463 } 10464 for (; cur; cur = cur.parentNode) { 10465 eventPath.push(cur); 10466 tmp = cur; 10467 } 10468 10469 // Only add window if we got to document (e.g., not plain obj or detached DOM) 10470 if (tmp === (elem.ownerDocument || document)) { 10471 eventPath.push(tmp.defaultView || tmp.parentWindow || window); 10472 } 10473 } 10474 10475 // Fire handlers on the event path 10476 i = 0; 10477 while ((cur = eventPath[i++]) && !event.isPropagationStopped()) { 10478 lastElement = cur; 10479 event.type = i > 1 ? bubbleType : special.bindType || type; 10480 10481 // jQuery handler 10482 handle = (dataPriv.get(cur, "events") || Object.create(null))[event.type] && dataPriv.get(cur, "handle"); 10483 if (handle) { 10484 handle.apply(cur, data); 10485 } 10486 10487 // Native handler 10488 handle = ontype && cur[ontype]; 10489 if (handle && handle.apply && acceptData(cur)) { 10490 event.result = handle.apply(cur, data); 10491 if (event.result === false) { 10492 event.preventDefault(); 10493 } 10494 } 10495 } 10496 event.type = type; 10497 10498 // If nobody prevented the default action, do it now 10499 if (!onlyHandlers && !event.isDefaultPrevented()) { 10500 if ((!special._default || special._default.apply(eventPath.pop(), data) === false) && acceptData(elem)) { 10501 // Call a native DOM method on the target with the same name as the event. 10502 // Don't do default actions on window, that's where global variables be (trac-6170) 10503 if (ontype && isFunction(elem[type]) && !isWindow(elem)) { 10504 // Don't re-trigger an onFOO event when we call its FOO() method 10505 tmp = elem[ontype]; 10506 if (tmp) { 10507 elem[ontype] = null; 10508 } 10509 10510 // Prevent re-triggering of the same event, since we already bubbled it above 10511 _jQuery2.event.triggered = type; 10512 if (event.isPropagationStopped()) { 10513 lastElement.addEventListener(type, stopPropagationCallback); 10514 } 10515 elem[type](); 10516 if (event.isPropagationStopped()) { 10517 lastElement.removeEventListener(type, stopPropagationCallback); 10518 } 10519 _jQuery2.event.triggered = undefined; 10520 if (tmp) { 10521 elem[ontype] = tmp; 10522 } 10523 } 10524 } 10525 } 10526 return event.result; 10527 }, 10528 // Piggyback on a donor event to simulate a different one 10529 // Used only for `focus(in | out)` events 10530 simulate: function simulate(type, elem, event) { 10531 var e = _jQuery2.extend(new _jQuery2.Event(), event, { 10532 type: type, 10533 isSimulated: true 10534 }); 10535 _jQuery2.event.trigger(e, null, elem); 10536 } 10537 }); 10538 _jQuery2.fn.extend({ 10539 trigger: function trigger(type, data) { 10540 return this.each(function () { 10541 _jQuery2.event.trigger(type, data, this); 10542 }); 10543 }, 10544 triggerHandler: function triggerHandler(type, data) { 10545 var elem = this[0]; 10546 if (elem) { 10547 return _jQuery2.event.trigger(type, data, elem, true); 10548 } 10549 } 10550 }); 10551 var rbracket = /\[\]$/, 10552 rCRLF = /\r?\n/g, 10553 rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, 10554 rsubmittable = /^(?:input|select|textarea|keygen)/i; 10555 function buildParams(prefix, obj, traditional, add) { 10556 var name; 10557 if (Array.isArray(obj)) { 10558 // Serialize array item. 10559 _jQuery2.each(obj, function (i, v) { 10560 if (traditional || rbracket.test(prefix)) { 10561 // Treat each array item as a scalar. 10562 add(prefix, v); 10563 } else { 10564 // Item is non-scalar (array or object), encode its numeric index. 10565 buildParams(prefix + "[" + (_typeof(v) === "object" && v != null ? i : "") + "]", v, traditional, add); 10566 } 10567 }); 10568 } else if (!traditional && toType(obj) === "object") { 10569 // Serialize object item. 10570 for (name in obj) { 10571 buildParams(prefix + "[" + name + "]", obj[name], traditional, add); 10572 } 10573 } else { 10574 // Serialize scalar item. 10575 add(prefix, obj); 10576 } 10577 } 10578 10579 // Serialize an array of form elements or a set of 10580 // key/values into a query string 10581 _jQuery2.param = function (a, traditional) { 10582 var prefix, 10583 s = [], 10584 add = function add(key, valueOrFunction) { 10585 // If value is a function, invoke it and use its return value 10586 var value = isFunction(valueOrFunction) ? valueOrFunction() : valueOrFunction; 10587 s[s.length] = encodeURIComponent(key) + "=" + encodeURIComponent(value == null ? "" : value); 10588 }; 10589 if (a == null) { 10590 return ""; 10591 } 10592 10593 // If an array was passed in, assume that it is an array of form elements. 10594 if (Array.isArray(a) || a.jquery && !_jQuery2.isPlainObject(a)) { 10595 // Serialize the form elements 10596 _jQuery2.each(a, function () { 10597 add(this.name, this.value); 10598 }); 10599 } else { 10600 // If traditional, encode the "old" way (the way 1.3.2 or older 10601 // did it), otherwise encode params recursively. 10602 for (prefix in a) { 10603 buildParams(prefix, a[prefix], traditional, add); 10604 } 10605 } 10606 10607 // Return the resulting serialization 10608 return s.join("&"); 10609 }; 10610 _jQuery2.fn.extend({ 10611 serialize: function serialize() { 10612 return _jQuery2.param(this.serializeArray()); 10613 }, 10614 serializeArray: function serializeArray() { 10615 return this.map(function () { 10616 // Can add propHook for "elements" to filter or add form elements 10617 var elements = _jQuery2.prop(this, "elements"); 10618 return elements ? _jQuery2.makeArray(elements) : this; 10619 }).filter(function () { 10620 var type = this.type; 10621 10622 // Use .is( ":disabled" ) so that fieldset[disabled] works 10623 return this.name && !_jQuery2(this).is(":disabled") && rsubmittable.test(this.nodeName) && !rsubmitterTypes.test(type) && (this.checked || !rcheckableType.test(type)); 10624 }).map(function (_i, elem) { 10625 var val = _jQuery2(this).val(); 10626 if (val == null) { 10627 return null; 10628 } 10629 if (Array.isArray(val)) { 10630 return _jQuery2.map(val, function (val) { 10631 return { 10632 name: elem.name, 10633 value: val.replace(rCRLF, "\r\n") 10634 }; 10635 }); 10636 } 10637 return { 10638 name: elem.name, 10639 value: val.replace(rCRLF, "\r\n") 10640 }; 10641 }).get(); 10642 } 10643 }); 10644 var r20 = /%20/g, 10645 rhash = /#.*$/, 10646 rantiCache = /([?&])_=[^&]*/, 10647 rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, 10648 // trac-7653, trac-8125, trac-8152: local protocol detection 10649 rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, 10650 rnoContent = /^(?:GET|HEAD)$/, 10651 rprotocol = /^\/\//, 10652 /* Prefilters 10653 * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) 10654 * 2) These are called: 10655 * - BEFORE asking for a transport 10656 * - AFTER param serialization (s.data is a string if s.processData is true) 10657 * 3) key is the dataType 10658 * 4) the catchall symbol "*" can be used 10659 * 5) execution will start with transport dataType and THEN continue down to "*" if needed 10660 */ 10661 prefilters = {}, 10662 /* Transports bindings 10663 * 1) key is the dataType 10664 * 2) the catchall symbol "*" can be used 10665 * 3) selection will start with transport dataType and THEN go to "*" if needed 10666 */ 10667 transports = {}, 10668 // Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression 10669 allTypes = "*/".concat("*"), 10670 // Anchor tag for parsing the document origin 10671 originAnchor = document.createElement("a"); 10672 originAnchor.href = location.href; 10673 10674 // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport 10675 function addToPrefiltersOrTransports(structure) { 10676 // dataTypeExpression is optional and defaults to "*" 10677 return function (dataTypeExpression, func) { 10678 if (typeof dataTypeExpression !== "string") { 10679 func = dataTypeExpression; 10680 dataTypeExpression = "*"; 10681 } 10682 var dataType, 10683 i = 0, 10684 dataTypes = dataTypeExpression.toLowerCase().match(rnothtmlwhite) || []; 10685 if (isFunction(func)) { 10686 // For each dataType in the dataTypeExpression 10687 while (dataType = dataTypes[i++]) { 10688 // Prepend if requested 10689 if (dataType[0] === "+") { 10690 dataType = dataType.slice(1) || "*"; 10691 (structure[dataType] = structure[dataType] || []).unshift(func); 10692 10693 // Otherwise append 10694 } else { 10695 (structure[dataType] = structure[dataType] || []).push(func); 10696 } 10697 } 10698 } 10699 }; 10700 } 10701 10702 // Base inspection function for prefilters and transports 10703 function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR) { 10704 var inspected = {}, 10705 seekingTransport = structure === transports; 10706 function inspect(dataType) { 10707 var selected; 10708 inspected[dataType] = true; 10709 _jQuery2.each(structure[dataType] || [], function (_, prefilterOrFactory) { 10710 var dataTypeOrTransport = prefilterOrFactory(options, originalOptions, jqXHR); 10711 if (typeof dataTypeOrTransport === "string" && !seekingTransport && !inspected[dataTypeOrTransport]) { 10712 options.dataTypes.unshift(dataTypeOrTransport); 10713 inspect(dataTypeOrTransport); 10714 return false; 10715 } else if (seekingTransport) { 10716 return !(selected = dataTypeOrTransport); 10717 } 10718 }); 10719 return selected; 10720 } 10721 return inspect(options.dataTypes[0]) || !inspected["*"] && inspect("*"); 10722 } 10723 10724 // A special extend for ajax options 10725 // that takes "flat" options (not to be deep extended) 10726 // Fixes trac-9887 10727 function ajaxExtend(target, src) { 10728 var key, 10729 deep, 10730 flatOptions = _jQuery2.ajaxSettings.flatOptions || {}; 10731 for (key in src) { 10732 if (src[key] !== undefined) { 10733 (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key]; 10734 } 10735 } 10736 if (deep) { 10737 _jQuery2.extend(true, target, deep); 10738 } 10739 return target; 10740 } 10741 10742 /* Handles responses to an ajax request: 10743 * - finds the right dataType (mediates between content-type and expected dataType) 10744 * - returns the corresponding response 10745 */ 10746 function ajaxHandleResponses(s, jqXHR, responses) { 10747 var ct, 10748 type, 10749 finalDataType, 10750 firstDataType, 10751 contents = s.contents, 10752 dataTypes = s.dataTypes; 10753 10754 // Remove auto dataType and get content-type in the process 10755 while (dataTypes[0] === "*") { 10756 dataTypes.shift(); 10757 if (ct === undefined) { 10758 ct = s.mimeType || jqXHR.getResponseHeader("Content-Type"); 10759 } 10760 } 10761 10762 // Check if we're dealing with a known content-type 10763 if (ct) { 10764 for (type in contents) { 10765 if (contents[type] && contents[type].test(ct)) { 10766 dataTypes.unshift(type); 10767 break; 10768 } 10769 } 10770 } 10771 10772 // Check to see if we have a response for the expected dataType 10773 if (dataTypes[0] in responses) { 10774 finalDataType = dataTypes[0]; 10775 } else { 10776 // Try convertible dataTypes 10777 for (type in responses) { 10778 if (!dataTypes[0] || s.converters[type + " " + dataTypes[0]]) { 10779 finalDataType = type; 10780 break; 10781 } 10782 if (!firstDataType) { 10783 firstDataType = type; 10784 } 10785 } 10786 10787 // Or just use first one 10788 finalDataType = finalDataType || firstDataType; 10789 } 10790 10791 // If we found a dataType 10792 // We add the dataType to the list if needed 10793 // and return the corresponding response 10794 if (finalDataType) { 10795 if (finalDataType !== dataTypes[0]) { 10796 dataTypes.unshift(finalDataType); 10797 } 10798 return responses[finalDataType]; 10799 } 10800 } 10801 10802 /* Chain conversions given the request and the original response 10803 * Also sets the responseXXX fields on the jqXHR instance 10804 */ 10805 function ajaxConvert(s, response, jqXHR, isSuccess) { 10806 var conv2, 10807 current, 10808 conv, 10809 tmp, 10810 prev, 10811 converters = {}, 10812 // Work with a copy of dataTypes in case we need to modify it for conversion 10813 dataTypes = s.dataTypes.slice(); 10814 10815 // Create converters map with lowercased keys 10816 if (dataTypes[1]) { 10817 for (conv in s.converters) { 10818 converters[conv.toLowerCase()] = s.converters[conv]; 10819 } 10820 } 10821 current = dataTypes.shift(); 10822 10823 // Convert to each sequential dataType 10824 while (current) { 10825 if (s.responseFields[current]) { 10826 jqXHR[s.responseFields[current]] = response; 10827 } 10828 10829 // Apply the dataFilter if provided 10830 if (!prev && isSuccess && s.dataFilter) { 10831 response = s.dataFilter(response, s.dataType); 10832 } 10833 prev = current; 10834 current = dataTypes.shift(); 10835 if (current) { 10836 // There's only work to do if current dataType is non-auto 10837 if (current === "*") { 10838 current = prev; 10839 10840 // Convert response if prev dataType is non-auto and differs from current 10841 } else if (prev !== "*" && prev !== current) { 10842 // Seek a direct converter 10843 conv = converters[prev + " " + current] || converters["* " + current]; 10844 10845 // If none found, seek a pair 10846 if (!conv) { 10847 for (conv2 in converters) { 10848 // If conv2 outputs current 10849 tmp = conv2.split(" "); 10850 if (tmp[1] === current) { 10851 // If prev can be converted to accepted input 10852 conv = converters[prev + " " + tmp[0]] || converters["* " + tmp[0]]; 10853 if (conv) { 10854 // Condense equivalence converters 10855 if (conv === true) { 10856 conv = converters[conv2]; 10857 10858 // Otherwise, insert the intermediate dataType 10859 } else if (converters[conv2] !== true) { 10860 current = tmp[0]; 10861 dataTypes.unshift(tmp[1]); 10862 } 10863 break; 10864 } 10865 } 10866 } 10867 } 10868 10869 // Apply converter (if not an equivalence) 10870 if (conv !== true) { 10871 // Unless errors are allowed to bubble, catch and return them 10872 if (conv && s.throws) { 10873 response = conv(response); 10874 } else { 10875 try { 10876 response = conv(response); 10877 } catch (e) { 10878 return { 10879 state: "parsererror", 10880 error: conv ? e : "No conversion from " + prev + " to " + current 10881 }; 10882 } 10883 } 10884 } 10885 } 10886 } 10887 } 10888 return { 10889 state: "success", 10890 data: response 10891 }; 10892 } 10893 _jQuery2.extend({ 10894 // Counter for holding the number of active queries 10895 active: 0, 10896 // Last-Modified header cache for next request 10897 lastModified: {}, 10898 etag: {}, 10899 ajaxSettings: { 10900 url: location.href, 10901 type: "GET", 10902 isLocal: rlocalProtocol.test(location.protocol), 10903 global: true, 10904 processData: true, 10905 async: true, 10906 contentType: "application/x-www-form-urlencoded; charset=UTF-8", 10907 /* 10908 timeout: 0, 10909 data: null, 10910 dataType: null, 10911 username: null, 10912 password: null, 10913 cache: null, 10914 throws: false, 10915 traditional: false, 10916 headers: {}, 10917 */ 10918 10919 accepts: { 10920 "*": allTypes, 10921 text: "text/plain", 10922 html: "text/html", 10923 xml: "application/xml, text/xml", 10924 json: "application/json, text/javascript" 10925 }, 10926 contents: { 10927 xml: /\bxml\b/, 10928 html: /\bhtml/, 10929 json: /\bjson\b/ 10930 }, 10931 responseFields: { 10932 xml: "responseXML", 10933 text: "responseText", 10934 json: "responseJSON" 10935 }, 10936 // Data converters 10937 // Keys separate source (or catchall "*") and destination types with a single space 10938 converters: { 10939 // Convert anything to text 10940 "* text": String, 10941 // Text to html (true = no transformation) 10942 "text html": true, 10943 // Evaluate text as a json expression 10944 "text json": JSON.parse, 10945 // Parse text as xml 10946 "text xml": _jQuery2.parseXML 10947 }, 10948 // For options that shouldn't be deep extended: 10949 // you can add your own custom options here if 10950 // and when you create one that shouldn't be 10951 // deep extended (see ajaxExtend) 10952 flatOptions: { 10953 url: true, 10954 context: true 10955 } 10956 }, 10957 // Creates a full fledged settings object into target 10958 // with both ajaxSettings and settings fields. 10959 // If target is omitted, writes into ajaxSettings. 10960 ajaxSetup: function ajaxSetup(target, settings) { 10961 return settings ? 10962 // Building a settings object 10963 ajaxExtend(ajaxExtend(target, _jQuery2.ajaxSettings), settings) : 10964 // Extending ajaxSettings 10965 ajaxExtend(_jQuery2.ajaxSettings, target); 10966 }, 10967 ajaxPrefilter: addToPrefiltersOrTransports(prefilters), 10968 ajaxTransport: addToPrefiltersOrTransports(transports), 10969 // Main method 10970 ajax: function ajax(url, options) { 10971 // If url is an object, simulate pre-1.5 signature 10972 if (_typeof(url) === "object") { 10973 options = url; 10974 url = undefined; 10975 } 10976 10977 // Force options to be an object 10978 options = options || {}; 10979 var transport, 10980 // URL without anti-cache param 10981 cacheURL, 10982 // Response headers 10983 responseHeadersString, 10984 responseHeaders, 10985 // timeout handle 10986 timeoutTimer, 10987 // Url cleanup var 10988 urlAnchor, 10989 // Request state (becomes false upon send and true upon completion) 10990 completed, 10991 // To know if global events are to be dispatched 10992 fireGlobals, 10993 // Loop variable 10994 i, 10995 // uncached part of the url 10996 uncached, 10997 // Create the final options object 10998 s = _jQuery2.ajaxSetup({}, options), 10999 // Callbacks context 11000 callbackContext = s.context || s, 11001 // Context for global events is callbackContext if it is a DOM node or jQuery collection 11002 globalEventContext = s.context && (callbackContext.nodeType || callbackContext.jquery) ? _jQuery2(callbackContext) : _jQuery2.event, 11003 // Deferreds 11004 deferred = _jQuery2.Deferred(), 11005 completeDeferred = _jQuery2.Callbacks("once memory"), 11006 // Status-dependent callbacks 11007 _statusCode = s.statusCode || {}, 11008 // Headers (they are sent all at once) 11009 requestHeaders = {}, 11010 requestHeadersNames = {}, 11011 // Default abort message 11012 strAbort = "canceled", 11013 // Fake xhr 11014 jqXHR = { 11015 readyState: 0, 11016 // Builds headers hashtable if needed 11017 getResponseHeader: function getResponseHeader(key) { 11018 var match; 11019 if (completed) { 11020 if (!responseHeaders) { 11021 responseHeaders = {}; 11022 while (match = rheaders.exec(responseHeadersString)) { 11023 responseHeaders[match[1].toLowerCase() + " "] = (responseHeaders[match[1].toLowerCase() + " "] || []).concat(match[2]); 11024 } 11025 } 11026 match = responseHeaders[key.toLowerCase() + " "]; 11027 } 11028 return match == null ? null : match.join(", "); 11029 }, 11030 // Raw string 11031 getAllResponseHeaders: function getAllResponseHeaders() { 11032 return completed ? responseHeadersString : null; 11033 }, 11034 // Caches the header 11035 setRequestHeader: function setRequestHeader(name, value) { 11036 if (completed == null) { 11037 name = requestHeadersNames[name.toLowerCase()] = requestHeadersNames[name.toLowerCase()] || name; 11038 requestHeaders[name] = value; 11039 } 11040 return this; 11041 }, 11042 // Overrides response content-type header 11043 overrideMimeType: function overrideMimeType(type) { 11044 if (completed == null) { 11045 s.mimeType = type; 11046 } 11047 return this; 11048 }, 11049 // Status-dependent callbacks 11050 statusCode: function statusCode(map) { 11051 var code; 11052 if (map) { 11053 if (completed) { 11054 // Execute the appropriate callbacks 11055 jqXHR.always(map[jqXHR.status]); 11056 } else { 11057 // Lazy-add the new callbacks in a way that preserves old ones 11058 for (code in map) { 11059 _statusCode[code] = [_statusCode[code], map[code]]; 11060 } 11061 } 11062 } 11063 return this; 11064 }, 11065 // Cancel the request 11066 abort: function abort(statusText) { 11067 var finalText = statusText || strAbort; 11068 if (transport) { 11069 transport.abort(finalText); 11070 } 11071 done(0, finalText); 11072 return this; 11073 } 11074 }; 11075 11076 // Attach deferreds 11077 deferred.promise(jqXHR); 11078 11079 // Add protocol if not provided (prefilters might expect it) 11080 // Handle falsy url in the settings object (trac-10093: consistency with old signature) 11081 // We also use the url parameter if available 11082 s.url = ((url || s.url || location.href) + "").replace(rprotocol, location.protocol + "//"); 11083 11084 // Alias method option to type as per ticket trac-12004 11085 s.type = options.method || options.type || s.method || s.type; 11086 11087 // Extract dataTypes list 11088 s.dataTypes = (s.dataType || "*").toLowerCase().match(rnothtmlwhite) || [""]; 11089 11090 // A cross-domain request is in order when the origin doesn't match the current origin. 11091 if (s.crossDomain == null) { 11092 urlAnchor = document.createElement("a"); 11093 11094 // Support: IE <=8 - 11, Edge 12 - 15 11095 // IE throws exception on accessing the href property if url is malformed, 11096 // e.g. http://example.com:80x/ 11097 try { 11098 urlAnchor.href = s.url; 11099 11100 // Support: IE <=8 - 11 only 11101 // Anchor's host property isn't correctly set when s.url is relative 11102 urlAnchor.href = urlAnchor.href; 11103 s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== urlAnchor.protocol + "//" + urlAnchor.host; 11104 } catch (e) { 11105 // If there is an error parsing the URL, assume it is crossDomain, 11106 // it can be rejected by the transport if it is invalid 11107 s.crossDomain = true; 11108 } 11109 } 11110 11111 // Convert data if not already a string 11112 if (s.data && s.processData && typeof s.data !== "string") { 11113 s.data = _jQuery2.param(s.data, s.traditional); 11114 } 11115 11116 // Apply prefilters 11117 inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); 11118 11119 // If request was aborted inside a prefilter, stop there 11120 if (completed) { 11121 return jqXHR; 11122 } 11123 11124 // We can fire global events as of now if asked to 11125 // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118) 11126 fireGlobals = _jQuery2.event && s.global; 11127 11128 // Watch for a new set of requests 11129 if (fireGlobals && _jQuery2.active++ === 0) { 11130 _jQuery2.event.trigger("ajaxStart"); 11131 } 11132 11133 // Uppercase the type 11134 s.type = s.type.toUpperCase(); 11135 11136 // Determine if request has content 11137 s.hasContent = !rnoContent.test(s.type); 11138 11139 // Save the URL in case we're toying with the If-Modified-Since 11140 // and/or If-None-Match header later on 11141 // Remove hash to simplify url manipulation 11142 cacheURL = s.url.replace(rhash, ""); 11143 11144 // More options handling for requests with no content 11145 if (!s.hasContent) { 11146 // Remember the hash so we can put it back 11147 uncached = s.url.slice(cacheURL.length); 11148 11149 // If data is available and should be processed, append data to url 11150 if (s.data && (s.processData || typeof s.data === "string")) { 11151 cacheURL += (rquery.test(cacheURL) ? "&" : "?") + s.data; 11152 11153 // trac-9682: remove data so that it's not used in an eventual retry 11154 delete s.data; 11155 } 11156 11157 // Add or update anti-cache param if needed 11158 if (s.cache === false) { 11159 cacheURL = cacheURL.replace(rantiCache, "$1"); 11160 uncached = (rquery.test(cacheURL) ? "&" : "?") + "_=" + nonce.guid++ + uncached; 11161 } 11162 11163 // Put hash and anti-cache on the URL that will be requested (gh-1732) 11164 s.url = cacheURL + uncached; 11165 11166 // Change '%20' to '+' if this is encoded form body content (gh-2658) 11167 } else if (s.data && s.processData && (s.contentType || "").indexOf("application/x-www-form-urlencoded") === 0) { 11168 s.data = s.data.replace(r20, "+"); 11169 } 11170 11171 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 11172 if (s.ifModified) { 11173 if (_jQuery2.lastModified[cacheURL]) { 11174 jqXHR.setRequestHeader("If-Modified-Since", _jQuery2.lastModified[cacheURL]); 11175 } 11176 if (_jQuery2.etag[cacheURL]) { 11177 jqXHR.setRequestHeader("If-None-Match", _jQuery2.etag[cacheURL]); 11178 } 11179 } 11180 11181 // Set the correct header, if data is being sent 11182 if (s.data && s.hasContent && s.contentType !== false || options.contentType) { 11183 jqXHR.setRequestHeader("Content-Type", s.contentType); 11184 } 11185 11186 // Set the Accepts header for the server, depending on the dataType 11187 jqXHR.setRequestHeader("Accept", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== "*" ? ", " + allTypes + "; q=0.01" : "") : s.accepts["*"]); 11188 11189 // Check for headers option 11190 for (i in s.headers) { 11191 jqXHR.setRequestHeader(i, s.headers[i]); 11192 } 11193 11194 // Allow custom headers/mimetypes and early abort 11195 if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || completed)) { 11196 // Abort if not done already and return 11197 return jqXHR.abort(); 11198 } 11199 11200 // Aborting is no longer a cancellation 11201 strAbort = "abort"; 11202 11203 // Install callbacks on deferreds 11204 completeDeferred.add(s.complete); 11205 jqXHR.done(s.success); 11206 jqXHR.fail(s.error); 11207 11208 // Get transport 11209 transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); 11210 11211 // If no transport, we auto-abort 11212 if (!transport) { 11213 done(-1, "No Transport"); 11214 } else { 11215 jqXHR.readyState = 1; 11216 11217 // Send global event 11218 if (fireGlobals) { 11219 globalEventContext.trigger("ajaxSend", [jqXHR, s]); 11220 } 11221 11222 // If request was aborted inside ajaxSend, stop there 11223 if (completed) { 11224 return jqXHR; 11225 } 11226 11227 // Timeout 11228 if (s.async && s.timeout > 0) { 11229 timeoutTimer = window.setTimeout(function () { 11230 jqXHR.abort("timeout"); 11231 }, s.timeout); 11232 } 11233 try { 11234 completed = false; 11235 transport.send(requestHeaders, done); 11236 } catch (e) { 11237 // Rethrow post-completion exceptions 11238 if (completed) { 11239 throw e; 11240 } 11241 11242 // Propagate others as results 11243 done(-1, e); 11244 } 11245 } 11246 11247 // Callback for when everything is done 11248 function done(status, nativeStatusText, responses, headers) { 11249 var isSuccess, 11250 success, 11251 error, 11252 response, 11253 modified, 11254 statusText = nativeStatusText; 11255 11256 // Ignore repeat invocations 11257 if (completed) { 11258 return; 11259 } 11260 completed = true; 11261 11262 // Clear timeout if it exists 11263 if (timeoutTimer) { 11264 window.clearTimeout(timeoutTimer); 11265 } 11266 11267 // Dereference transport for early garbage collection 11268 // (no matter how long the jqXHR object will be used) 11269 transport = undefined; 11270 11271 // Cache response headers 11272 responseHeadersString = headers || ""; 11273 11274 // Set readyState 11275 jqXHR.readyState = status > 0 ? 4 : 0; 11276 11277 // Determine if successful 11278 isSuccess = status >= 200 && status < 300 || status === 304; 11279 11280 // Get response data 11281 if (responses) { 11282 response = ajaxHandleResponses(s, jqXHR, responses); 11283 } 11284 11285 // Use a noop converter for missing script but not if jsonp 11286 if (!isSuccess && _jQuery2.inArray("script", s.dataTypes) > -1 && _jQuery2.inArray("json", s.dataTypes) < 0) { 11287 s.converters["text script"] = function () {}; 11288 } 11289 11290 // Convert no matter what (that way responseXXX fields are always set) 11291 response = ajaxConvert(s, response, jqXHR, isSuccess); 11292 11293 // If successful, handle type chaining 11294 if (isSuccess) { 11295 // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. 11296 if (s.ifModified) { 11297 modified = jqXHR.getResponseHeader("Last-Modified"); 11298 if (modified) { 11299 _jQuery2.lastModified[cacheURL] = modified; 11300 } 11301 modified = jqXHR.getResponseHeader("etag"); 11302 if (modified) { 11303 _jQuery2.etag[cacheURL] = modified; 11304 } 11305 } 11306 11307 // if no content 11308 if (status === 204 || s.type === "HEAD") { 11309 statusText = "nocontent"; 11310 11311 // if not modified 11312 } else if (status === 304) { 11313 statusText = "notmodified"; 11314 11315 // If we have data, let's convert it 11316 } else { 11317 statusText = response.state; 11318 success = response.data; 11319 error = response.error; 11320 isSuccess = !error; 11321 } 11322 } else { 11323 // Extract error from statusText and normalize for non-aborts 11324 error = statusText; 11325 if (status || !statusText) { 11326 statusText = "error"; 11327 if (status < 0) { 11328 status = 0; 11329 } 11330 } 11331 } 11332 11333 // Set data for the fake xhr object 11334 jqXHR.status = status; 11335 jqXHR.statusText = (nativeStatusText || statusText) + ""; 11336 11337 // Success/Error 11338 if (isSuccess) { 11339 deferred.resolveWith(callbackContext, [success, statusText, jqXHR]); 11340 } else { 11341 deferred.rejectWith(callbackContext, [jqXHR, statusText, error]); 11342 } 11343 11344 // Status-dependent callbacks 11345 jqXHR.statusCode(_statusCode); 11346 _statusCode = undefined; 11347 if (fireGlobals) { 11348 globalEventContext.trigger(isSuccess ? "ajaxSuccess" : "ajaxError", [jqXHR, s, isSuccess ? success : error]); 11349 } 11350 11351 // Complete 11352 completeDeferred.fireWith(callbackContext, [jqXHR, statusText]); 11353 if (fireGlobals) { 11354 globalEventContext.trigger("ajaxComplete", [jqXHR, s]); 11355 11356 // Handle the global AJAX counter 11357 if (! --_jQuery2.active) { 11358 _jQuery2.event.trigger("ajaxStop"); 11359 } 11360 } 11361 } 11362 return jqXHR; 11363 }, 11364 getJSON: function getJSON(url, data, callback) { 11365 return _jQuery2.get(url, data, callback, "json"); 11366 }, 11367 getScript: function getScript(url, callback) { 11368 return _jQuery2.get(url, undefined, callback, "script"); 11369 } 11370 }); 11371 _jQuery2.each(["get", "post"], function (_i, method) { 11372 _jQuery2[method] = function (url, data, callback, type) { 11373 // Shift arguments if data argument was omitted 11374 if (isFunction(data)) { 11375 type = type || callback; 11376 callback = data; 11377 data = undefined; 11378 } 11379 11380 // The url can be an options object (which then must have .url) 11381 return _jQuery2.ajax(_jQuery2.extend({ 11382 url: url, 11383 type: method, 11384 dataType: type, 11385 data: data, 11386 success: callback 11387 }, _jQuery2.isPlainObject(url) && url)); 11388 }; 11389 }); 11390 _jQuery2.ajaxPrefilter(function (s) { 11391 var i; 11392 for (i in s.headers) { 11393 if (i.toLowerCase() === "content-type") { 11394 s.contentType = s.headers[i] || ""; 11395 } 11396 } 11397 }); 11398 _jQuery2._evalUrl = function (url, options, doc) { 11399 return _jQuery2.ajax({ 11400 url: url, 11401 // Make this explicit, since user can override this through ajaxSetup (trac-11264) 11402 type: "GET", 11403 dataType: "script", 11404 cache: true, 11405 async: false, 11406 global: false, 11407 // Only evaluate the response if it is successful (gh-4126) 11408 // dataFilter is not invoked for failure responses, so using it instead 11409 // of the default converter is kludgy but it works. 11410 converters: { 11411 "text script": function text_script() {} 11412 }, 11413 dataFilter: function dataFilter(response) { 11414 _jQuery2.globalEval(response, options, doc); 11415 } 11416 }); 11417 }; 11418 _jQuery2.fn.extend({ 11419 wrapAll: function wrapAll(html) { 11420 var wrap; 11421 if (this[0]) { 11422 if (isFunction(html)) { 11423 html = html.call(this[0]); 11424 } 11425 11426 // The elements to wrap the target around 11427 wrap = _jQuery2(html, this[0].ownerDocument).eq(0).clone(true); 11428 if (this[0].parentNode) { 11429 wrap.insertBefore(this[0]); 11430 } 11431 wrap.map(function () { 11432 var elem = this; 11433 while (elem.firstElementChild) { 11434 elem = elem.firstElementChild; 11435 } 11436 return elem; 11437 }).append(this); 11438 } 11439 return this; 11440 }, 11441 wrapInner: function wrapInner(html) { 11442 if (isFunction(html)) { 11443 return this.each(function (i) { 11444 _jQuery2(this).wrapInner(html.call(this, i)); 11445 }); 11446 } 11447 return this.each(function () { 11448 var self = _jQuery2(this), 11449 contents = self.contents(); 11450 if (contents.length) { 11451 contents.wrapAll(html); 11452 } else { 11453 self.append(html); 11454 } 11455 }); 11456 }, 11457 wrap: function wrap(html) { 11458 var htmlIsFunction = isFunction(html); 11459 return this.each(function (i) { 11460 _jQuery2(this).wrapAll(htmlIsFunction ? html.call(this, i) : html); 11461 }); 11462 }, 11463 unwrap: function unwrap(selector) { 11464 this.parent(selector).not("body").each(function () { 11465 _jQuery2(this).replaceWith(this.childNodes); 11466 }); 11467 return this; 11468 } 11469 }); 11470 _jQuery2.expr.pseudos.hidden = function (elem) { 11471 return !_jQuery2.expr.pseudos.visible(elem); 11472 }; 11473 _jQuery2.expr.pseudos.visible = function (elem) { 11474 return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length); 11475 }; 11476 _jQuery2.ajaxSettings.xhr = function () { 11477 try { 11478 return new window.XMLHttpRequest(); 11479 } catch (e) {} 11480 }; 11481 var xhrSuccessStatus = { 11482 // File protocol always yields status code 0, assume 200 11483 0: 200, 11484 // Support: IE <=9 only 11485 // trac-1450: sometimes IE returns 1223 when it should be 204 11486 1223: 204 11487 }, 11488 xhrSupported = _jQuery2.ajaxSettings.xhr(); 11489 support.cors = !!xhrSupported && "withCredentials" in xhrSupported; 11490 support.ajax = xhrSupported = !!xhrSupported; 11491 _jQuery2.ajaxTransport(function (options) { 11492 var _callback, errorCallback; 11493 11494 // Cross domain only allowed if supported through XMLHttpRequest 11495 if (support.cors || xhrSupported && !options.crossDomain) { 11496 return { 11497 send: function send(headers, complete) { 11498 var i, 11499 xhr = options.xhr(); 11500 xhr.open(options.type, options.url, options.async, options.username, options.password); 11501 11502 // Apply custom fields if provided 11503 if (options.xhrFields) { 11504 for (i in options.xhrFields) { 11505 xhr[i] = options.xhrFields[i]; 11506 } 11507 } 11508 11509 // Override mime type if needed 11510 if (options.mimeType && xhr.overrideMimeType) { 11511 xhr.overrideMimeType(options.mimeType); 11512 } 11513 11514 // X-Requested-With header 11515 // For cross-domain requests, seeing as conditions for a preflight are 11516 // akin to a jigsaw puzzle, we simply never set it to be sure. 11517 // (it can always be set on a per-request basis or even using ajaxSetup) 11518 // For same-domain requests, won't change header if already provided. 11519 if (!options.crossDomain && !headers["X-Requested-With"]) { 11520 headers["X-Requested-With"] = "XMLHttpRequest"; 11521 } 11522 11523 // Set headers 11524 for (i in headers) { 11525 xhr.setRequestHeader(i, headers[i]); 11526 } 11527 11528 // Callback 11529 _callback = function callback(type) { 11530 return function () { 11531 if (_callback) { 11532 _callback = errorCallback = xhr.onload = xhr.onerror = xhr.onabort = xhr.ontimeout = xhr.onreadystatechange = null; 11533 if (type === "abort") { 11534 xhr.abort(); 11535 } else if (type === "error") { 11536 // Support: IE <=9 only 11537 // On a manual native abort, IE9 throws 11538 // errors on any property access that is not readyState 11539 if (typeof xhr.status !== "number") { 11540 complete(0, "error"); 11541 } else { 11542 complete( 11543 // File: protocol always yields status 0; see trac-8605, trac-14207 11544 xhr.status, xhr.statusText); 11545 } 11546 } else { 11547 complete(xhrSuccessStatus[xhr.status] || xhr.status, xhr.statusText, 11548 // Support: IE <=9 only 11549 // IE9 has no XHR2 but throws on binary (trac-11426) 11550 // For XHR2 non-text, let the caller handle it (gh-2498) 11551 (xhr.responseType || "text") !== "text" || typeof xhr.responseText !== "string" ? { 11552 binary: xhr.response 11553 } : { 11554 text: xhr.responseText 11555 }, xhr.getAllResponseHeaders()); 11556 } 11557 } 11558 }; 11559 }; 11560 11561 // Listen to events 11562 xhr.onload = _callback(); 11563 errorCallback = xhr.onerror = xhr.ontimeout = _callback("error"); 11564 11565 // Support: IE 9 only 11566 // Use onreadystatechange to replace onabort 11567 // to handle uncaught aborts 11568 if (xhr.onabort !== undefined) { 11569 xhr.onabort = errorCallback; 11570 } else { 11571 xhr.onreadystatechange = function () { 11572 // Check readyState before timeout as it changes 11573 if (xhr.readyState === 4) { 11574 // Allow onerror to be called first, 11575 // but that will not handle a native abort 11576 // Also, save errorCallback to a variable 11577 // as xhr.onerror cannot be accessed 11578 window.setTimeout(function () { 11579 if (_callback) { 11580 errorCallback(); 11581 } 11582 }); 11583 } 11584 }; 11585 } 11586 11587 // Create the abort callback 11588 _callback = _callback("abort"); 11589 try { 11590 // Do send the request (this may raise an exception) 11591 xhr.send(options.hasContent && options.data || null); 11592 } catch (e) { 11593 // trac-14683: Only rethrow if this hasn't been notified as an error yet 11594 if (_callback) { 11595 throw e; 11596 } 11597 } 11598 }, 11599 abort: function abort() { 11600 if (_callback) { 11601 _callback(); 11602 } 11603 } 11604 }; 11605 } 11606 }); 11607 11608 // Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) 11609 _jQuery2.ajaxPrefilter(function (s) { 11610 if (s.crossDomain) { 11611 s.contents.script = false; 11612 } 11613 }); 11614 11615 // Install script dataType 11616 _jQuery2.ajaxSetup({ 11617 accepts: { 11618 script: "text/javascript, application/javascript, " + "application/ecmascript, application/x-ecmascript" 11619 }, 11620 contents: { 11621 script: /\b(?:java|ecma)script\b/ 11622 }, 11623 converters: { 11624 "text script": function text_script(text) { 11625 _jQuery2.globalEval(text); 11626 return text; 11627 } 11628 } 11629 }); 11630 11631 // Handle cache's special case and crossDomain 11632 _jQuery2.ajaxPrefilter("script", function (s) { 11633 if (s.cache === undefined) { 11634 s.cache = false; 11635 } 11636 if (s.crossDomain) { 11637 s.type = "GET"; 11638 } 11639 }); 11640 11641 // Bind script tag hack transport 11642 _jQuery2.ajaxTransport("script", function (s) { 11643 // This transport only deals with cross domain or forced-by-attrs requests 11644 if (s.crossDomain || s.scriptAttrs) { 11645 var script, _callback2; 11646 return { 11647 send: function send(_, complete) { 11648 script = _jQuery2("<script>").attr(s.scriptAttrs || {}).prop({ 11649 charset: s.scriptCharset, 11650 src: s.url 11651 }).on("load error", _callback2 = function callback(evt) { 11652 script.remove(); 11653 _callback2 = null; 11654 if (evt) { 11655 complete(evt.type === "error" ? 404 : 200, evt.type); 11656 } 11657 }); 11658 11659 // Use native DOM manipulation to avoid our domManip AJAX trickery 11660 document.head.appendChild(script[0]); 11661 }, 11662 abort: function abort() { 11663 if (_callback2) { 11664 _callback2(); 11665 } 11666 } 11667 }; 11668 } 11669 }); 11670 var oldCallbacks = [], 11671 rjsonp = /(=)\?(?=&|$)|\?\?/; 11672 11673 // Default jsonp settings 11674 _jQuery2.ajaxSetup({ 11675 jsonp: "callback", 11676 jsonpCallback: function jsonpCallback() { 11677 var callback = oldCallbacks.pop() || _jQuery2.expando + "_" + nonce.guid++; 11678 this[callback] = true; 11679 return callback; 11680 } 11681 }); 11682 11683 // Detect, normalize options and install callbacks for jsonp requests 11684 _jQuery2.ajaxPrefilter("json jsonp", function (s, originalSettings, jqXHR) { 11685 var callbackName, 11686 overwritten, 11687 responseContainer, 11688 jsonProp = s.jsonp !== false && (rjsonp.test(s.url) ? "url" : typeof s.data === "string" && (s.contentType || "").indexOf("application/x-www-form-urlencoded") === 0 && rjsonp.test(s.data) && "data"); 11689 11690 // Handle iff the expected data type is "jsonp" or we have a parameter to set 11691 if (jsonProp || s.dataTypes[0] === "jsonp") { 11692 // Get callback name, remembering preexisting value associated with it 11693 callbackName = s.jsonpCallback = isFunction(s.jsonpCallback) ? s.jsonpCallback() : s.jsonpCallback; 11694 11695 // Insert callback into url or form data 11696 if (jsonProp) { 11697 s[jsonProp] = s[jsonProp].replace(rjsonp, "$1" + callbackName); 11698 } else if (s.jsonp !== false) { 11699 s.url += (rquery.test(s.url) ? "&" : "?") + s.jsonp + "=" + callbackName; 11700 } 11701 11702 // Use data converter to retrieve json after script execution 11703 s.converters["script json"] = function () { 11704 if (!responseContainer) { 11705 _jQuery2.error(callbackName + " was not called"); 11706 } 11707 return responseContainer[0]; 11708 }; 11709 11710 // Force json dataType 11711 s.dataTypes[0] = "json"; 11712 11713 // Install callback 11714 overwritten = window[callbackName]; 11715 window[callbackName] = function () { 11716 responseContainer = arguments; 11717 }; 11718 11719 // Clean-up function (fires after converters) 11720 jqXHR.always(function () { 11721 // If previous value didn't exist - remove it 11722 if (overwritten === undefined) { 11723 _jQuery2(window).removeProp(callbackName); 11724 11725 // Otherwise restore preexisting value 11726 } else { 11727 window[callbackName] = overwritten; 11728 } 11729 11730 // Save back as free 11731 if (s[callbackName]) { 11732 // Make sure that re-using the options doesn't screw things around 11733 s.jsonpCallback = originalSettings.jsonpCallback; 11734 11735 // Save the callback name for future use 11736 oldCallbacks.push(callbackName); 11737 } 11738 11739 // Call if it was a function and we have a response 11740 if (responseContainer && isFunction(overwritten)) { 11741 overwritten(responseContainer[0]); 11742 } 11743 responseContainer = overwritten = undefined; 11744 }); 11745 11746 // Delegate to script 11747 return "script"; 11748 } 11749 }); 11750 11751 // Support: Safari 8 only 11752 // In Safari 8 documents created via document.implementation.createHTMLDocument 11753 // collapse sibling forms: the second one becomes a child of the first one. 11754 // Because of that, this security measure has to be disabled in Safari 8. 11755 // https://bugs.webkit.org/show_bug.cgi?id=137337 11756 support.createHTMLDocument = function () { 11757 var body = document.implementation.createHTMLDocument("").body; 11758 body.innerHTML = "<form></form><form></form>"; 11759 return body.childNodes.length === 2; 11760 }(); 11761 11762 // Argument "data" should be string of html 11763 // context (optional): If specified, the fragment will be created in this context, 11764 // defaults to document 11765 // keepScripts (optional): If true, will include scripts passed in the html string 11766 _jQuery2.parseHTML = function (data, context, keepScripts) { 11767 if (typeof data !== "string") { 11768 return []; 11769 } 11770 if (typeof context === "boolean") { 11771 keepScripts = context; 11772 context = false; 11773 } 11774 var base, parsed, scripts; 11775 if (!context) { 11776 // Stop scripts or inline event handlers from being executed immediately 11777 // by using document.implementation 11778 if (support.createHTMLDocument) { 11779 context = document.implementation.createHTMLDocument(""); 11780 11781 // Set the base href for the created document 11782 // so any parsed elements with URLs 11783 // are based on the document's URL (gh-2965) 11784 base = context.createElement("base"); 11785 base.href = document.location.href; 11786 context.head.appendChild(base); 11787 } else { 11788 context = document; 11789 } 11790 } 11791 parsed = rsingleTag.exec(data); 11792 scripts = !keepScripts && []; 11793 11794 // Single tag 11795 if (parsed) { 11796 return [context.createElement(parsed[1])]; 11797 } 11798 parsed = buildFragment([data], context, scripts); 11799 if (scripts && scripts.length) { 11800 _jQuery2(scripts).remove(); 11801 } 11802 return _jQuery2.merge([], parsed.childNodes); 11803 }; 11804 11805 /** 11806 * Load a url into a page 11807 */ 11808 _jQuery2.fn.load = function (url, params, callback) { 11809 var selector, 11810 type, 11811 response, 11812 self = this, 11813 off = url.indexOf(" "); 11814 if (off > -1) { 11815 selector = stripAndCollapse(url.slice(off)); 11816 url = url.slice(0, off); 11817 } 11818 11819 // If it's a function 11820 if (isFunction(params)) { 11821 // We assume that it's the callback 11822 callback = params; 11823 params = undefined; 11824 11825 // Otherwise, build a param string 11826 } else if (params && _typeof(params) === "object") { 11827 type = "POST"; 11828 } 11829 11830 // If we have elements to modify, make the request 11831 if (self.length > 0) { 11832 _jQuery2.ajax({ 11833 url: url, 11834 // If "type" variable is undefined, then "GET" method will be used. 11835 // Make value of this field explicit since 11836 // user can override it through ajaxSetup method 11837 type: type || "GET", 11838 dataType: "html", 11839 data: params 11840 }).done(function (responseText) { 11841 // Save response for use in complete callback 11842 response = arguments; 11843 self.html(selector ? 11844 // If a selector was specified, locate the right elements in a dummy div 11845 // Exclude scripts to avoid IE 'Permission Denied' errors 11846 _jQuery2("<div>").append(_jQuery2.parseHTML(responseText)).find(selector) : 11847 // Otherwise use the full result 11848 responseText); 11849 11850 // If the request succeeds, this function gets "data", "status", "jqXHR" 11851 // but they are ignored because response was set above. 11852 // If it fails, this function gets "jqXHR", "status", "error" 11853 }).always(callback && function (jqXHR, status) { 11854 self.each(function () { 11855 callback.apply(this, response || [jqXHR.responseText, status, jqXHR]); 11856 }); 11857 }); 11858 } 11859 return this; 11860 }; 11861 _jQuery2.expr.pseudos.animated = function (elem) { 11862 return _jQuery2.grep(_jQuery2.timers, function (fn) { 11863 return elem === fn.elem; 11864 }).length; 11865 }; 11866 _jQuery2.offset = { 11867 setOffset: function setOffset(elem, options, i) { 11868 var curPosition, 11869 curLeft, 11870 curCSSTop, 11871 curTop, 11872 curOffset, 11873 curCSSLeft, 11874 calculatePosition, 11875 position = _jQuery2.css(elem, "position"), 11876 curElem = _jQuery2(elem), 11877 props = {}; 11878 11879 // Set position first, in-case top/left are set even on static elem 11880 if (position === "static") { 11881 elem.style.position = "relative"; 11882 } 11883 curOffset = curElem.offset(); 11884 curCSSTop = _jQuery2.css(elem, "top"); 11885 curCSSLeft = _jQuery2.css(elem, "left"); 11886 calculatePosition = (position === "absolute" || position === "fixed") && (curCSSTop + curCSSLeft).indexOf("auto") > -1; 11887 11888 // Need to be able to calculate position if either 11889 // top or left is auto and position is either absolute or fixed 11890 if (calculatePosition) { 11891 curPosition = curElem.position(); 11892 curTop = curPosition.top; 11893 curLeft = curPosition.left; 11894 } else { 11895 curTop = parseFloat(curCSSTop) || 0; 11896 curLeft = parseFloat(curCSSLeft) || 0; 11897 } 11898 if (isFunction(options)) { 11899 // Use jQuery.extend here to allow modification of coordinates argument (gh-1848) 11900 options = options.call(elem, i, _jQuery2.extend({}, curOffset)); 11901 } 11902 if (options.top != null) { 11903 props.top = options.top - curOffset.top + curTop; 11904 } 11905 if (options.left != null) { 11906 props.left = options.left - curOffset.left + curLeft; 11907 } 11908 if ("using" in options) { 11909 options.using.call(elem, props); 11910 } else { 11911 curElem.css(props); 11912 } 11913 } 11914 }; 11915 _jQuery2.fn.extend({ 11916 // offset() relates an element's border box to the document origin 11917 offset: function offset(options) { 11918 // Preserve chaining for setter 11919 if (arguments.length) { 11920 return options === undefined ? this : this.each(function (i) { 11921 _jQuery2.offset.setOffset(this, options, i); 11922 }); 11923 } 11924 var rect, 11925 win, 11926 elem = this[0]; 11927 if (!elem) { 11928 return; 11929 } 11930 11931 // Return zeros for disconnected and hidden (display: none) elements (gh-2310) 11932 // Support: IE <=11 only 11933 // Running getBoundingClientRect on a 11934 // disconnected node in IE throws an error 11935 if (!elem.getClientRects().length) { 11936 return { 11937 top: 0, 11938 left: 0 11939 }; 11940 } 11941 11942 // Get document-relative position by adding viewport scroll to viewport-relative gBCR 11943 rect = elem.getBoundingClientRect(); 11944 win = elem.ownerDocument.defaultView; 11945 return { 11946 top: rect.top + win.pageYOffset, 11947 left: rect.left + win.pageXOffset 11948 }; 11949 }, 11950 // position() relates an element's margin box to its offset parent's padding box 11951 // This corresponds to the behavior of CSS absolute positioning 11952 position: function position() { 11953 if (!this[0]) { 11954 return; 11955 } 11956 var offsetParent, 11957 offset, 11958 doc, 11959 elem = this[0], 11960 parentOffset = { 11961 top: 0, 11962 left: 0 11963 }; 11964 11965 // position:fixed elements are offset from the viewport, which itself always has zero offset 11966 if (_jQuery2.css(elem, "position") === "fixed") { 11967 // Assume position:fixed implies availability of getBoundingClientRect 11968 offset = elem.getBoundingClientRect(); 11969 } else { 11970 offset = this.offset(); 11971 11972 // Account for the *real* offset parent, which can be the document or its root element 11973 // when a statically positioned element is identified 11974 doc = elem.ownerDocument; 11975 offsetParent = elem.offsetParent || doc.documentElement; 11976 while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && _jQuery2.css(offsetParent, "position") === "static") { 11977 offsetParent = offsetParent.parentNode; 11978 } 11979 if (offsetParent && offsetParent !== elem && offsetParent.nodeType === 1) { 11980 // Incorporate borders into its offset, since they are outside its content origin 11981 parentOffset = _jQuery2(offsetParent).offset(); 11982 parentOffset.top += _jQuery2.css(offsetParent, "borderTopWidth", true); 11983 parentOffset.left += _jQuery2.css(offsetParent, "borderLeftWidth", true); 11984 } 11985 } 11986 11987 // Subtract parent offsets and element margins 11988 return { 11989 top: offset.top - parentOffset.top - _jQuery2.css(elem, "marginTop", true), 11990 left: offset.left - parentOffset.left - _jQuery2.css(elem, "marginLeft", true) 11991 }; 11992 }, 11993 // This method will return documentElement in the following cases: 11994 // 1) For the element inside the iframe without offsetParent, this method will return 11995 // documentElement of the parent window 11996 // 2) For the hidden or detached element 11997 // 3) For body or html element, i.e. in case of the html node - it will return itself 11998 // 11999 // but those exceptions were never presented as a real life use-cases 12000 // and might be considered as more preferable results. 12001 // 12002 // This logic, however, is not guaranteed and can change at any point in the future 12003 offsetParent: function offsetParent() { 12004 return this.map(function () { 12005 var offsetParent = this.offsetParent; 12006 while (offsetParent && _jQuery2.css(offsetParent, "position") === "static") { 12007 offsetParent = offsetParent.offsetParent; 12008 } 12009 return offsetParent || documentElement; 12010 }); 12011 } 12012 }); 12013 12014 // Create scrollLeft and scrollTop methods 12015 _jQuery2.each({ 12016 scrollLeft: "pageXOffset", 12017 scrollTop: "pageYOffset" 12018 }, function (method, prop) { 12019 var top = "pageYOffset" === prop; 12020 _jQuery2.fn[method] = function (val) { 12021 return _access(this, function (elem, method, val) { 12022 // Coalesce documents and windows 12023 var win; 12024 if (isWindow(elem)) { 12025 win = elem; 12026 } else if (elem.nodeType === 9) { 12027 win = elem.defaultView; 12028 } 12029 if (val === undefined) { 12030 return win ? win[prop] : elem[method]; 12031 } 12032 if (win) { 12033 win.scrollTo(!top ? val : win.pageXOffset, top ? val : win.pageYOffset); 12034 } else { 12035 elem[method] = val; 12036 } 12037 }, method, val, arguments.length); 12038 }; 12039 }); 12040 12041 // Support: Safari <=7 - 9.1, Chrome <=37 - 49 12042 // Add the top/left cssHooks using jQuery.fn.position 12043 // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 12044 // Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347 12045 // getComputedStyle returns percent when specified for top/left/bottom/right; 12046 // rather than make the css module depend on the offset module, just check for it here 12047 _jQuery2.each(["top", "left"], function (_i, prop) { 12048 _jQuery2.cssHooks[prop] = addGetHookIf(support.pixelPosition, function (elem, computed) { 12049 if (computed) { 12050 computed = curCSS(elem, prop); 12051 12052 // If curCSS returns percentage, fallback to offset 12053 return rnumnonpx.test(computed) ? _jQuery2(elem).position()[prop] + "px" : computed; 12054 } 12055 }); 12056 }); 12057 12058 // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods 12059 _jQuery2.each({ 12060 Height: "height", 12061 Width: "width" 12062 }, function (name, type) { 12063 _jQuery2.each({ 12064 padding: "inner" + name, 12065 content: type, 12066 "": "outer" + name 12067 }, function (defaultExtra, funcName) { 12068 // Margin is only for outerHeight, outerWidth 12069 _jQuery2.fn[funcName] = function (margin, value) { 12070 var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), 12071 extra = defaultExtra || (margin === true || value === true ? "margin" : "border"); 12072 return _access(this, function (elem, type, value) { 12073 var doc; 12074 if (isWindow(elem)) { 12075 // $( window ).outerWidth/Height return w/h including scrollbars (gh-1729) 12076 return funcName.indexOf("outer") === 0 ? elem["inner" + name] : elem.document.documentElement["client" + name]; 12077 } 12078 12079 // Get document width or height 12080 if (elem.nodeType === 9) { 12081 doc = elem.documentElement; 12082 12083 // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], 12084 // whichever is greatest 12085 return Math.max(elem.body["scroll" + name], doc["scroll" + name], elem.body["offset" + name], doc["offset" + name], doc["client" + name]); 12086 } 12087 return value === undefined ? 12088 // Get width or height on the element, requesting but not forcing parseFloat 12089 _jQuery2.css(elem, type, extra) : 12090 // Set width or height on the element 12091 _jQuery2.style(elem, type, value, extra); 12092 }, type, chainable ? margin : undefined, chainable); 12093 }; 12094 }); 12095 }); 12096 _jQuery2.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (_i, type) { 12097 _jQuery2.fn[type] = function (fn) { 12098 return this.on(type, fn); 12099 }; 12100 }); 12101 _jQuery2.fn.extend({ 12102 bind: function bind(types, data, fn) { 12103 return this.on(types, null, data, fn); 12104 }, 12105 unbind: function unbind(types, fn) { 12106 return this.off(types, null, fn); 12107 }, 12108 delegate: function delegate(selector, types, data, fn) { 12109 return this.on(types, selector, data, fn); 12110 }, 12111 undelegate: function undelegate(selector, types, fn) { 12112 // ( namespace ) or ( selector, types [, fn] ) 12113 return arguments.length === 1 ? this.off(selector, "**") : this.off(types, selector || "**", fn); 12114 }, 12115 hover: function hover(fnOver, fnOut) { 12116 return this.on("mouseenter", fnOver).on("mouseleave", fnOut || fnOver); 12117 } 12118 }); 12119 _jQuery2.each(("blur focus focusin focusout resize scroll click dblclick " + "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " + "change select submit keydown keypress keyup contextmenu").split(" "), function (_i, name) { 12120 // Handle event binding 12121 _jQuery2.fn[name] = function (data, fn) { 12122 return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name); 12123 }; 12124 }); 12125 12126 // Support: Android <=4.0 only 12127 // Make sure we trim BOM and NBSP 12128 // Require that the "whitespace run" starts from a non-whitespace 12129 // to avoid O(N^2) behavior when the engine would try matching "\s+$" at each space position. 12130 var rtrim = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g; 12131 12132 // Bind a function to a context, optionally partially applying any 12133 // arguments. 12134 // jQuery.proxy is deprecated to promote standards (specifically Function#bind) 12135 // However, it is not slated for removal any time soon 12136 _jQuery2.proxy = function (fn, context) { 12137 var tmp, args, proxy; 12138 if (typeof context === "string") { 12139 tmp = fn[context]; 12140 context = fn; 12141 fn = tmp; 12142 } 12143 12144 // Quick check to determine if target is callable, in the spec 12145 // this throws a TypeError, but we will just return undefined. 12146 if (!isFunction(fn)) { 12147 return undefined; 12148 } 12149 12150 // Simulated bind 12151 args = _slice.call(arguments, 2); 12152 proxy = function proxy() { 12153 return fn.apply(context || this, args.concat(_slice.call(arguments))); 12154 }; 12155 12156 // Set the guid of unique handler to the same of original handler, so it can be removed 12157 proxy.guid = fn.guid = fn.guid || _jQuery2.guid++; 12158 return proxy; 12159 }; 12160 _jQuery2.holdReady = function (hold) { 12161 if (hold) { 12162 _jQuery2.readyWait++; 12163 } else { 12164 _jQuery2.ready(true); 12165 } 12166 }; 12167 _jQuery2.isArray = Array.isArray; 12168 _jQuery2.parseJSON = JSON.parse; 12169 _jQuery2.nodeName = nodeName; 12170 _jQuery2.isFunction = isFunction; 12171 _jQuery2.isWindow = isWindow; 12172 _jQuery2.camelCase = camelCase; 12173 _jQuery2.type = toType; 12174 _jQuery2.now = Date.now; 12175 _jQuery2.isNumeric = function (obj) { 12176 // As of jQuery 3.0, isNumeric is limited to 12177 // strings and numbers (primitives or objects) 12178 // that can be coerced to finite numbers (gh-2662) 12179 var type = _jQuery2.type(obj); 12180 return (type === "number" || type === "string") && 12181 // parseFloat NaNs numeric-cast false positives ("") 12182 // ...but misinterprets leading-number strings, particularly hex literals ("0x...") 12183 // subtraction forces infinities to NaN 12184 !isNaN(obj - parseFloat(obj)); 12185 }; 12186 _jQuery2.trim = function (text) { 12187 return text == null ? "" : (text + "").replace(rtrim, "$1"); 12188 }; 12189 12190 // Register as a named AMD module, since jQuery can be concatenated with other 12191 // files that may use define, but not via a proper concatenation script that 12192 // understands anonymous AMD modules. A named AMD is safest and most robust 12193 // way to register. Lowercase jquery is used because AMD module names are 12194 // derived from file names, and jQuery is normally delivered in a lowercase 12195 // file name. Do this after creating the global so that if an AMD module wants 12196 // to call noConflict to hide this version of jQuery, it will work. 12197 12198 // Note that for maximum portability, libraries that are not jQuery should 12199 // declare themselves as anonymous modules, and avoid setting a global if an 12200 // AMD loader is present. jQuery is a special case. For more information, see 12201 // https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon 12202 12203 if (true) { 12204 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { 12205 return _jQuery2; 12206 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), 12207 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); 12208 } 12209 var 12210 // Map over jQuery in case of overwrite 12211 _jQuery = window.jQuery, 12212 // Map over the $ in case of overwrite 12213 _$ = window.$; 12214 _jQuery2.noConflict = function (deep) { 12215 if (window.$ === _jQuery2) { 12216 window.$ = _$; 12217 } 12218 if (deep && window.jQuery === _jQuery2) { 12219 window.jQuery = _jQuery; 12220 } 12221 return _jQuery2; 12222 }; 12223 12224 // Expose jQuery and $ identifiers, even in AMD 12225 // (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557) 12226 // and CommonJS for browser emulators (trac-13566) 12227 if (typeof noGlobal === "undefined") { 12228 window.jQuery = window.$ = _jQuery2; 12229 } 12230 return _jQuery2; 12231}); 12232 12233/***/ }), 12234
vendor: 4,944 bytes, lines 12235-12329
12235/***/ "./node_modules/lozad/dist/lozad.min.js": 12236/*!**********************************************!*\ 12237 !*** ./node_modules/lozad/dist/lozad.min.js ***! 12238 \**********************************************/ 12239/***/ (function(module, exports, __webpack_require__) { 12240 12241var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 12242/*! lozad.js - v1.16.0 - 2020-09-06 12243* https://github.com/ApoorvSaxena/lozad.js 12244* Copyright (c) 2020 Apoorv Saxena; Licensed MIT */ 12245!function (t, e) { 12246 "object" == ( false ? 0 : _typeof(exports)) && "undefined" != "object" ? module.exports = e() : true ? !(__WEBPACK_AMD_DEFINE_FACTORY__ = (e), 12247 __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? 12248 (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : 12249 __WEBPACK_AMD_DEFINE_FACTORY__), 12250 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)) : 0; 12251}(this, function () { 12252 "use strict"; 12253 12254 /** 12255 * Detect IE browser 12256 * @const {boolean} 12257 * @private 12258 */ 12259 var g = "undefined" != typeof document && document.documentMode, 12260 f = { 12261 rootMargin: "0px", 12262 threshold: 0, 12263 load: function load(t) { 12264 if ("picture" === t.nodeName.toLowerCase()) { 12265 var e = t.querySelector("img"), 12266 r = !1; 12267 null === e && (e = document.createElement("img"), r = !0), g && t.getAttribute("data-iesrc") && (e.src = t.getAttribute("data-iesrc")), t.getAttribute("data-alt") && (e.alt = t.getAttribute("data-alt")), r && t.append(e); 12268 } 12269 if ("video" === t.nodeName.toLowerCase() && !t.getAttribute("data-src") && t.children) { 12270 for (var a = t.children, o = void 0, i = 0; i <= a.length - 1; i++) (o = a[i].getAttribute("data-src")) && (a[i].src = o); 12271 t.load(); 12272 } 12273 t.getAttribute("data-poster") && (t.poster = t.getAttribute("data-poster")), t.getAttribute("data-src") && (t.src = t.getAttribute("data-src")), t.getAttribute("data-srcset") && t.setAttribute("srcset", t.getAttribute("data-srcset")); 12274 var n = ","; 12275 if (t.getAttribute("data-background-delimiter") && (n = t.getAttribute("data-background-delimiter")), t.getAttribute("data-background-image")) t.style.backgroundImage = "url('" + t.getAttribute("data-background-image").split(n).join("'),url('") + "')";else if (t.getAttribute("data-background-image-set")) { 12276 var d = t.getAttribute("data-background-image-set").split(n), 12277 u = d[0].substr(0, d[0].indexOf(" ")) || d[0]; // Substring before ... 1x 12278 u = -1 === u.indexOf("url(") ? "url(" + u + ")" : u, 1 === d.length ? t.style.backgroundImage = u : t.setAttribute("style", (t.getAttribute("style") || "") + "background-image: " + u + "; background-image: -webkit-image-set(" + d + "); background-image: image-set(" + d + ")"); 12279 } 12280 t.getAttribute("data-toggle-class") && t.classList.toggle(t.getAttribute("data-toggle-class")); 12281 }, 12282 loaded: function loaded() {} 12283 }; 12284 function A(t) { 12285 t.setAttribute("data-loaded", !0); 12286 } 12287 var m = function m(t) { 12288 return "true" === t.getAttribute("data-loaded"); 12289 }, 12290 v = function v(t) { 12291 var e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : document; 12292 return t instanceof Element ? [t] : t instanceof NodeList ? t : e.querySelectorAll(t); 12293 }; 12294 return function () { 12295 var r, 12296 a, 12297 o = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : ".lozad", 12298 t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}, 12299 e = Object.assign({}, f, t), 12300 i = e.root, 12301 n = e.rootMargin, 12302 d = e.threshold, 12303 u = e.load, 12304 g = e.loaded, 12305 s = void 0; 12306 "undefined" != typeof window && window.IntersectionObserver && (s = new IntersectionObserver((r = u, a = g, function (t, e) { 12307 t.forEach(function (t) { 12308 (0 < t.intersectionRatio || t.isIntersecting) && (e.unobserve(t.target), m(t.target) || (r(t.target), A(t.target), a(t.target))); 12309 }); 12310 }), { 12311 root: i, 12312 rootMargin: n, 12313 threshold: d 12314 })); 12315 for (var c, l = v(o, i), b = 0; b < l.length; b++) (c = l[b]).getAttribute("data-placeholder-background") && (c.style.background = c.getAttribute("data-placeholder-background")); 12316 return { 12317 observe: function observe() { 12318 for (var t = v(o, i), e = 0; e < t.length; e++) m(t[e]) || (s ? s.observe(t[e]) : (u(t[e]), A(t[e]), g(t[e]))); 12319 }, 12320 triggerLoad: function triggerLoad(t) { 12321 m(t) || (u(t), A(t), g(t)); 12322 }, 12323 observer: s 12324 }; 12325 }; 12326}); 12327 12328/***/ }), 12329
vendor: 4,660 bytes, lines 12330-12488
12330/***/ "./node_modules/ssr-window/ssr-window.esm.js": 12331/*!***************************************************!*\ 12332 !*** ./node_modules/ssr-window/ssr-window.esm.js ***! 12333 \***************************************************/ 12334/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 12335 12336"use strict"; 12337__webpack_require__.r(__webpack_exports__); 12338/* harmony export */ __webpack_require__.d(__webpack_exports__, { 12339/* harmony export */ extend: function() { return /* binding */ extend; }, 12340/* harmony export */ getDocument: function() { return /* binding */ getDocument; }, 12341/* harmony export */ getWindow: function() { return /* binding */ getWindow; }, 12342/* harmony export */ ssrDocument: function() { return /* binding */ ssrDocument; }, 12343/* harmony export */ ssrWindow: function() { return /* binding */ ssrWindow; } 12344/* harmony export */ }); 12345function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 12346/** 12347 * SSR Window 4.0.2 12348 * Better handling for window object in SSR environment 12349 * https://github.com/nolimits4web/ssr-window 12350 * 12351 * Copyright 2021, Vladimir Kharlampidi 12352 * 12353 * Licensed under MIT 12354 * 12355 * Released on: December 13, 2021 12356 */ 12357/* eslint-disable no-param-reassign */ 12358function isObject(obj) { 12359 return obj !== null && _typeof(obj) === 'object' && 'constructor' in obj && obj.constructor === Object; 12360} 12361function extend() { 12362 var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 12363 var src = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 12364 Object.keys(src).forEach(function (key) { 12365 if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) { 12366 extend(target[key], src[key]); 12367 } 12368 }); 12369} 12370var ssrDocument = { 12371 body: {}, 12372 addEventListener: function addEventListener() {}, 12373 removeEventListener: function removeEventListener() {}, 12374 activeElement: { 12375 blur: function blur() {}, 12376 nodeName: '' 12377 }, 12378 querySelector: function querySelector() { 12379 return null; 12380 }, 12381 querySelectorAll: function querySelectorAll() { 12382 return []; 12383 }, 12384 getElementById: function getElementById() { 12385 return null; 12386 }, 12387 createEvent: function createEvent() { 12388 return { 12389 initEvent: function initEvent() {} 12390 }; 12391 }, 12392 createElement: function createElement() { 12393 return { 12394 children: [], 12395 childNodes: [], 12396 style: {}, 12397 setAttribute: function setAttribute() {}, 12398 getElementsByTagName: function getElementsByTagName() { 12399 return []; 12400 } 12401 }; 12402 }, 12403 createElementNS: function createElementNS() { 12404 return {}; 12405 }, 12406 importNode: function importNode() { 12407 return null; 12408 }, 12409 location: { 12410 hash: '', 12411 host: '', 12412 hostname: '', 12413 href: '', 12414 origin: '', 12415 pathname: '', 12416 protocol: '', 12417 search: '' 12418 } 12419}; 12420function getDocument() { 12421 var doc = typeof document !== 'undefined' ? document : {}; 12422 extend(doc, ssrDocument); 12423 return doc; 12424} 12425var ssrWindow = { 12426 document: ssrDocument, 12427 navigator: { 12428 userAgent: '' 12429 }, 12430 location: { 12431 hash: '', 12432 host: '', 12433 hostname: '', 12434 href: '', 12435 origin: '', 12436 pathname: '', 12437 protocol: '', 12438 search: '' 12439 }, 12440 history: { 12441 replaceState: function replaceState() {}, 12442 pushState: function pushState() {}, 12443 go: function go() {}, 12444 back: function back() {} 12445 }, 12446 CustomEvent: function CustomEvent() { 12447 return this; 12448 }, 12449 addEventListener: function addEventListener() {}, 12450 removeEventListener: function removeEventListener() {}, 12451 getComputedStyle: function getComputedStyle() { 12452 return { 12453 getPropertyValue: function getPropertyValue() { 12454 return ''; 12455 } 12456 }; 12457 }, 12458 Image: function Image() {}, 12459 Date: function Date() {}, 12460 screen: {}, 12461 setTimeout: function setTimeout() {}, 12462 clearTimeout: function clearTimeout() {}, 12463 matchMedia: function matchMedia() { 12464 return {}; 12465 }, 12466 requestAnimationFrame: function requestAnimationFrame(callback) { 12467 if (typeof setTimeout === 'undefined') { 12468 callback(); 12469 return null; 12470 } 12471 return setTimeout(callback, 0); 12472 }, 12473 cancelAnimationFrame: function cancelAnimationFrame(id) { 12474 if (typeof setTimeout === 'undefined') { 12475 return; 12476 } 12477 clearTimeout(id); 12478 } 12479}; 12480function getWindow() { 12481 var win = typeof window !== 'undefined' ? window : {}; 12482 extend(win, ssrWindow); 12483 return win; 12484} 12485 12486 12487/***/ }), 12488
vendor: 2,088 bytes, lines 12489-12542
12489/***/ "./node_modules/swiper/core/breakpoints/getBreakpoint.js": 12490/*!***************************************************************!*\ 12491 !*** ./node_modules/swiper/core/breakpoints/getBreakpoint.js ***! 12492 \***************************************************************/ 12493/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 12494 12495"use strict"; 12496__webpack_require__.r(__webpack_exports__); 12497/* harmony export */ __webpack_require__.d(__webpack_exports__, { 12498/* harmony export */ "default": function() { return /* binding */ getBreakpoint; } 12499/* harmony export */ }); 12500/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 12501 12502function getBreakpoint(breakpoints) { 12503 var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'window'; 12504 var containerEl = arguments.length > 2 ? arguments[2] : undefined; 12505 if (!breakpoints || base === 'container' && !containerEl) return undefined; 12506 var breakpoint = false; 12507 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 12508 var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight; 12509 var points = Object.keys(breakpoints).map(function (point) { 12510 if (typeof point === 'string' && point.indexOf('@') === 0) { 12511 var minRatio = parseFloat(point.substr(1)); 12512 var value = currentHeight * minRatio; 12513 return { 12514 value: value, 12515 point: point 12516 }; 12517 } 12518 return { 12519 value: point, 12520 point: point 12521 }; 12522 }); 12523 points.sort(function (a, b) { 12524 return parseInt(a.value, 10) - parseInt(b.value, 10); 12525 }); 12526 for (var i = 0; i < points.length; i += 1) { 12527 var _points$i = points[i], 12528 point = _points$i.point, 12529 value = _points$i.value; 12530 if (base === 'window') { 12531 if (window.matchMedia("(min-width: ".concat(value, "px)")).matches) { 12532 breakpoint = point; 12533 } 12534 } else if (value <= containerEl.clientWidth) { 12535 breakpoint = point; 12536 } 12537 } 12538 return breakpoint || 'max'; 12539} 12540 12541/***/ }), 12542
vendor: 989 bytes, lines 12543-12561
12543/***/ "./node_modules/swiper/core/breakpoints/index.js": 12544/*!*******************************************************!*\ 12545 !*** ./node_modules/swiper/core/breakpoints/index.js ***! 12546 \*******************************************************/ 12547/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 12548 12549"use strict"; 12550__webpack_require__.r(__webpack_exports__); 12551/* harmony import */ var _setBreakpoint_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setBreakpoint.js */ "./node_modules/swiper/core/breakpoints/setBreakpoint.js"); 12552/* harmony import */ var _getBreakpoint_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getBreakpoint.js */ "./node_modules/swiper/core/breakpoints/getBreakpoint.js"); 12553 12554 12555/* harmony default export */ __webpack_exports__["default"] = ({ 12556 setBreakpoint: _setBreakpoint_js__WEBPACK_IMPORTED_MODULE_0__["default"], 12557 getBreakpoint: _getBreakpoint_js__WEBPACK_IMPORTED_MODULE_1__["default"] 12558}); 12559 12560/***/ }), 12561
vendor: 3,951 bytes, lines 12562-12646
12562/***/ "./node_modules/swiper/core/breakpoints/setBreakpoint.js": 12563/*!***************************************************************!*\ 12564 !*** ./node_modules/swiper/core/breakpoints/setBreakpoint.js ***! 12565 \***************************************************************/ 12566/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 12567 12568"use strict"; 12569__webpack_require__.r(__webpack_exports__); 12570/* harmony export */ __webpack_require__.d(__webpack_exports__, { 12571/* harmony export */ "default": function() { return /* binding */ setBreakpoint; } 12572/* harmony export */ }); 12573/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 12574 12575var isGridEnabled = function isGridEnabled(swiper, params) { 12576 return swiper.grid && params.grid && params.grid.rows > 1; 12577}; 12578function setBreakpoint() { 12579 var swiper = this; 12580 var activeIndex = swiper.activeIndex, 12581 initialized = swiper.initialized, 12582 _swiper$loopedSlides = swiper.loopedSlides, 12583 loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides, 12584 params = swiper.params, 12585 $el = swiper.$el; 12586 var breakpoints = params.breakpoints; 12587 if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters 12588 12589 var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el); 12590 if (!breakpoint || swiper.currentBreakpoint === breakpoint) return; 12591 var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; 12592 var breakpointParams = breakpointOnlyParams || swiper.originalParams; 12593 var wasMultiRow = isGridEnabled(swiper, params); 12594 var isMultiRow = isGridEnabled(swiper, breakpointParams); 12595 var wasEnabled = params.enabled; 12596 if (wasMultiRow && !isMultiRow) { 12597 $el.removeClass("".concat(params.containerModifierClass, "grid ").concat(params.containerModifierClass, "grid-column")); 12598 swiper.emitContainerClasses(); 12599 } else if (!wasMultiRow && isMultiRow) { 12600 $el.addClass("".concat(params.containerModifierClass, "grid")); 12601 if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') { 12602 $el.addClass("".concat(params.containerModifierClass, "grid-column")); 12603 } 12604 swiper.emitContainerClasses(); 12605 } // Toggle navigation, pagination, scrollbar 12606 12607 ['navigation', 'pagination', 'scrollbar'].forEach(function (prop) { 12608 var wasModuleEnabled = params[prop] && params[prop].enabled; 12609 var isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled; 12610 if (wasModuleEnabled && !isModuleEnabled) { 12611 swiper[prop].disable(); 12612 } 12613 if (!wasModuleEnabled && isModuleEnabled) { 12614 swiper[prop].enable(); 12615 } 12616 }); 12617 var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; 12618 var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); 12619 if (directionChanged && initialized) { 12620 swiper.changeDirection(); 12621 } 12622 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(swiper.params, breakpointParams); 12623 var isEnabled = swiper.params.enabled; 12624 Object.assign(swiper, { 12625 allowTouchMove: swiper.params.allowTouchMove, 12626 allowSlideNext: swiper.params.allowSlideNext, 12627 allowSlidePrev: swiper.params.allowSlidePrev 12628 }); 12629 if (wasEnabled && !isEnabled) { 12630 swiper.disable(); 12631 } else if (!wasEnabled && isEnabled) { 12632 swiper.enable(); 12633 } 12634 swiper.currentBreakpoint = breakpoint; 12635 swiper.emit('_beforeBreakpoint', breakpointParams); 12636 if (needsReLoop && initialized) { 12637 swiper.loopDestroy(); 12638 swiper.loopCreate(); 12639 swiper.updateSlides(); 12640 swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false); 12641 } 12642 swiper.emit('breakpoint', breakpointParams); 12643} 12644 12645/***/ }), 12646
vendor: 1,377 bytes, lines 12647-12685
12647/***/ "./node_modules/swiper/core/check-overflow/index.js": 12648/*!**********************************************************!*\ 12649 !*** ./node_modules/swiper/core/check-overflow/index.js ***! 12650 \**********************************************************/ 12651/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 12652 12653"use strict"; 12654__webpack_require__.r(__webpack_exports__); 12655function checkOverflow() { 12656 var swiper = this; 12657 var wasLocked = swiper.isLocked, 12658 params = swiper.params; 12659 var slidesOffsetBefore = params.slidesOffsetBefore; 12660 if (slidesOffsetBefore) { 12661 var lastSlideIndex = swiper.slides.length - 1; 12662 var lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2; 12663 swiper.isLocked = swiper.size > lastSlideRightEdge; 12664 } else { 12665 swiper.isLocked = swiper.snapGrid.length === 1; 12666 } 12667 if (params.allowSlideNext === true) { 12668 swiper.allowSlideNext = !swiper.isLocked; 12669 } 12670 if (params.allowSlidePrev === true) { 12671 swiper.allowSlidePrev = !swiper.isLocked; 12672 } 12673 if (wasLocked && wasLocked !== swiper.isLocked) { 12674 swiper.isEnd = false; 12675 } 12676 if (wasLocked !== swiper.isLocked) { 12677 swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); 12678 } 12679} 12680/* harmony default export */ __webpack_exports__["default"] = ({ 12681 checkOverflow: checkOverflow 12682}); 12683 12684/***/ }), 12685
vendor: 3,472 bytes, lines 12686-12757
12686/***/ "./node_modules/swiper/core/classes/addClasses.js": 12687/*!********************************************************!*\ 12688 !*** ./node_modules/swiper/core/classes/addClasses.js ***! 12689 \********************************************************/ 12690/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 12691 12692"use strict"; 12693__webpack_require__.r(__webpack_exports__); 12694/* harmony export */ __webpack_require__.d(__webpack_exports__, { 12695/* harmony export */ "default": function() { return /* binding */ addClasses; } 12696/* harmony export */ }); 12697function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } 12698function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } 12699function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } 12700function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } 12701function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } 12702function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } 12703function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 12704function prepareClasses(entries, prefix) { 12705 var resultClasses = []; 12706 entries.forEach(function (item) { 12707 if (_typeof(item) === 'object') { 12708 Object.keys(item).forEach(function (classNames) { 12709 if (item[classNames]) { 12710 resultClasses.push(prefix + classNames); 12711 } 12712 }); 12713 } else if (typeof item === 'string') { 12714 resultClasses.push(prefix + item); 12715 } 12716 }); 12717 return resultClasses; 12718} 12719function addClasses() { 12720 var swiper = this; 12721 var classNames = swiper.classNames, 12722 params = swiper.params, 12723 rtl = swiper.rtl, 12724 $el = swiper.$el, 12725 device = swiper.device, 12726 support = swiper.support; // prettier-ignore 12727 12728 var suffixes = prepareClasses(['initialized', params.direction, { 12729 'pointer-events': !support.touch 12730 }, { 12731 'free-mode': swiper.params.freeMode && params.freeMode.enabled 12732 }, { 12733 'autoheight': params.autoHeight 12734 }, { 12735 'rtl': rtl 12736 }, { 12737 'grid': params.grid && params.grid.rows > 1 12738 }, { 12739 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' 12740 }, { 12741 'android': device.android 12742 }, { 12743 'ios': device.ios 12744 }, { 12745 'css-mode': params.cssMode 12746 }, { 12747 'centered': params.cssMode && params.centeredSlides 12748 }, { 12749 'watch-progress': params.watchSlidesProgress 12750 }], params.containerModifierClass); 12751 classNames.push.apply(classNames, _toConsumableArray(suffixes)); 12752 $el.addClass(_toConsumableArray(classNames).join(' ')); 12753 swiper.emitContainerClasses(); 12754} 12755 12756/***/ }), 12757
vendor: 950 bytes, lines 12758-12776
12758/***/ "./node_modules/swiper/core/classes/index.js": 12759/*!***************************************************!*\ 12760 !*** ./node_modules/swiper/core/classes/index.js ***! 12761 \***************************************************/ 12762/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 12763 12764"use strict"; 12765__webpack_require__.r(__webpack_exports__); 12766/* harmony import */ var _addClasses_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addClasses.js */ "./node_modules/swiper/core/classes/addClasses.js"); 12767/* harmony import */ var _removeClasses_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./removeClasses.js */ "./node_modules/swiper/core/classes/removeClasses.js"); 12768 12769 12770/* harmony default export */ __webpack_exports__["default"] = ({ 12771 addClasses: _addClasses_js__WEBPACK_IMPORTED_MODULE_0__["default"], 12772 removeClasses: _removeClasses_js__WEBPACK_IMPORTED_MODULE_1__["default"] 12773}); 12774 12775/***/ }), 12776
vendor: 783 bytes, lines 12777-12797
12777/***/ "./node_modules/swiper/core/classes/removeClasses.js": 12778/*!***********************************************************!*\ 12779 !*** ./node_modules/swiper/core/classes/removeClasses.js ***! 12780 \***********************************************************/ 12781/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 12782 12783"use strict"; 12784__webpack_require__.r(__webpack_exports__); 12785/* harmony export */ __webpack_require__.d(__webpack_exports__, { 12786/* harmony export */ "default": function() { return /* binding */ removeClasses; } 12787/* harmony export */ }); 12788function removeClasses() { 12789 var swiper = this; 12790 var $el = swiper.$el, 12791 classNames = swiper.classNames; 12792 $el.removeClass(classNames.join(' ')); 12793 swiper.emitContainerClasses(); 12794} 12795 12796/***/ }), 12797
vendor: 27,391 bytes, lines 12798-13440
12798/***/ "./node_modules/swiper/core/core.js": 12799/*!******************************************!*\ 12800 !*** ./node_modules/swiper/core/core.js ***! 12801 \******************************************/ 12802/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 12803 12804"use strict"; 12805__webpack_require__.r(__webpack_exports__); 12806/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 12807/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 12808/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 12809/* harmony import */ var _shared_get_support_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../shared/get-support.js */ "./node_modules/swiper/shared/get-support.js"); 12810/* harmony import */ var _shared_get_device_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../shared/get-device.js */ "./node_modules/swiper/shared/get-device.js"); 12811/* harmony import */ var _shared_get_browser_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../shared/get-browser.js */ "./node_modules/swiper/shared/get-browser.js"); 12812/* harmony import */ var _modules_resize_resize_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/resize/resize.js */ "./node_modules/swiper/core/modules/resize/resize.js"); 12813/* harmony import */ var _modules_observer_observer_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/observer/observer.js */ "./node_modules/swiper/core/modules/observer/observer.js"); 12814/* harmony import */ var _events_emitter_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./events-emitter.js */ "./node_modules/swiper/core/events-emitter.js"); 12815/* harmony import */ var _update_index_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./update/index.js */ "./node_modules/swiper/core/update/index.js"); 12816/* harmony import */ var _translate_index_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./translate/index.js */ "./node_modules/swiper/core/translate/index.js"); 12817/* harmony import */ var _transition_index_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./transition/index.js */ "./node_modules/swiper/core/transition/index.js"); 12818/* harmony import */ var _slide_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./slide/index.js */ "./node_modules/swiper/core/slide/index.js"); 12819/* harmony import */ var _loop_index_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./loop/index.js */ "./node_modules/swiper/core/loop/index.js"); 12820/* harmony import */ var _grab_cursor_index_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./grab-cursor/index.js */ "./node_modules/swiper/core/grab-cursor/index.js"); 12821/* harmony import */ var _events_index_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./events/index.js */ "./node_modules/swiper/core/events/index.js"); 12822/* harmony import */ var _breakpoints_index_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./breakpoints/index.js */ "./node_modules/swiper/core/breakpoints/index.js"); 12823/* harmony import */ var _classes_index_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./classes/index.js */ "./node_modules/swiper/core/classes/index.js"); 12824/* harmony import */ var _images_index_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./images/index.js */ "./node_modules/swiper/core/images/index.js"); 12825/* harmony import */ var _check_overflow_index_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./check-overflow/index.js */ "./node_modules/swiper/core/check-overflow/index.js"); 12826/* harmony import */ var _defaults_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./defaults.js */ "./node_modules/swiper/core/defaults.js"); 12827/* harmony import */ var _moduleExtendParams_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./moduleExtendParams.js */ "./node_modules/swiper/core/moduleExtendParams.js"); 12828function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 12829function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } 12830function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } 12831function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } 12832function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } 12833function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } 12834function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } 12835function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } 12836function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } 12837function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } 12838function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } 12839function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } 12840/* eslint no-param-reassign: "off" */ 12841 12842 12843 12844 12845 12846 12847 12848 12849 12850 12851 12852 12853 12854 12855 12856 12857 12858 12859 12860 12861 12862 12863var prototypes = { 12864 eventsEmitter: _events_emitter_js__WEBPACK_IMPORTED_MODULE_8__["default"], 12865 update: _update_index_js__WEBPACK_IMPORTED_MODULE_9__["default"], 12866 translate: _translate_index_js__WEBPACK_IMPORTED_MODULE_10__["default"], 12867 transition: _transition_index_js__WEBPACK_IMPORTED_MODULE_11__["default"], 12868 slide: _slide_index_js__WEBPACK_IMPORTED_MODULE_12__["default"], 12869 loop: _loop_index_js__WEBPACK_IMPORTED_MODULE_13__["default"], 12870 grabCursor: _grab_cursor_index_js__WEBPACK_IMPORTED_MODULE_14__["default"], 12871 events: _events_index_js__WEBPACK_IMPORTED_MODULE_15__["default"], 12872 breakpoints: _breakpoints_index_js__WEBPACK_IMPORTED_MODULE_16__["default"], 12873 checkOverflow: _check_overflow_index_js__WEBPACK_IMPORTED_MODULE_19__["default"], 12874 classes: _classes_index_js__WEBPACK_IMPORTED_MODULE_17__["default"], 12875 images: _images_index_js__WEBPACK_IMPORTED_MODULE_18__["default"] 12876}; 12877var extendedDefaults = {}; 12878var Swiper = /*#__PURE__*/function () { 12879 function Swiper() { 12880 _classCallCheck(this, Swiper); 12881 var el; 12882 var params; 12883 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 12884 args[_key] = arguments[_key]; 12885 } 12886 if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') { 12887 params = args[0]; 12888 } else { 12889 el = args[0]; 12890 params = args[1]; 12891 } 12892 if (!params) params = {}; 12893 params = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, params); 12894 if (el && !params.el) params.el = el; 12895 if (params.el && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.el).length > 1) { 12896 var swipers = []; 12897 (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.el).each(function (containerEl) { 12898 var newParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, params, { 12899 el: containerEl 12900 }); 12901 swipers.push(new Swiper(newParams)); 12902 }); // eslint-disable-next-line no-constructor-return 12903 12904 return swipers; 12905 } // Swiper Instance 12906 12907 var swiper = this; 12908 swiper.__swiper__ = true; 12909 swiper.support = (0,_shared_get_support_js__WEBPACK_IMPORTED_MODULE_3__.getSupport)(); 12910 swiper.device = (0,_shared_get_device_js__WEBPACK_IMPORTED_MODULE_4__.getDevice)({ 12911 userAgent: params.userAgent 12912 }); 12913 swiper.browser = (0,_shared_get_browser_js__WEBPACK_IMPORTED_MODULE_5__.getBrowser)(); 12914 swiper.eventsListeners = {}; 12915 swiper.eventsAnyListeners = []; 12916 swiper.modules = _toConsumableArray(swiper.__modules__); 12917 if (params.modules && Array.isArray(params.modules)) { 12918 var _swiper$modules; 12919 (_swiper$modules = swiper.modules).push.apply(_swiper$modules, _toConsumableArray(params.modules)); 12920 } 12921 var allModulesParams = {}; 12922 swiper.modules.forEach(function (mod) { 12923 mod({ 12924 swiper: swiper, 12925 extendParams: (0,_moduleExtendParams_js__WEBPACK_IMPORTED_MODULE_21__["default"])(params, allModulesParams), 12926 on: swiper.on.bind(swiper), 12927 once: swiper.once.bind(swiper), 12928 off: swiper.off.bind(swiper), 12929 emit: swiper.emit.bind(swiper) 12930 }); 12931 }); // Extend defaults with modules params 12932 12933 var swiperParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, _defaults_js__WEBPACK_IMPORTED_MODULE_20__["default"], allModulesParams); // Extend defaults with passed params 12934 12935 swiper.params = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, swiperParams, extendedDefaults, params); 12936 swiper.originalParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, swiper.params); 12937 swiper.passedParams = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)({}, params); // add event listeners 12938 12939 if (swiper.params && swiper.params.on) { 12940 Object.keys(swiper.params.on).forEach(function (eventName) { 12941 swiper.on(eventName, swiper.params.on[eventName]); 12942 }); 12943 } 12944 if (swiper.params && swiper.params.onAny) { 12945 swiper.onAny(swiper.params.onAny); 12946 } // Save Dom lib 12947 12948 swiper.$ = _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"]; // Extend Swiper 12949 12950 Object.assign(swiper, { 12951 enabled: swiper.params.enabled, 12952 el: el, 12953 // Classes 12954 classNames: [], 12955 // Slides 12956 slides: (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(), 12957 slidesGrid: [], 12958 snapGrid: [], 12959 slidesSizesGrid: [], 12960 // isDirection 12961 isHorizontal: function isHorizontal() { 12962 return swiper.params.direction === 'horizontal'; 12963 }, 12964 isVertical: function isVertical() { 12965 return swiper.params.direction === 'vertical'; 12966 }, 12967 // Indexes 12968 activeIndex: 0, 12969 realIndex: 0, 12970 // 12971 isBeginning: true, 12972 isEnd: false, 12973 // Props 12974 translate: 0, 12975 previousTranslate: 0, 12976 progress: 0, 12977 velocity: 0, 12978 animating: false, 12979 // Locks 12980 allowSlideNext: swiper.params.allowSlideNext, 12981 allowSlidePrev: swiper.params.allowSlidePrev, 12982 // Touch Events 12983 touchEvents: function touchEvents() { 12984 var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel']; 12985 var desktop = ['pointerdown', 'pointermove', 'pointerup']; 12986 swiper.touchEventsTouch = { 12987 start: touch[0], 12988 move: touch[1], 12989 end: touch[2], 12990 cancel: touch[3] 12991 }; 12992 swiper.touchEventsDesktop = { 12993 start: desktop[0], 12994 move: desktop[1], 12995 end: desktop[2] 12996 }; 12997 return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop; 12998 }(), 12999 touchEventsData: { 13000 isTouched: undefined, 13001 isMoved: undefined, 13002 allowTouchCallbacks: undefined, 13003 touchStartTime: undefined, 13004 isScrolling: undefined, 13005 currentTranslate: undefined, 13006 startTranslate: undefined, 13007 allowThresholdMove: undefined, 13008 // Form elements to match 13009 focusableElements: swiper.params.focusableElements, 13010 // Last click time 13011 lastClickTime: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(), 13012 clickTimeout: undefined, 13013 // Velocities 13014 velocities: [], 13015 allowMomentumBounce: undefined, 13016 isTouchEvent: undefined, 13017 startMoving: undefined 13018 }, 13019 // Clicks 13020 allowClick: true, 13021 // Touches 13022 allowTouchMove: swiper.params.allowTouchMove, 13023 touches: { 13024 startX: 0, 13025 startY: 0, 13026 currentX: 0, 13027 currentY: 0, 13028 diff: 0 13029 }, 13030 // Images 13031 imagesToLoad: [], 13032 imagesLoaded: 0 13033 }); 13034 swiper.emit('_swiper'); // Init 13035 13036 if (swiper.params.init) { 13037 swiper.init(); 13038 } // Return app instance 13039 // eslint-disable-next-line no-constructor-return 13040 13041 return swiper; 13042 } 13043 return _createClass(Swiper, [{ 13044 key: "enable", 13045 value: function enable() { 13046 var swiper = this; 13047 if (swiper.enabled) return; 13048 swiper.enabled = true; 13049 if (swiper.params.grabCursor) { 13050 swiper.setGrabCursor(); 13051 } 13052 swiper.emit('enable'); 13053 } 13054 }, { 13055 key: "disable", 13056 value: function disable() { 13057 var swiper = this; 13058 if (!swiper.enabled) return; 13059 swiper.enabled = false; 13060 if (swiper.params.grabCursor) { 13061 swiper.unsetGrabCursor(); 13062 } 13063 swiper.emit('disable'); 13064 } 13065 }, { 13066 key: "setProgress", 13067 value: function setProgress(progress, speed) { 13068 var swiper = this; 13069 progress = Math.min(Math.max(progress, 0), 1); 13070 var min = swiper.minTranslate(); 13071 var max = swiper.maxTranslate(); 13072 var current = (max - min) * progress + min; 13073 swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed); 13074 swiper.updateActiveIndex(); 13075 swiper.updateSlidesClasses(); 13076 } 13077 }, { 13078 key: "emitContainerClasses", 13079 value: function emitContainerClasses() { 13080 var swiper = this; 13081 if (!swiper.params._emitClasses || !swiper.el) return; 13082 var cls = swiper.el.className.split(' ').filter(function (className) { 13083 return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0; 13084 }); 13085 swiper.emit('_containerClasses', cls.join(' ')); 13086 } 13087 }, { 13088 key: "getSlideClasses", 13089 value: function getSlideClasses(slideEl) { 13090 var swiper = this; 13091 if (swiper.destroyed) return ''; 13092 return slideEl.className.split(' ').filter(function (className) { 13093 return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0; 13094 }).join(' '); 13095 } 13096 }, { 13097 key: "emitSlidesClasses", 13098 value: function emitSlidesClasses() { 13099 var swiper = this; 13100 if (!swiper.params._emitClasses || !swiper.el) return; 13101 var updates = []; 13102 swiper.slides.each(function (slideEl) { 13103 var classNames = swiper.getSlideClasses(slideEl); 13104 updates.push({ 13105 slideEl: slideEl, 13106 classNames: classNames 13107 }); 13108 swiper.emit('_slideClass', slideEl, classNames); 13109 }); 13110 swiper.emit('_slideClasses', updates); 13111 } 13112 }, { 13113 key: "slidesPerViewDynamic", 13114 value: function slidesPerViewDynamic() { 13115 var view = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'current'; 13116 var exact = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; 13117 var swiper = this; 13118 var params = swiper.params, 13119 slides = swiper.slides, 13120 slidesGrid = swiper.slidesGrid, 13121 slidesSizesGrid = swiper.slidesSizesGrid, 13122 swiperSize = swiper.size, 13123 activeIndex = swiper.activeIndex; 13124 var spv = 1; 13125 if (params.centeredSlides) { 13126 var slideSize = slides[activeIndex].swiperSlideSize; 13127 var breakLoop; 13128 for (var i = activeIndex + 1; i < slides.length; i += 1) { 13129 if (slides[i] && !breakLoop) { 13130 slideSize += slides[i].swiperSlideSize; 13131 spv += 1; 13132 if (slideSize > swiperSize) breakLoop = true; 13133 } 13134 } 13135 for (var _i = activeIndex - 1; _i >= 0; _i -= 1) { 13136 if (slides[_i] && !breakLoop) { 13137 slideSize += slides[_i].swiperSlideSize; 13138 spv += 1; 13139 if (slideSize > swiperSize) breakLoop = true; 13140 } 13141 } 13142 } else { 13143 // eslint-disable-next-line 13144 if (view === 'current') { 13145 for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) { 13146 var slideInView = exact ? slidesGrid[_i2] + slidesSizesGrid[_i2] - slidesGrid[activeIndex] < swiperSize : slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize; 13147 if (slideInView) { 13148 spv += 1; 13149 } 13150 } 13151 } else { 13152 // previous 13153 for (var _i3 = activeIndex - 1; _i3 >= 0; _i3 -= 1) { 13154 var _slideInView = slidesGrid[activeIndex] - slidesGrid[_i3] < swiperSize; 13155 if (_slideInView) { 13156 spv += 1; 13157 } 13158 } 13159 } 13160 } 13161 return spv; 13162 } 13163 }, { 13164 key: "update", 13165 value: function update() { 13166 var swiper = this; 13167 if (!swiper || swiper.destroyed) return; 13168 var snapGrid = swiper.snapGrid, 13169 params = swiper.params; // Breakpoints 13170 13171 if (params.breakpoints) { 13172 swiper.setBreakpoint(); 13173 } 13174 swiper.updateSize(); 13175 swiper.updateSlides(); 13176 swiper.updateProgress(); 13177 swiper.updateSlidesClasses(); 13178 function setTranslate() { 13179 var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; 13180 var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); 13181 swiper.setTranslate(newTranslate); 13182 swiper.updateActiveIndex(); 13183 swiper.updateSlidesClasses(); 13184 } 13185 var translated; 13186 if (swiper.params.freeMode && swiper.params.freeMode.enabled) { 13187 setTranslate(); 13188 if (swiper.params.autoHeight) { 13189 swiper.updateAutoHeight(); 13190 } 13191 } else { 13192 if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { 13193 translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true); 13194 } else { 13195 translated = swiper.slideTo(swiper.activeIndex, 0, false, true); 13196 } 13197 if (!translated) { 13198 setTranslate(); 13199 } 13200 } 13201 if (params.watchOverflow && snapGrid !== swiper.snapGrid) { 13202 swiper.checkOverflow(); 13203 } 13204 swiper.emit('update'); 13205 } 13206 }, { 13207 key: "changeDirection", 13208 value: function changeDirection(newDirection) { 13209 var needUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 13210 var swiper = this; 13211 var currentDirection = swiper.params.direction; 13212 if (!newDirection) { 13213 // eslint-disable-next-line 13214 newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal'; 13215 } 13216 if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') { 13217 return swiper; 13218 } 13219 swiper.$el.removeClass("".concat(swiper.params.containerModifierClass).concat(currentDirection)).addClass("".concat(swiper.params.containerModifierClass).concat(newDirection)); 13220 swiper.emitContainerClasses(); 13221 swiper.params.direction = newDirection; 13222 swiper.slides.each(function (slideEl) { 13223 if (newDirection === 'vertical') { 13224 slideEl.style.width = ''; 13225 } else { 13226 slideEl.style.height = ''; 13227 } 13228 }); 13229 swiper.emit('changeDirection'); 13230 if (needUpdate) swiper.update(); 13231 return swiper; 13232 } 13233 }, { 13234 key: "changeLanguageDirection", 13235 value: function changeLanguageDirection(direction) { 13236 var swiper = this; 13237 if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return; 13238 swiper.rtl = direction === 'rtl'; 13239 swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl; 13240 if (swiper.rtl) { 13241 swiper.$el.addClass("".concat(swiper.params.containerModifierClass, "rtl")); 13242 swiper.el.dir = 'rtl'; 13243 } else { 13244 swiper.$el.removeClass("".concat(swiper.params.containerModifierClass, "rtl")); 13245 swiper.el.dir = 'ltr'; 13246 } 13247 swiper.update(); 13248 } 13249 }, { 13250 key: "mount", 13251 value: function mount(el) { 13252 var swiper = this; 13253 if (swiper.mounted) return true; // Find el 13254 13255 var $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(el || swiper.params.el); 13256 el = $el[0]; 13257 if (!el) { 13258 return false; 13259 } 13260 el.swiper = swiper; 13261 var getWrapperSelector = function getWrapperSelector() { 13262 return ".".concat((swiper.params.wrapperClass || '').trim().split(' ').join('.')); 13263 }; 13264 var getWrapper = function getWrapper() { 13265 if (el && el.shadowRoot && el.shadowRoot.querySelector) { 13266 var res = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items 13267 13268 res.children = function (options) { 13269 return $el.children(options); 13270 }; 13271 return res; 13272 } 13273 if (!$el.children) { 13274 return (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])($el).children(getWrapperSelector()); 13275 } 13276 return $el.children(getWrapperSelector()); 13277 }; // Find Wrapper 13278 13279 var $wrapperEl = getWrapper(); 13280 if ($wrapperEl.length === 0 && swiper.params.createElements) { 13281 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 13282 var wrapper = document.createElement('div'); 13283 $wrapperEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(wrapper); 13284 wrapper.className = swiper.params.wrapperClass; 13285 $el.append(wrapper); 13286 $el.children(".".concat(swiper.params.slideClass)).each(function (slideEl) { 13287 $wrapperEl.append(slideEl); 13288 }); 13289 } 13290 Object.assign(swiper, { 13291 $el: $el, 13292 el: el, 13293 $wrapperEl: $wrapperEl, 13294 wrapperEl: $wrapperEl[0], 13295 mounted: true, 13296 // RTL 13297 rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl', 13298 rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'), 13299 wrongRTL: $wrapperEl.css('display') === '-webkit-box' 13300 }); 13301 return true; 13302 } 13303 }, { 13304 key: "init", 13305 value: function init(el) { 13306 var swiper = this; 13307 if (swiper.initialized) return swiper; 13308 var mounted = swiper.mount(el); 13309 if (mounted === false) return swiper; 13310 swiper.emit('beforeInit'); // Set breakpoint 13311 13312 if (swiper.params.breakpoints) { 13313 swiper.setBreakpoint(); 13314 } // Add Classes 13315 13316 swiper.addClasses(); // Create loop 13317 13318 if (swiper.params.loop) { 13319 swiper.loopCreate(); 13320 } // Update size 13321 13322 swiper.updateSize(); // Update slides 13323 13324 swiper.updateSlides(); 13325 if (swiper.params.watchOverflow) { 13326 swiper.checkOverflow(); 13327 } // Set Grab Cursor 13328 13329 if (swiper.params.grabCursor && swiper.enabled) { 13330 swiper.setGrabCursor(); 13331 } 13332 if (swiper.params.preloadImages) { 13333 swiper.preloadImages(); 13334 } // Slide To Initial Slide 13335 13336 if (swiper.params.loop) { 13337 swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true); 13338 } else { 13339 swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true); 13340 } // Attach events 13341 13342 swiper.attachEvents(); // Init Flag 13343 13344 swiper.initialized = true; // Emit 13345 13346 swiper.emit('init'); 13347 swiper.emit('afterInit'); 13348 return swiper; 13349 } 13350 }, { 13351 key: "destroy", 13352 value: function destroy() { 13353 var deleteInstance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 13354 var cleanStyles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 13355 var swiper = this; 13356 var params = swiper.params, 13357 $el = swiper.$el, 13358 $wrapperEl = swiper.$wrapperEl, 13359 slides = swiper.slides; 13360 if (typeof swiper.params === 'undefined' || swiper.destroyed) { 13361 return null; 13362 } 13363 swiper.emit('beforeDestroy'); // Init Flag 13364 13365 swiper.initialized = false; // Detach events 13366 13367 swiper.detachEvents(); // Destroy loop 13368 13369 if (params.loop) { 13370 swiper.loopDestroy(); 13371 } // Cleanup styles 13372 13373 if (cleanStyles) { 13374 swiper.removeClasses(); 13375 $el.removeAttr('style'); 13376 $wrapperEl.removeAttr('style'); 13377 if (slides && slides.length) { 13378 slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index'); 13379 } 13380 } 13381 swiper.emit('destroy'); // Detach emitter events 13382 13383 Object.keys(swiper.eventsListeners).forEach(function (eventName) { 13384 swiper.off(eventName); 13385 }); 13386 if (deleteInstance !== false) { 13387 swiper.$el[0].swiper = null; 13388 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.deleteProps)(swiper); 13389 } 13390 swiper.destroyed = true; 13391 return null; 13392 } 13393 }], [{ 13394 key: "extendDefaults", 13395 value: function extendDefaults(newDefaults) { 13396 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.extend)(extendedDefaults, newDefaults); 13397 } 13398 }, { 13399 key: "extendedDefaults", 13400 get: function get() { 13401 return extendedDefaults; 13402 } 13403 }, { 13404 key: "defaults", 13405 get: function get() { 13406 return _defaults_js__WEBPACK_IMPORTED_MODULE_20__["default"]; 13407 } 13408 }, { 13409 key: "installModule", 13410 value: function installModule(mod) { 13411 if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = []; 13412 var modules = Swiper.prototype.__modules__; 13413 if (typeof mod === 'function' && modules.indexOf(mod) < 0) { 13414 modules.push(mod); 13415 } 13416 } 13417 }, { 13418 key: "use", 13419 value: function use(module) { 13420 if (Array.isArray(module)) { 13421 module.forEach(function (m) { 13422 return Swiper.installModule(m); 13423 }); 13424 return Swiper; 13425 } 13426 Swiper.installModule(module); 13427 return Swiper; 13428 } 13429 }]); 13430}(); 13431Object.keys(prototypes).forEach(function (prototypeGroup) { 13432 Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) { 13433 Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; 13434 }); 13435}); 13436Swiper.use([_modules_resize_resize_js__WEBPACK_IMPORTED_MODULE_6__["default"], _modules_observer_observer_js__WEBPACK_IMPORTED_MODULE_7__["default"]]); 13437/* harmony default export */ __webpack_exports__["default"] = (Swiper); 13438 13439/***/ }), 13440
vendor: 3,599 bytes, lines 13441-13575
13441/***/ "./node_modules/swiper/core/defaults.js": 13442/*!**********************************************!*\ 13443 !*** ./node_modules/swiper/core/defaults.js ***! 13444 \**********************************************/ 13445/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 13446 13447"use strict"; 13448__webpack_require__.r(__webpack_exports__); 13449/* harmony default export */ __webpack_exports__["default"] = ({ 13450 init: true, 13451 direction: 'horizontal', 13452 touchEventsTarget: 'wrapper', 13453 initialSlide: 0, 13454 speed: 300, 13455 cssMode: false, 13456 updateOnWindowResize: true, 13457 resizeObserver: true, 13458 nested: false, 13459 createElements: false, 13460 enabled: true, 13461 focusableElements: 'input, select, option, textarea, button, video, label', 13462 // Overrides 13463 width: null, 13464 height: null, 13465 // 13466 preventInteractionOnTransition: false, 13467 // ssr 13468 userAgent: null, 13469 url: null, 13470 // To support iOS's swipe-to-go-back gesture (when being used in-app). 13471 edgeSwipeDetection: false, 13472 edgeSwipeThreshold: 20, 13473 // Autoheight 13474 autoHeight: false, 13475 // Set wrapper width 13476 setWrapperSize: false, 13477 // Virtual Translate 13478 virtualTranslate: false, 13479 // Effects 13480 effect: 'slide', 13481 // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' 13482 // Breakpoints 13483 breakpoints: undefined, 13484 breakpointsBase: 'window', 13485 // Slides grid 13486 spaceBetween: 0, 13487 slidesPerView: 1, 13488 slidesPerGroup: 1, 13489 slidesPerGroupSkip: 0, 13490 slidesPerGroupAuto: false, 13491 centeredSlides: false, 13492 centeredSlidesBounds: false, 13493 slidesOffsetBefore: 0, 13494 // in px 13495 slidesOffsetAfter: 0, 13496 // in px 13497 normalizeSlideIndex: true, 13498 centerInsufficientSlides: false, 13499 // Disable swiper and hide navigation when container not overflow 13500 watchOverflow: true, 13501 // Round length 13502 roundLengths: false, 13503 // Touches 13504 touchRatio: 1, 13505 touchAngle: 45, 13506 simulateTouch: true, 13507 shortSwipes: true, 13508 longSwipes: true, 13509 longSwipesRatio: 0.5, 13510 longSwipesMs: 300, 13511 followFinger: true, 13512 allowTouchMove: true, 13513 threshold: 0, 13514 touchMoveStopPropagation: false, 13515 touchStartPreventDefault: true, 13516 touchStartForcePreventDefault: false, 13517 touchReleaseOnEdges: false, 13518 // Unique Navigation Elements 13519 uniqueNavElements: true, 13520 // Resistance 13521 resistance: true, 13522 resistanceRatio: 0.85, 13523 // Progress 13524 watchSlidesProgress: false, 13525 // Cursor 13526 grabCursor: false, 13527 // Clicks 13528 preventClicks: true, 13529 preventClicksPropagation: true, 13530 slideToClickedSlide: false, 13531 // Images 13532 preloadImages: true, 13533 updateOnImagesReady: true, 13534 // loop 13535 loop: false, 13536 loopAdditionalSlides: 0, 13537 loopedSlides: null, 13538 loopedSlidesLimit: true, 13539 loopFillGroupWithBlank: false, 13540 loopPreventsSlide: true, 13541 // rewind 13542 rewind: false, 13543 // Swiping/no swiping 13544 allowSlidePrev: true, 13545 allowSlideNext: true, 13546 swipeHandler: null, 13547 // '.swipe-handler', 13548 noSwiping: true, 13549 noSwipingClass: 'swiper-no-swiping', 13550 noSwipingSelector: null, 13551 // Passive Listeners 13552 passiveListeners: true, 13553 maxBackfaceHiddenSlides: 10, 13554 // NS 13555 containerModifierClass: 'swiper-', 13556 // NEW 13557 slideClass: 'swiper-slide', 13558 slideBlankClass: 'swiper-slide-invisible-blank', 13559 slideActiveClass: 'swiper-slide-active', 13560 slideDuplicateActiveClass: 'swiper-slide-duplicate-active', 13561 slideVisibleClass: 'swiper-slide-visible', 13562 slideDuplicateClass: 'swiper-slide-duplicate', 13563 slideNextClass: 'swiper-slide-next', 13564 slideDuplicateNextClass: 'swiper-slide-duplicate-next', 13565 slidePrevClass: 'swiper-slide-prev', 13566 slideDuplicatePrevClass: 'swiper-slide-duplicate-prev', 13567 wrapperClass: 'swiper-wrapper', 13568 // Callbacks 13569 runCallbacksOnInit: true, 13570 // Internals 13571 _emitClasses: false 13572}); 13573 13574/***/ }), 13575
vendor: 5,232 bytes, lines 13576-13695
13576/***/ "./node_modules/swiper/core/events-emitter.js": 13577/*!****************************************************!*\ 13578 !*** ./node_modules/swiper/core/events-emitter.js ***! 13579 \****************************************************/ 13580/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 13581 13582"use strict"; 13583__webpack_require__.r(__webpack_exports__); 13584function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } 13585function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } 13586function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } 13587function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } 13588function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } 13589function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } 13590/* eslint-disable no-underscore-dangle */ 13591/* harmony default export */ __webpack_exports__["default"] = ({ 13592 on: function on(events, handler, priority) { 13593 var self = this; 13594 if (!self.eventsListeners || self.destroyed) return self; 13595 if (typeof handler !== 'function') return self; 13596 var method = priority ? 'unshift' : 'push'; 13597 events.split(' ').forEach(function (event) { 13598 if (!self.eventsListeners[event]) self.eventsListeners[event] = []; 13599 self.eventsListeners[event][method](handler); 13600 }); 13601 return self; 13602 }, 13603 once: function once(events, handler, priority) { 13604 var self = this; 13605 if (!self.eventsListeners || self.destroyed) return self; 13606 if (typeof handler !== 'function') return self; 13607 function onceHandler() { 13608 self.off(events, onceHandler); 13609 if (onceHandler.__emitterProxy) { 13610 delete onceHandler.__emitterProxy; 13611 } 13612 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { 13613 args[_key] = arguments[_key]; 13614 } 13615 handler.apply(self, args); 13616 } 13617 onceHandler.__emitterProxy = handler; 13618 return self.on(events, onceHandler, priority); 13619 }, 13620 onAny: function onAny(handler, priority) { 13621 var self = this; 13622 if (!self.eventsListeners || self.destroyed) return self; 13623 if (typeof handler !== 'function') return self; 13624 var method = priority ? 'unshift' : 'push'; 13625 if (self.eventsAnyListeners.indexOf(handler) < 0) { 13626 self.eventsAnyListeners[method](handler); 13627 } 13628 return self; 13629 }, 13630 offAny: function offAny(handler) { 13631 var self = this; 13632 if (!self.eventsListeners || self.destroyed) return self; 13633 if (!self.eventsAnyListeners) return self; 13634 var index = self.eventsAnyListeners.indexOf(handler); 13635 if (index >= 0) { 13636 self.eventsAnyListeners.splice(index, 1); 13637 } 13638 return self; 13639 }, 13640 off: function off(events, handler) { 13641 var self = this; 13642 if (!self.eventsListeners || self.destroyed) return self; 13643 if (!self.eventsListeners) return self; 13644 events.split(' ').forEach(function (event) { 13645 if (typeof handler === 'undefined') { 13646 self.eventsListeners[event] = []; 13647 } else if (self.eventsListeners[event]) { 13648 self.eventsListeners[event].forEach(function (eventHandler, index) { 13649 if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) { 13650 self.eventsListeners[event].splice(index, 1); 13651 } 13652 }); 13653 } 13654 }); 13655 return self; 13656 }, 13657 emit: function emit() { 13658 var self = this; 13659 if (!self.eventsListeners || self.destroyed) return self; 13660 if (!self.eventsListeners) return self; 13661 var events; 13662 var data; 13663 var context; 13664 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { 13665 args[_key2] = arguments[_key2]; 13666 } 13667 if (typeof args[0] === 'string' || Array.isArray(args[0])) { 13668 events = args[0]; 13669 data = args.slice(1, args.length); 13670 context = self; 13671 } else { 13672 events = args[0].events; 13673 data = args[0].data; 13674 context = args[0].context || self; 13675 } 13676 data.unshift(context); 13677 var eventsArray = Array.isArray(events) ? events : events.split(' '); 13678 eventsArray.forEach(function (event) { 13679 if (self.eventsAnyListeners && self.eventsAnyListeners.length) { 13680 self.eventsAnyListeners.forEach(function (eventHandler) { 13681 eventHandler.apply(context, [event].concat(_toConsumableArray(data))); 13682 }); 13683 } 13684 if (self.eventsListeners && self.eventsListeners[event]) { 13685 self.eventsListeners[event].forEach(function (eventHandler) { 13686 eventHandler.apply(context, data); 13687 }); 13688 } 13689 }); 13690 return self; 13691 } 13692}); 13693 13694/***/ }), 13695
vendor: 4,514 bytes, lines 13696-13793
13696/***/ "./node_modules/swiper/core/events/index.js": 13697/*!**************************************************!*\ 13698 !*** ./node_modules/swiper/core/events/index.js ***! 13699 \**************************************************/ 13700/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 13701 13702"use strict"; 13703__webpack_require__.r(__webpack_exports__); 13704/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 13705/* harmony import */ var _onTouchStart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./onTouchStart.js */ "./node_modules/swiper/core/events/onTouchStart.js"); 13706/* harmony import */ var _onTouchMove_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./onTouchMove.js */ "./node_modules/swiper/core/events/onTouchMove.js"); 13707/* harmony import */ var _onTouchEnd_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./onTouchEnd.js */ "./node_modules/swiper/core/events/onTouchEnd.js"); 13708/* harmony import */ var _onResize_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./onResize.js */ "./node_modules/swiper/core/events/onResize.js"); 13709/* harmony import */ var _onClick_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./onClick.js */ "./node_modules/swiper/core/events/onClick.js"); 13710/* harmony import */ var _onScroll_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./onScroll.js */ "./node_modules/swiper/core/events/onScroll.js"); 13711 13712 13713 13714 13715 13716 13717 13718var dummyEventAttached = false; 13719function dummyEventListener() {} 13720var events = function events(swiper, method) { 13721 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 13722 var params = swiper.params, 13723 touchEvents = swiper.touchEvents, 13724 el = swiper.el, 13725 wrapperEl = swiper.wrapperEl, 13726 device = swiper.device, 13727 support = swiper.support; 13728 var capture = !!params.nested; 13729 var domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; 13730 var swiperMethod = method; // Touch Events 13731 13732 if (!support.touch) { 13733 el[domMethod](touchEvents.start, swiper.onTouchStart, false); 13734 document[domMethod](touchEvents.move, swiper.onTouchMove, capture); 13735 document[domMethod](touchEvents.end, swiper.onTouchEnd, false); 13736 } else { 13737 var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? { 13738 passive: true, 13739 capture: false 13740 } : false; 13741 el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener); 13742 el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? { 13743 passive: false, 13744 capture: capture 13745 } : capture); 13746 el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener); 13747 if (touchEvents.cancel) { 13748 el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener); 13749 } 13750 } // Prevent Links Clicks 13751 13752 if (params.preventClicks || params.preventClicksPropagation) { 13753 el[domMethod]('click', swiper.onClick, true); 13754 } 13755 if (params.cssMode) { 13756 wrapperEl[domMethod]('scroll', swiper.onScroll); 13757 } // Resize handler 13758 13759 if (params.updateOnWindowResize) { 13760 swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', _onResize_js__WEBPACK_IMPORTED_MODULE_4__["default"], true); 13761 } else { 13762 swiper[swiperMethod]('observerUpdate', _onResize_js__WEBPACK_IMPORTED_MODULE_4__["default"], true); 13763 } 13764}; 13765function attachEvents() { 13766 var swiper = this; 13767 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 13768 var params = swiper.params, 13769 support = swiper.support; 13770 swiper.onTouchStart = _onTouchStart_js__WEBPACK_IMPORTED_MODULE_1__["default"].bind(swiper); 13771 swiper.onTouchMove = _onTouchMove_js__WEBPACK_IMPORTED_MODULE_2__["default"].bind(swiper); 13772 swiper.onTouchEnd = _onTouchEnd_js__WEBPACK_IMPORTED_MODULE_3__["default"].bind(swiper); 13773 if (params.cssMode) { 13774 swiper.onScroll = _onScroll_js__WEBPACK_IMPORTED_MODULE_6__["default"].bind(swiper); 13775 } 13776 swiper.onClick = _onClick_js__WEBPACK_IMPORTED_MODULE_5__["default"].bind(swiper); 13777 if (support.touch && !dummyEventAttached) { 13778 document.addEventListener('touchstart', dummyEventListener); 13779 dummyEventAttached = true; 13780 } 13781 events(swiper, 'on'); 13782} 13783function detachEvents() { 13784 var swiper = this; 13785 events(swiper, 'off'); 13786} 13787/* harmony default export */ __webpack_exports__["default"] = ({ 13788 attachEvents: attachEvents, 13789 detachEvents: detachEvents 13790}); 13791 13792/***/ }), 13793
vendor: 869 bytes, lines 13794-13818
13794/***/ "./node_modules/swiper/core/events/onClick.js": 13795/*!****************************************************!*\ 13796 !*** ./node_modules/swiper/core/events/onClick.js ***! 13797 \****************************************************/ 13798/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 13799 13800"use strict"; 13801__webpack_require__.r(__webpack_exports__); 13802/* harmony export */ __webpack_require__.d(__webpack_exports__, { 13803/* harmony export */ "default": function() { return /* binding */ onClick; } 13804/* harmony export */ }); 13805function onClick(e) { 13806 var swiper = this; 13807 if (!swiper.enabled) return; 13808 if (!swiper.allowClick) { 13809 if (swiper.params.preventClicks) e.preventDefault(); 13810 if (swiper.params.preventClicksPropagation && swiper.animating) { 13811 e.stopPropagation(); 13812 e.stopImmediatePropagation(); 13813 } 13814 } 13815} 13816 13817/***/ }), 13818
vendor: 1,692 bytes, lines 13819-13866
13819/***/ "./node_modules/swiper/core/events/onResize.js": 13820/*!*****************************************************!*\ 13821 !*** ./node_modules/swiper/core/events/onResize.js ***! 13822 \*****************************************************/ 13823/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 13824 13825"use strict"; 13826__webpack_require__.r(__webpack_exports__); 13827/* harmony export */ __webpack_require__.d(__webpack_exports__, { 13828/* harmony export */ "default": function() { return /* binding */ onResize; } 13829/* harmony export */ }); 13830function onResize() { 13831 var swiper = this; 13832 var params = swiper.params, 13833 el = swiper.el; 13834 if (el && el.offsetWidth === 0) return; // Breakpoints 13835 13836 if (params.breakpoints) { 13837 swiper.setBreakpoint(); 13838 } // Save locks 13839 13840 var allowSlideNext = swiper.allowSlideNext, 13841 allowSlidePrev = swiper.allowSlidePrev, 13842 snapGrid = swiper.snapGrid; // Disable locks on resize 13843 13844 swiper.allowSlideNext = true; 13845 swiper.allowSlidePrev = true; 13846 swiper.updateSize(); 13847 swiper.updateSlides(); 13848 swiper.updateSlidesClasses(); 13849 if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) { 13850 swiper.slideTo(swiper.slides.length - 1, 0, false, true); 13851 } else { 13852 swiper.slideTo(swiper.activeIndex, 0, false, true); 13853 } 13854 if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { 13855 swiper.autoplay.run(); 13856 } // Return locks after resize 13857 13858 swiper.allowSlidePrev = allowSlidePrev; 13859 swiper.allowSlideNext = allowSlideNext; 13860 if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { 13861 swiper.checkOverflow(); 13862 } 13863} 13864 13865/***/ }), 13866
vendor: 1,487 bytes, lines 13867-13908
13867/***/ "./node_modules/swiper/core/events/onScroll.js": 13868/*!*****************************************************!*\ 13869 !*** ./node_modules/swiper/core/events/onScroll.js ***! 13870 \*****************************************************/ 13871/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 13872 13873"use strict"; 13874__webpack_require__.r(__webpack_exports__); 13875/* harmony export */ __webpack_require__.d(__webpack_exports__, { 13876/* harmony export */ "default": function() { return /* binding */ onScroll; } 13877/* harmony export */ }); 13878function onScroll() { 13879 var swiper = this; 13880 var wrapperEl = swiper.wrapperEl, 13881 rtlTranslate = swiper.rtlTranslate, 13882 enabled = swiper.enabled; 13883 if (!enabled) return; 13884 swiper.previousTranslate = swiper.translate; 13885 if (swiper.isHorizontal()) { 13886 swiper.translate = -wrapperEl.scrollLeft; 13887 } else { 13888 swiper.translate = -wrapperEl.scrollTop; 13889 } // eslint-disable-next-line 13890 13891 if (swiper.translate === 0) swiper.translate = 0; 13892 swiper.updateActiveIndex(); 13893 swiper.updateSlidesClasses(); 13894 var newProgress; 13895 var translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 13896 if (translatesDiff === 0) { 13897 newProgress = 0; 13898 } else { 13899 newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff; 13900 } 13901 if (newProgress !== swiper.progress) { 13902 swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); 13903 } 13904 swiper.emit('setTranslate', swiper.translate, false); 13905} 13906 13907/***/ }), 13908
vendor: 5,572 bytes, lines 13909-14057
13909/***/ "./node_modules/swiper/core/events/onTouchEnd.js": 13910/*!*******************************************************!*\ 13911 !*** ./node_modules/swiper/core/events/onTouchEnd.js ***! 13912 \*******************************************************/ 13913/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 13914 13915"use strict"; 13916__webpack_require__.r(__webpack_exports__); 13917/* harmony export */ __webpack_require__.d(__webpack_exports__, { 13918/* harmony export */ "default": function() { return /* binding */ onTouchEnd; } 13919/* harmony export */ }); 13920/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 13921 13922function onTouchEnd(event) { 13923 var swiper = this; 13924 var data = swiper.touchEventsData; 13925 var params = swiper.params, 13926 touches = swiper.touches, 13927 rtl = swiper.rtlTranslate, 13928 slidesGrid = swiper.slidesGrid, 13929 enabled = swiper.enabled; 13930 if (!enabled) return; 13931 var e = event; 13932 if (e.originalEvent) e = e.originalEvent; 13933 if (data.allowTouchCallbacks) { 13934 swiper.emit('touchEnd', e); 13935 } 13936 data.allowTouchCallbacks = false; 13937 if (!data.isTouched) { 13938 if (data.isMoved && params.grabCursor) { 13939 swiper.setGrabCursor(false); 13940 } 13941 data.isMoved = false; 13942 data.startMoving = false; 13943 return; 13944 } // Return Grab Cursor 13945 13946 if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 13947 swiper.setGrabCursor(false); 13948 } // Time diff 13949 13950 var touchEndTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)(); 13951 var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click 13952 13953 if (swiper.allowClick) { 13954 var pathTree = e.path || e.composedPath && e.composedPath(); 13955 swiper.updateClickedSlide(pathTree && pathTree[0] || e.target); 13956 swiper.emit('tap click', e); 13957 if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) { 13958 swiper.emit('doubleTap doubleClick', e); 13959 } 13960 } 13961 data.lastClickTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)(); 13962 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(function () { 13963 if (!swiper.destroyed) swiper.allowClick = true; 13964 }); 13965 if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) { 13966 data.isTouched = false; 13967 data.isMoved = false; 13968 data.startMoving = false; 13969 return; 13970 } 13971 data.isTouched = false; 13972 data.isMoved = false; 13973 data.startMoving = false; 13974 var currentPos; 13975 if (params.followFinger) { 13976 currentPos = rtl ? swiper.translate : -swiper.translate; 13977 } else { 13978 currentPos = -data.currentTranslate; 13979 } 13980 if (params.cssMode) { 13981 return; 13982 } 13983 if (swiper.params.freeMode && params.freeMode.enabled) { 13984 swiper.freeMode.onTouchEnd({ 13985 currentPos: currentPos 13986 }); 13987 return; 13988 } // Find current slide 13989 13990 var stopIndex = 0; 13991 var groupSize = swiper.slidesSizesGrid[0]; 13992 for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) { 13993 var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 13994 if (typeof slidesGrid[i + _increment] !== 'undefined') { 13995 if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) { 13996 stopIndex = i; 13997 groupSize = slidesGrid[i + _increment] - slidesGrid[i]; 13998 } 13999 } else if (currentPos >= slidesGrid[i]) { 14000 stopIndex = i; 14001 groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; 14002 } 14003 } 14004 var rewindFirstIndex = null; 14005 var rewindLastIndex = null; 14006 if (params.rewind) { 14007 if (swiper.isBeginning) { 14008 rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; 14009 } else if (swiper.isEnd) { 14010 rewindFirstIndex = 0; 14011 } 14012 } // Find current slide size 14013 14014 var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; 14015 var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup; 14016 if (timeDiff > params.longSwipesMs) { 14017 // Long touches 14018 if (!params.longSwipes) { 14019 swiper.slideTo(swiper.activeIndex); 14020 return; 14021 } 14022 if (swiper.swipeDirection === 'next') { 14023 if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex); 14024 } 14025 if (swiper.swipeDirection === 'prev') { 14026 if (ratio > 1 - params.longSwipesRatio) { 14027 swiper.slideTo(stopIndex + increment); 14028 } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) { 14029 swiper.slideTo(rewindLastIndex); 14030 } else { 14031 swiper.slideTo(stopIndex); 14032 } 14033 } 14034 } else { 14035 // Short swipes 14036 if (!params.shortSwipes) { 14037 swiper.slideTo(swiper.activeIndex); 14038 return; 14039 } 14040 var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl); 14041 if (!isNavButtonTarget) { 14042 if (swiper.swipeDirection === 'next') { 14043 swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment); 14044 } 14045 if (swiper.swipeDirection === 'prev') { 14046 swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex); 14047 } 14048 } else if (e.target === swiper.navigation.nextEl) { 14049 swiper.slideTo(stopIndex + increment); 14050 } else { 14051 swiper.slideTo(stopIndex); 14052 } 14053 } 14054} 14055 14056/***/ }), 14057
vendor: 7,857 bytes, lines 14058-14259
14058/***/ "./node_modules/swiper/core/events/onTouchMove.js": 14059/*!********************************************************!*\ 14060 !*** ./node_modules/swiper/core/events/onTouchMove.js ***! 14061 \********************************************************/ 14062/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14063 14064"use strict"; 14065__webpack_require__.r(__webpack_exports__); 14066/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14067/* harmony export */ "default": function() { return /* binding */ onTouchMove; } 14068/* harmony export */ }); 14069/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 14070/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 14071/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 14072 14073 14074 14075function onTouchMove(event) { 14076 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 14077 var swiper = this; 14078 var data = swiper.touchEventsData; 14079 var params = swiper.params, 14080 touches = swiper.touches, 14081 rtl = swiper.rtlTranslate, 14082 enabled = swiper.enabled; 14083 if (!enabled) return; 14084 var e = event; 14085 if (e.originalEvent) e = e.originalEvent; 14086 if (!data.isTouched) { 14087 if (data.startMoving && data.isScrolling) { 14088 swiper.emit('touchMoveOpposite', e); 14089 } 14090 return; 14091 } 14092 if (data.isTouchEvent && e.type !== 'touchmove') return; 14093 var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]); 14094 var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX; 14095 var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY; 14096 if (e.preventedByNestedSwiper) { 14097 touches.startX = pageX; 14098 touches.startY = pageY; 14099 return; 14100 } 14101 if (!swiper.allowTouchMove) { 14102 if (!(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target).is(data.focusableElements)) { 14103 swiper.allowClick = false; 14104 } 14105 if (data.isTouched) { 14106 Object.assign(touches, { 14107 startX: pageX, 14108 startY: pageY, 14109 currentX: pageX, 14110 currentY: pageY 14111 }); 14112 data.touchStartTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(); 14113 } 14114 return; 14115 } 14116 if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) { 14117 if (swiper.isVertical()) { 14118 // Vertical 14119 if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) { 14120 data.isTouched = false; 14121 data.isMoved = false; 14122 return; 14123 } 14124 } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) { 14125 return; 14126 } 14127 } 14128 if (data.isTouchEvent && document.activeElement) { 14129 if (e.target === document.activeElement && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target).is(data.focusableElements)) { 14130 data.isMoved = true; 14131 swiper.allowClick = false; 14132 return; 14133 } 14134 } 14135 if (data.allowTouchCallbacks) { 14136 swiper.emit('touchMove', e); 14137 } 14138 if (e.targetTouches && e.targetTouches.length > 1) return; 14139 touches.currentX = pageX; 14140 touches.currentY = pageY; 14141 var diffX = touches.currentX - touches.startX; 14142 var diffY = touches.currentY - touches.startY; 14143 if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return; 14144 if (typeof data.isScrolling === 'undefined') { 14145 var touchAngle; 14146 if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) { 14147 data.isScrolling = false; 14148 } else { 14149 // eslint-disable-next-line 14150 if (diffX * diffX + diffY * diffY >= 25) { 14151 touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI; 14152 data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle; 14153 } 14154 } 14155 } 14156 if (data.isScrolling) { 14157 swiper.emit('touchMoveOpposite', e); 14158 } 14159 if (typeof data.startMoving === 'undefined') { 14160 if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { 14161 data.startMoving = true; 14162 } 14163 } 14164 if (data.isScrolling) { 14165 data.isTouched = false; 14166 return; 14167 } 14168 if (!data.startMoving) { 14169 return; 14170 } 14171 swiper.allowClick = false; 14172 if (!params.cssMode && e.cancelable) { 14173 e.preventDefault(); 14174 } 14175 if (params.touchMoveStopPropagation && !params.nested) { 14176 e.stopPropagation(); 14177 } 14178 if (!data.isMoved) { 14179 if (params.loop && !params.cssMode) { 14180 swiper.loopFix(); 14181 } 14182 data.startTranslate = swiper.getTranslate(); 14183 swiper.setTransition(0); 14184 if (swiper.animating) { 14185 swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend'); 14186 } 14187 data.allowMomentumBounce = false; // Grab Cursor 14188 14189 if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { 14190 swiper.setGrabCursor(true); 14191 } 14192 swiper.emit('sliderFirstMove', e); 14193 } 14194 swiper.emit('sliderMove', e); 14195 data.isMoved = true; 14196 var diff = swiper.isHorizontal() ? diffX : diffY; 14197 touches.diff = diff; 14198 diff *= params.touchRatio; 14199 if (rtl) diff = -diff; 14200 swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; 14201 data.currentTranslate = diff + data.startTranslate; 14202 var disableParentSwiper = true; 14203 var resistanceRatio = params.resistanceRatio; 14204 if (params.touchReleaseOnEdges) { 14205 resistanceRatio = 0; 14206 } 14207 if (diff > 0 && data.currentTranslate > swiper.minTranslate()) { 14208 disableParentSwiper = false; 14209 if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio); 14210 } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) { 14211 disableParentSwiper = false; 14212 if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio); 14213 } 14214 if (disableParentSwiper) { 14215 e.preventedByNestedSwiper = true; 14216 } // Directions locks 14217 14218 if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { 14219 data.currentTranslate = data.startTranslate; 14220 } 14221 if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { 14222 data.currentTranslate = data.startTranslate; 14223 } 14224 if (!swiper.allowSlidePrev && !swiper.allowSlideNext) { 14225 data.currentTranslate = data.startTranslate; 14226 } // Threshold 14227 14228 if (params.threshold > 0) { 14229 if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { 14230 if (!data.allowThresholdMove) { 14231 data.allowThresholdMove = true; 14232 touches.startX = touches.currentX; 14233 touches.startY = touches.currentY; 14234 data.currentTranslate = data.startTranslate; 14235 touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; 14236 return; 14237 } 14238 } else { 14239 data.currentTranslate = data.startTranslate; 14240 return; 14241 } 14242 } 14243 if (!params.followFinger || params.cssMode) return; // Update active index in free mode 14244 14245 if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) { 14246 swiper.updateActiveIndex(); 14247 swiper.updateSlidesClasses(); 14248 } 14249 if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) { 14250 swiper.freeMode.onTouchMove(); 14251 } // Update progress 14252 14253 swiper.updateProgress(data.currentTranslate); // Update translate 14254 14255 swiper.setTranslate(data.currentTranslate); 14256} 14257 14258/***/ }), 14259
vendor: 5,823 bytes, lines 14260-14384
14260/***/ "./node_modules/swiper/core/events/onTouchStart.js": 14261/*!*********************************************************!*\ 14262 !*** ./node_modules/swiper/core/events/onTouchStart.js ***! 14263 \*********************************************************/ 14264/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14265 14266"use strict"; 14267__webpack_require__.r(__webpack_exports__); 14268/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14269/* harmony export */ "default": function() { return /* binding */ onTouchStart; } 14270/* harmony export */ }); 14271/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 14272/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 14273/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 14274 14275 14276 // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd 14277 14278function closestElement(selector) { 14279 var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this; 14280 function __closestFrom(el) { 14281 if (!el || el === (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)() || el === (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)()) return null; 14282 if (el.assignedSlot) el = el.assignedSlot; 14283 var found = el.closest(selector); 14284 if (!found && !el.getRootNode) { 14285 return null; 14286 } 14287 return found || __closestFrom(el.getRootNode().host); 14288 } 14289 return __closestFrom(base); 14290} 14291function onTouchStart(event) { 14292 var swiper = this; 14293 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 14294 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 14295 var data = swiper.touchEventsData; 14296 var params = swiper.params, 14297 touches = swiper.touches, 14298 enabled = swiper.enabled; 14299 if (!enabled) return; 14300 if (swiper.animating && params.preventInteractionOnTransition) { 14301 return; 14302 } 14303 if (!swiper.animating && params.cssMode && params.loop) { 14304 swiper.loopFix(); 14305 } 14306 var e = event; 14307 if (e.originalEvent) e = e.originalEvent; 14308 var $targetEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target); 14309 if (params.touchEventsTarget === 'wrapper') { 14310 if (!$targetEl.closest(swiper.wrapperEl).length) return; 14311 } 14312 data.isTouchEvent = e.type === 'touchstart'; 14313 if (!data.isTouchEvent && 'which' in e && e.which === 3) return; 14314 if (!data.isTouchEvent && 'button' in e && e.button > 0) return; 14315 if (data.isTouched && data.isMoved) return; // change target el for shadow root component 14316 14317 var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line 14318 14319 var eventPath = event.composedPath ? event.composedPath() : event.path; 14320 if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) { 14321 $targetEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(eventPath[0]); 14322 } 14323 var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : ".".concat(params.noSwipingClass); 14324 var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element 14325 14326 if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) { 14327 swiper.allowClick = true; 14328 return; 14329 } 14330 if (params.swipeHandler) { 14331 if (!$targetEl.closest(params.swipeHandler)[0]) return; 14332 } 14333 touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; 14334 touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; 14335 var startX = touches.currentX; 14336 var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore 14337 14338 var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection; 14339 var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold; 14340 if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) { 14341 if (edgeSwipeDetection === 'prevent') { 14342 event.preventDefault(); 14343 } else { 14344 return; 14345 } 14346 } 14347 Object.assign(data, { 14348 isTouched: true, 14349 isMoved: false, 14350 allowTouchCallbacks: true, 14351 isScrolling: undefined, 14352 startMoving: undefined 14353 }); 14354 touches.startX = startX; 14355 touches.startY = startY; 14356 data.touchStartTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(); 14357 swiper.allowClick = true; 14358 swiper.updateSize(); 14359 swiper.swipeDirection = undefined; 14360 if (params.threshold > 0) data.allowThresholdMove = false; 14361 if (e.type !== 'touchstart') { 14362 var preventDefault = true; 14363 if ($targetEl.is(data.focusableElements)) { 14364 preventDefault = false; 14365 if ($targetEl[0].nodeName === 'SELECT') { 14366 data.isTouched = false; 14367 } 14368 } 14369 if (document.activeElement && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) { 14370 document.activeElement.blur(); 14371 } 14372 var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; 14373 if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) { 14374 e.preventDefault(); 14375 } 14376 } 14377 if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) { 14378 swiper.freeMode.onTouchStart(); 14379 } 14380 swiper.emit('touchStart', e); 14381} 14382 14383/***/ }), 14384
vendor: 999 bytes, lines 14385-14403
14385/***/ "./node_modules/swiper/core/grab-cursor/index.js": 14386/*!*******************************************************!*\ 14387 !*** ./node_modules/swiper/core/grab-cursor/index.js ***! 14388 \*******************************************************/ 14389/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14390 14391"use strict"; 14392__webpack_require__.r(__webpack_exports__); 14393/* harmony import */ var _setGrabCursor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setGrabCursor.js */ "./node_modules/swiper/core/grab-cursor/setGrabCursor.js"); 14394/* harmony import */ var _unsetGrabCursor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./unsetGrabCursor.js */ "./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js"); 14395 14396 14397/* harmony default export */ __webpack_exports__["default"] = ({ 14398 setGrabCursor: _setGrabCursor_js__WEBPACK_IMPORTED_MODULE_0__["default"], 14399 unsetGrabCursor: _unsetGrabCursor_js__WEBPACK_IMPORTED_MODULE_1__["default"] 14400}); 14401 14402/***/ }), 14403
vendor: 983 bytes, lines 14404-14424
14404/***/ "./node_modules/swiper/core/grab-cursor/setGrabCursor.js": 14405/*!***************************************************************!*\ 14406 !*** ./node_modules/swiper/core/grab-cursor/setGrabCursor.js ***! 14407 \***************************************************************/ 14408/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14409 14410"use strict"; 14411__webpack_require__.r(__webpack_exports__); 14412/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14413/* harmony export */ "default": function() { return /* binding */ setGrabCursor; } 14414/* harmony export */ }); 14415function setGrabCursor(moving) { 14416 var swiper = this; 14417 if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return; 14418 var el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl; 14419 el.style.cursor = 'move'; 14420 el.style.cursor = moving ? 'grabbing' : 'grab'; 14421} 14422 14423/***/ }), 14424
vendor: 896 bytes, lines 14425-14445
14425/***/ "./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js": 14426/*!*****************************************************************!*\ 14427 !*** ./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js ***! 14428 \*****************************************************************/ 14429/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14430 14431"use strict"; 14432__webpack_require__.r(__webpack_exports__); 14433/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14434/* harmony export */ "default": function() { return /* binding */ unsetGrabCursor; } 14435/* harmony export */ }); 14436function unsetGrabCursor() { 14437 var swiper = this; 14438 if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) { 14439 return; 14440 } 14441 swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = ''; 14442} 14443 14444/***/ }), 14445
vendor: 939 bytes, lines 14446-14464
14446/***/ "./node_modules/swiper/core/images/index.js": 14447/*!**************************************************!*\ 14448 !*** ./node_modules/swiper/core/images/index.js ***! 14449 \**************************************************/ 14450/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14451 14452"use strict"; 14453__webpack_require__.r(__webpack_exports__); 14454/* harmony import */ var _loadImage_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loadImage.js */ "./node_modules/swiper/core/images/loadImage.js"); 14455/* harmony import */ var _preloadImages_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./preloadImages.js */ "./node_modules/swiper/core/images/preloadImages.js"); 14456 14457 14458/* harmony default export */ __webpack_exports__["default"] = ({ 14459 loadImage: _loadImage_js__WEBPACK_IMPORTED_MODULE_0__["default"], 14460 preloadImages: _preloadImages_js__WEBPACK_IMPORTED_MODULE_1__["default"] 14461}); 14462 14463/***/ }), 14464
vendor: 1,654 bytes, lines 14465-14511
14465/***/ "./node_modules/swiper/core/images/loadImage.js": 14466/*!******************************************************!*\ 14467 !*** ./node_modules/swiper/core/images/loadImage.js ***! 14468 \******************************************************/ 14469/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14470 14471"use strict"; 14472__webpack_require__.r(__webpack_exports__); 14473/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14474/* harmony export */ "default": function() { return /* binding */ loadImage; } 14475/* harmony export */ }); 14476/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 14477/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 14478 14479 14480function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) { 14481 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 14482 var image; 14483 function onReady() { 14484 if (callback) callback(); 14485 } 14486 var isPicture = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(imageEl).parent('picture')[0]; 14487 if (!isPicture && (!imageEl.complete || !checkForComplete)) { 14488 if (src) { 14489 image = new window.Image(); 14490 image.onload = onReady; 14491 image.onerror = onReady; 14492 if (sizes) { 14493 image.sizes = sizes; 14494 } 14495 if (srcset) { 14496 image.srcset = srcset; 14497 } 14498 if (src) { 14499 image.src = src; 14500 } 14501 } else { 14502 onReady(); 14503 } 14504 } else { 14505 // image already loaded... 14506 onReady(); 14507 } 14508} 14509 14510/***/ }), 14511
vendor: 1,351 bytes, lines 14512-14541
14512/***/ "./node_modules/swiper/core/images/preloadImages.js": 14513/*!**********************************************************!*\ 14514 !*** ./node_modules/swiper/core/images/preloadImages.js ***! 14515 \**********************************************************/ 14516/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14517 14518"use strict"; 14519__webpack_require__.r(__webpack_exports__); 14520/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14521/* harmony export */ "default": function() { return /* binding */ preloadImages; } 14522/* harmony export */ }); 14523function preloadImages() { 14524 var swiper = this; 14525 swiper.imagesToLoad = swiper.$el.find('img'); 14526 function onReady() { 14527 if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return; 14528 if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1; 14529 if (swiper.imagesLoaded === swiper.imagesToLoad.length) { 14530 if (swiper.params.updateOnImagesReady) swiper.update(); 14531 swiper.emit('imagesReady'); 14532 } 14533 } 14534 for (var i = 0; i < swiper.imagesToLoad.length; i += 1) { 14535 var imageEl = swiper.imagesToLoad[i]; 14536 swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady); 14537 } 14538} 14539 14540/***/ }), 14541
vendor: 1,142 bytes, lines 14542-14563
14542/***/ "./node_modules/swiper/core/loop/index.js": 14543/*!************************************************!*\ 14544 !*** ./node_modules/swiper/core/loop/index.js ***! 14545 \************************************************/ 14546/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14547 14548"use strict"; 14549__webpack_require__.r(__webpack_exports__); 14550/* harmony import */ var _loopCreate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./loopCreate.js */ "./node_modules/swiper/core/loop/loopCreate.js"); 14551/* harmony import */ var _loopFix_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./loopFix.js */ "./node_modules/swiper/core/loop/loopFix.js"); 14552/* harmony import */ var _loopDestroy_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./loopDestroy.js */ "./node_modules/swiper/core/loop/loopDestroy.js"); 14553 14554 14555 14556/* harmony default export */ __webpack_exports__["default"] = ({ 14557 loopCreate: _loopCreate_js__WEBPACK_IMPORTED_MODULE_0__["default"], 14558 loopFix: _loopFix_js__WEBPACK_IMPORTED_MODULE_1__["default"], 14559 loopDestroy: _loopDestroy_js__WEBPACK_IMPORTED_MODULE_2__["default"] 14560}); 14561 14562/***/ }), 14563
vendor: 3,258 bytes, lines 14564-14624
14564/***/ "./node_modules/swiper/core/loop/loopCreate.js": 14565/*!*****************************************************!*\ 14566 !*** ./node_modules/swiper/core/loop/loopCreate.js ***! 14567 \*****************************************************/ 14568/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14569 14570"use strict"; 14571__webpack_require__.r(__webpack_exports__); 14572/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14573/* harmony export */ "default": function() { return /* binding */ loopCreate; } 14574/* harmony export */ }); 14575/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 14576/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 14577 14578 14579function loopCreate() { 14580 var swiper = this; 14581 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 14582 var params = swiper.params, 14583 $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides 14584 14585 var $selector = $wrapperEl.children().length > 0 ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])($wrapperEl.children()[0].parentNode) : $wrapperEl; 14586 $selector.children(".".concat(params.slideClass, ".").concat(params.slideDuplicateClass)).remove(); 14587 var slides = $selector.children(".".concat(params.slideClass)); 14588 if (params.loopFillGroupWithBlank) { 14589 var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup; 14590 if (blankSlidesNum !== params.slidesPerGroup) { 14591 for (var i = 0; i < blankSlidesNum; i += 1) { 14592 var blankNode = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(document.createElement('div')).addClass("".concat(params.slideClass, " ").concat(params.slideBlankClass)); 14593 $selector.append(blankNode); 14594 } 14595 slides = $selector.children(".".concat(params.slideClass)); 14596 } 14597 } 14598 if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length; 14599 swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10)); 14600 swiper.loopedSlides += params.loopAdditionalSlides; 14601 if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) { 14602 swiper.loopedSlides = slides.length; 14603 } 14604 var prependSlides = []; 14605 var appendSlides = []; 14606 slides.each(function (el, index) { 14607 var slide = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(el); 14608 slide.attr('data-swiper-slide-index', index); 14609 }); 14610 for (var _i = 0; _i < swiper.loopedSlides; _i += 1) { 14611 var index = _i - Math.floor(_i / slides.length) * slides.length; 14612 appendSlides.push(slides.eq(index)[0]); 14613 prependSlides.unshift(slides.eq(slides.length - index - 1)[0]); 14614 } 14615 for (var _i2 = 0; _i2 < appendSlides.length; _i2 += 1) { 14616 $selector.append((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(appendSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass)); 14617 } 14618 for (var _i3 = prependSlides.length - 1; _i3 >= 0; _i3 -= 1) { 14619 $selector.prepend((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(prependSlides[_i3].cloneNode(true)).addClass(params.slideDuplicateClass)); 14620 } 14621} 14622 14623/***/ }), 14624
vendor: 938 bytes, lines 14625-14646
14625/***/ "./node_modules/swiper/core/loop/loopDestroy.js": 14626/*!******************************************************!*\ 14627 !*** ./node_modules/swiper/core/loop/loopDestroy.js ***! 14628 \******************************************************/ 14629/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14630 14631"use strict"; 14632__webpack_require__.r(__webpack_exports__); 14633/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14634/* harmony export */ "default": function() { return /* binding */ loopDestroy; } 14635/* harmony export */ }); 14636function loopDestroy() { 14637 var swiper = this; 14638 var $wrapperEl = swiper.$wrapperEl, 14639 params = swiper.params, 14640 slides = swiper.slides; 14641 $wrapperEl.children(".".concat(params.slideClass, ".").concat(params.slideDuplicateClass, ",.").concat(params.slideClass, ".").concat(params.slideBlankClass)).remove(); 14642 slides.removeAttr('data-swiper-slide-index'); 14643} 14644 14645/***/ }), 14646
vendor: 1,912 bytes, lines 14647-14696
14647/***/ "./node_modules/swiper/core/loop/loopFix.js": 14648/*!**************************************************!*\ 14649 !*** ./node_modules/swiper/core/loop/loopFix.js ***! 14650 \**************************************************/ 14651/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14652 14653"use strict"; 14654__webpack_require__.r(__webpack_exports__); 14655/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14656/* harmony export */ "default": function() { return /* binding */ loopFix; } 14657/* harmony export */ }); 14658function loopFix() { 14659 var swiper = this; 14660 swiper.emit('beforeLoopFix'); 14661 var activeIndex = swiper.activeIndex, 14662 slides = swiper.slides, 14663 loopedSlides = swiper.loopedSlides, 14664 allowSlidePrev = swiper.allowSlidePrev, 14665 allowSlideNext = swiper.allowSlideNext, 14666 snapGrid = swiper.snapGrid, 14667 rtl = swiper.rtlTranslate; 14668 var newIndex; 14669 swiper.allowSlidePrev = true; 14670 swiper.allowSlideNext = true; 14671 var snapTranslate = -snapGrid[activeIndex]; 14672 var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding 14673 14674 if (activeIndex < loopedSlides) { 14675 newIndex = slides.length - loopedSlides * 3 + activeIndex; 14676 newIndex += loopedSlides; 14677 var slideChanged = swiper.slideTo(newIndex, 0, false, true); 14678 if (slideChanged && diff !== 0) { 14679 swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); 14680 } 14681 } else if (activeIndex >= slides.length - loopedSlides) { 14682 // Fix For Positive Oversliding 14683 newIndex = -slides.length + activeIndex + loopedSlides; 14684 newIndex += loopedSlides; 14685 var _slideChanged = swiper.slideTo(newIndex, 0, false, true); 14686 if (_slideChanged && diff !== 0) { 14687 swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); 14688 } 14689 } 14690 swiper.allowSlidePrev = allowSlidePrev; 14691 swiper.allowSlideNext = allowSlideNext; 14692 swiper.emit('loopFix'); 14693} 14694 14695/***/ }), 14696
vendor: 2,332 bytes, lines 14697-14745
14697/***/ "./node_modules/swiper/core/moduleExtendParams.js": 14698/*!********************************************************!*\ 14699 !*** ./node_modules/swiper/core/moduleExtendParams.js ***! 14700 \********************************************************/ 14701/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14702 14703"use strict"; 14704__webpack_require__.r(__webpack_exports__); 14705/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14706/* harmony export */ "default": function() { return /* binding */ moduleExtendParams; } 14707/* harmony export */ }); 14708/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 14709function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 14710 14711function moduleExtendParams(params, allModulesParams) { 14712 return function extendParams() { 14713 var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 14714 var moduleParamName = Object.keys(obj)[0]; 14715 var moduleParams = obj[moduleParamName]; 14716 if (_typeof(moduleParams) !== 'object' || moduleParams === null) { 14717 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj); 14718 return; 14719 } 14720 if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) { 14721 params[moduleParamName] = { 14722 auto: true 14723 }; 14724 } 14725 if (!(moduleParamName in params && 'enabled' in moduleParams)) { 14726 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj); 14727 return; 14728 } 14729 if (params[moduleParamName] === true) { 14730 params[moduleParamName] = { 14731 enabled: true 14732 }; 14733 } 14734 if (_typeof(params[moduleParamName]) === 'object' && !('enabled' in params[moduleParamName])) { 14735 params[moduleParamName].enabled = true; 14736 } 14737 if (!params[moduleParamName]) params[moduleParamName] = { 14738 enabled: false 14739 }; 14740 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.extend)(allModulesParams, obj); 14741 }; 14742} 14743 14744/***/ }), 14745
vendor: 2,960 bytes, lines 14746-14826
14746/***/ "./node_modules/swiper/core/modules/observer/observer.js": 14747/*!***************************************************************!*\ 14748 !*** ./node_modules/swiper/core/modules/observer/observer.js ***! 14749 \***************************************************************/ 14750/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14751 14752"use strict"; 14753__webpack_require__.r(__webpack_exports__); 14754/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14755/* harmony export */ "default": function() { return /* binding */ Observer; } 14756/* harmony export */ }); 14757/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 14758 14759function Observer(_ref) { 14760 var swiper = _ref.swiper, 14761 extendParams = _ref.extendParams, 14762 on = _ref.on, 14763 emit = _ref.emit; 14764 var observers = []; 14765 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 14766 var attach = function attach(target) { 14767 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 14768 var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver; 14769 var observer = new ObserverFunc(function (mutations) { 14770 // The observerUpdate event should only be triggered 14771 // once despite the number of mutations. Additional 14772 // triggers are redundant and are very costly 14773 if (mutations.length === 1) { 14774 emit('observerUpdate', mutations[0]); 14775 return; 14776 } 14777 var observerUpdate = function observerUpdate() { 14778 emit('observerUpdate', mutations[0]); 14779 }; 14780 if (window.requestAnimationFrame) { 14781 window.requestAnimationFrame(observerUpdate); 14782 } else { 14783 window.setTimeout(observerUpdate, 0); 14784 } 14785 }); 14786 observer.observe(target, { 14787 attributes: typeof options.attributes === 'undefined' ? true : options.attributes, 14788 childList: typeof options.childList === 'undefined' ? true : options.childList, 14789 characterData: typeof options.characterData === 'undefined' ? true : options.characterData 14790 }); 14791 observers.push(observer); 14792 }; 14793 var init = function init() { 14794 if (!swiper.params.observer) return; 14795 if (swiper.params.observeParents) { 14796 var containerParents = swiper.$el.parents(); 14797 for (var i = 0; i < containerParents.length; i += 1) { 14798 attach(containerParents[i]); 14799 } 14800 } // Observe container 14801 14802 attach(swiper.$el[0], { 14803 childList: swiper.params.observeSlideChildren 14804 }); // Observe wrapper 14805 14806 attach(swiper.$wrapperEl[0], { 14807 attributes: false 14808 }); 14809 }; 14810 var destroy = function destroy() { 14811 observers.forEach(function (observer) { 14812 observer.disconnect(); 14813 }); 14814 observers.splice(0, observers.length); 14815 }; 14816 extendParams({ 14817 observer: false, 14818 observeParents: false, 14819 observeSlideChildren: false 14820 }); 14821 on('init', init); 14822 on('destroy', destroy); 14823} 14824 14825/***/ }), 14826
vendor: 3,030 bytes, lines 14827-14904
14827/***/ "./node_modules/swiper/core/modules/resize/resize.js": 14828/*!***********************************************************!*\ 14829 !*** ./node_modules/swiper/core/modules/resize/resize.js ***! 14830 \***********************************************************/ 14831/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14832 14833"use strict"; 14834__webpack_require__.r(__webpack_exports__); 14835/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14836/* harmony export */ "default": function() { return /* binding */ Resize; } 14837/* harmony export */ }); 14838/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 14839 14840function Resize(_ref) { 14841 var swiper = _ref.swiper, 14842 on = _ref.on, 14843 emit = _ref.emit; 14844 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 14845 var observer = null; 14846 var animationFrame = null; 14847 var resizeHandler = function resizeHandler() { 14848 if (!swiper || swiper.destroyed || !swiper.initialized) return; 14849 emit('beforeResize'); 14850 emit('resize'); 14851 }; 14852 var createObserver = function createObserver() { 14853 if (!swiper || swiper.destroyed || !swiper.initialized) return; 14854 observer = new ResizeObserver(function (entries) { 14855 animationFrame = window.requestAnimationFrame(function () { 14856 var width = swiper.width, 14857 height = swiper.height; 14858 var newWidth = width; 14859 var newHeight = height; 14860 entries.forEach(function (_ref2) { 14861 var contentBoxSize = _ref2.contentBoxSize, 14862 contentRect = _ref2.contentRect, 14863 target = _ref2.target; 14864 if (target && target !== swiper.el) return; 14865 newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize; 14866 newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize; 14867 }); 14868 if (newWidth !== width || newHeight !== height) { 14869 resizeHandler(); 14870 } 14871 }); 14872 }); 14873 observer.observe(swiper.el); 14874 }; 14875 var removeObserver = function removeObserver() { 14876 if (animationFrame) { 14877 window.cancelAnimationFrame(animationFrame); 14878 } 14879 if (observer && observer.unobserve && swiper.el) { 14880 observer.unobserve(swiper.el); 14881 observer = null; 14882 } 14883 }; 14884 var orientationChangeHandler = function orientationChangeHandler() { 14885 if (!swiper || swiper.destroyed || !swiper.initialized) return; 14886 emit('orientationchange'); 14887 }; 14888 on('init', function () { 14889 if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') { 14890 createObserver(); 14891 return; 14892 } 14893 window.addEventListener('resize', resizeHandler); 14894 window.addEventListener('orientationchange', orientationChangeHandler); 14895 }); 14896 on('destroy', function () { 14897 removeObserver(); 14898 window.removeEventListener('resize', resizeHandler); 14899 window.removeEventListener('orientationchange', orientationChangeHandler); 14900 }); 14901} 14902 14903/***/ }), 14904
vendor: 2,148 bytes, lines 14905-14938
14905/***/ "./node_modules/swiper/core/slide/index.js": 14906/*!*************************************************!*\ 14907 !*** ./node_modules/swiper/core/slide/index.js ***! 14908 \*************************************************/ 14909/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14910 14911"use strict"; 14912__webpack_require__.r(__webpack_exports__); 14913/* harmony import */ var _slideTo_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./slideTo.js */ "./node_modules/swiper/core/slide/slideTo.js"); 14914/* harmony import */ var _slideToLoop_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./slideToLoop.js */ "./node_modules/swiper/core/slide/slideToLoop.js"); 14915/* harmony import */ var _slideNext_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./slideNext.js */ "./node_modules/swiper/core/slide/slideNext.js"); 14916/* harmony import */ var _slidePrev_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./slidePrev.js */ "./node_modules/swiper/core/slide/slidePrev.js"); 14917/* harmony import */ var _slideReset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./slideReset.js */ "./node_modules/swiper/core/slide/slideReset.js"); 14918/* harmony import */ var _slideToClosest_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./slideToClosest.js */ "./node_modules/swiper/core/slide/slideToClosest.js"); 14919/* harmony import */ var _slideToClickedSlide_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./slideToClickedSlide.js */ "./node_modules/swiper/core/slide/slideToClickedSlide.js"); 14920 14921 14922 14923 14924 14925 14926 14927/* harmony default export */ __webpack_exports__["default"] = ({ 14928 slideTo: _slideTo_js__WEBPACK_IMPORTED_MODULE_0__["default"], 14929 slideToLoop: _slideToLoop_js__WEBPACK_IMPORTED_MODULE_1__["default"], 14930 slideNext: _slideNext_js__WEBPACK_IMPORTED_MODULE_2__["default"], 14931 slidePrev: _slidePrev_js__WEBPACK_IMPORTED_MODULE_3__["default"], 14932 slideReset: _slideReset_js__WEBPACK_IMPORTED_MODULE_4__["default"], 14933 slideToClosest: _slideToClosest_js__WEBPACK_IMPORTED_MODULE_5__["default"], 14934 slideToClickedSlide: _slideToClickedSlide_js__WEBPACK_IMPORTED_MODULE_6__["default"] 14935}); 14936 14937/***/ }), 14938
vendor: 1,726 bytes, lines 14939-14978
14939/***/ "./node_modules/swiper/core/slide/slideNext.js": 14940/*!*****************************************************!*\ 14941 !*** ./node_modules/swiper/core/slide/slideNext.js ***! 14942 \*****************************************************/ 14943/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14944 14945"use strict"; 14946__webpack_require__.r(__webpack_exports__); 14947/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14948/* harmony export */ "default": function() { return /* binding */ slideNext; } 14949/* harmony export */ }); 14950/* eslint no-unused-vars: "off" */ 14951function slideNext() { 14952 var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed; 14953 var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 14954 var internal = arguments.length > 2 ? arguments[2] : undefined; 14955 var swiper = this; 14956 var animating = swiper.animating, 14957 enabled = swiper.enabled, 14958 params = swiper.params; 14959 if (!enabled) return swiper; 14960 var perGroup = params.slidesPerGroup; 14961 if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { 14962 perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1); 14963 } 14964 var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup; 14965 if (params.loop) { 14966 if (animating && params.loopPreventsSlide) return false; 14967 swiper.loopFix(); // eslint-disable-next-line 14968 14969 swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 14970 } 14971 if (params.rewind && swiper.isEnd) { 14972 return swiper.slideTo(0, speed, runCallbacks, internal); 14973 } 14974 return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); 14975} 14976 14977/***/ }), 14978
vendor: 2,881 bytes, lines 14979-15048
14979/***/ "./node_modules/swiper/core/slide/slidePrev.js": 14980/*!*****************************************************!*\ 14981 !*** ./node_modules/swiper/core/slide/slidePrev.js ***! 14982 \*****************************************************/ 14983/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 14984 14985"use strict"; 14986__webpack_require__.r(__webpack_exports__); 14987/* harmony export */ __webpack_require__.d(__webpack_exports__, { 14988/* harmony export */ "default": function() { return /* binding */ slidePrev; } 14989/* harmony export */ }); 14990/* eslint no-unused-vars: "off" */ 14991function slidePrev() { 14992 var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed; 14993 var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 14994 var internal = arguments.length > 2 ? arguments[2] : undefined; 14995 var swiper = this; 14996 var params = swiper.params, 14997 animating = swiper.animating, 14998 snapGrid = swiper.snapGrid, 14999 slidesGrid = swiper.slidesGrid, 15000 rtlTranslate = swiper.rtlTranslate, 15001 enabled = swiper.enabled; 15002 if (!enabled) return swiper; 15003 if (params.loop) { 15004 if (animating && params.loopPreventsSlide) return false; 15005 swiper.loopFix(); // eslint-disable-next-line 15006 15007 swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 15008 } 15009 var translate = rtlTranslate ? swiper.translate : -swiper.translate; 15010 function normalize(val) { 15011 if (val < 0) return -Math.floor(Math.abs(val)); 15012 return Math.floor(val); 15013 } 15014 var normalizedTranslate = normalize(translate); 15015 var normalizedSnapGrid = snapGrid.map(function (val) { 15016 return normalize(val); 15017 }); 15018 var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; 15019 if (typeof prevSnap === 'undefined' && params.cssMode) { 15020 var prevSnapIndex; 15021 snapGrid.forEach(function (snap, snapIndex) { 15022 if (normalizedTranslate >= snap) { 15023 // prevSnap = snap; 15024 prevSnapIndex = snapIndex; 15025 } 15026 }); 15027 if (typeof prevSnapIndex !== 'undefined') { 15028 prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex]; 15029 } 15030 } 15031 var prevIndex = 0; 15032 if (typeof prevSnap !== 'undefined') { 15033 prevIndex = slidesGrid.indexOf(prevSnap); 15034 if (prevIndex < 0) prevIndex = swiper.activeIndex - 1; 15035 if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) { 15036 prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1; 15037 prevIndex = Math.max(prevIndex, 0); 15038 } 15039 } 15040 if (params.rewind && swiper.isBeginning) { 15041 var lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1; 15042 return swiper.slideTo(lastIndex, speed, runCallbacks, internal); 15043 } 15044 return swiper.slideTo(prevIndex, speed, runCallbacks, internal); 15045} 15046 15047/***/ }), 15048
vendor: 996 bytes, lines 15049-15070
15049/***/ "./node_modules/swiper/core/slide/slideReset.js": 15050/*!******************************************************!*\ 15051 !*** ./node_modules/swiper/core/slide/slideReset.js ***! 15052 \******************************************************/ 15053/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15054 15055"use strict"; 15056__webpack_require__.r(__webpack_exports__); 15057/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15058/* harmony export */ "default": function() { return /* binding */ slideReset; } 15059/* harmony export */ }); 15060/* eslint no-unused-vars: "off" */ 15061function slideReset() { 15062 var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed; 15063 var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 15064 var internal = arguments.length > 2 ? arguments[2] : undefined; 15065 var swiper = this; 15066 return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); 15067} 15068 15069/***/ }), 15070
vendor: 7,885 bytes, lines 15071-15242
15071/***/ "./node_modules/swiper/core/slide/slideTo.js": 15072/*!***************************************************!*\ 15073 !*** ./node_modules/swiper/core/slide/slideTo.js ***! 15074 \***************************************************/ 15075/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15076 15077"use strict"; 15078__webpack_require__.r(__webpack_exports__); 15079/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15080/* harmony export */ "default": function() { return /* binding */ slideTo; } 15081/* harmony export */ }); 15082/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 15083function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } 15084function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } 15085function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } 15086function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 15087 15088function slideTo() { 15089 var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; 15090 var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed; 15091 var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; 15092 var internal = arguments.length > 3 ? arguments[3] : undefined; 15093 var initial = arguments.length > 4 ? arguments[4] : undefined; 15094 if (typeof index !== 'number' && typeof index !== 'string') { 15095 throw new Error("The 'index' argument cannot have type other than 'number' or 'string'. [".concat(_typeof(index), "] given.")); 15096 } 15097 if (typeof index === 'string') { 15098 /** 15099 * The `index` argument converted from `string` to `number`. 15100 * @type {number} 15101 */ 15102 var indexAsNumber = parseInt(index, 10); 15103 /** 15104 * Determines whether the `index` argument is a valid `number` 15105 * after being converted from the `string` type. 15106 * @type {boolean} 15107 */ 15108 15109 var isValidNumber = isFinite(indexAsNumber); 15110 if (!isValidNumber) { 15111 throw new Error("The passed-in 'index' (string) couldn't be converted to 'number'. [".concat(index, "] given.")); 15112 } // Knowing that the converted `index` is a valid number, 15113 // we can update the original argument's value. 15114 15115 index = indexAsNumber; 15116 } 15117 var swiper = this; 15118 var slideIndex = index; 15119 if (slideIndex < 0) slideIndex = 0; 15120 var params = swiper.params, 15121 snapGrid = swiper.snapGrid, 15122 slidesGrid = swiper.slidesGrid, 15123 previousIndex = swiper.previousIndex, 15124 activeIndex = swiper.activeIndex, 15125 rtl = swiper.rtlTranslate, 15126 wrapperEl = swiper.wrapperEl, 15127 enabled = swiper.enabled; 15128 if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) { 15129 return false; 15130 } 15131 var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); 15132 var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); 15133 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 15134 var translate = -snapGrid[snapIndex]; // Normalize slideIndex 15135 15136 if (params.normalizeSlideIndex) { 15137 for (var i = 0; i < slidesGrid.length; i += 1) { 15138 var normalizedTranslate = -Math.floor(translate * 100); 15139 var normalizedGrid = Math.floor(slidesGrid[i] * 100); 15140 var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100); 15141 if (typeof slidesGrid[i + 1] !== 'undefined') { 15142 if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) { 15143 slideIndex = i; 15144 } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) { 15145 slideIndex = i + 1; 15146 } 15147 } else if (normalizedTranslate >= normalizedGrid) { 15148 slideIndex = i; 15149 } 15150 } 15151 } // Directions locks 15152 15153 if (swiper.initialized && slideIndex !== activeIndex) { 15154 if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) { 15155 return false; 15156 } 15157 if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { 15158 if ((activeIndex || 0) !== slideIndex) return false; 15159 } 15160 } 15161 if (slideIndex !== (previousIndex || 0) && runCallbacks) { 15162 swiper.emit('beforeSlideChangeStart'); 15163 } // Update progress 15164 15165 swiper.updateProgress(translate); 15166 var direction; 15167 if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index 15168 15169 if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) { 15170 swiper.updateActiveIndex(slideIndex); // Update Height 15171 15172 if (params.autoHeight) { 15173 swiper.updateAutoHeight(); 15174 } 15175 swiper.updateSlidesClasses(); 15176 if (params.effect !== 'slide') { 15177 swiper.setTranslate(translate); 15178 } 15179 if (direction !== 'reset') { 15180 swiper.transitionStart(runCallbacks, direction); 15181 swiper.transitionEnd(runCallbacks, direction); 15182 } 15183 return false; 15184 } 15185 if (params.cssMode) { 15186 var isH = swiper.isHorizontal(); 15187 var t = rtl ? translate : -translate; 15188 if (speed === 0) { 15189 var isVirtual = swiper.virtual && swiper.params.virtual.enabled; 15190 if (isVirtual) { 15191 swiper.wrapperEl.style.scrollSnapType = 'none'; 15192 swiper._immediateVirtual = true; 15193 } 15194 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; 15195 if (isVirtual) { 15196 requestAnimationFrame(function () { 15197 swiper.wrapperEl.style.scrollSnapType = ''; 15198 swiper._swiperImmediateVirtual = false; 15199 }); 15200 } 15201 } else { 15202 if (!swiper.support.smoothScroll) { 15203 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.animateCSSModeScroll)({ 15204 swiper: swiper, 15205 targetPosition: t, 15206 side: isH ? 'left' : 'top' 15207 }); 15208 return true; 15209 } 15210 wrapperEl.scrollTo(_defineProperty(_defineProperty({}, isH ? 'left' : 'top', t), "behavior", 'smooth')); 15211 } 15212 return true; 15213 } 15214 swiper.setTransition(speed); 15215 swiper.setTranslate(translate); 15216 swiper.updateActiveIndex(slideIndex); 15217 swiper.updateSlidesClasses(); 15218 swiper.emit('beforeTransitionStart', speed, internal); 15219 swiper.transitionStart(runCallbacks, direction); 15220 if (speed === 0) { 15221 swiper.transitionEnd(runCallbacks, direction); 15222 } else if (!swiper.animating) { 15223 swiper.animating = true; 15224 if (!swiper.onSlideToWrapperTransitionEnd) { 15225 swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) { 15226 if (!swiper || swiper.destroyed) return; 15227 if (e.target !== this) return; 15228 swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 15229 swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd); 15230 swiper.onSlideToWrapperTransitionEnd = null; 15231 delete swiper.onSlideToWrapperTransitionEnd; 15232 swiper.transitionEnd(runCallbacks, direction); 15233 }; 15234 } 15235 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); 15236 swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd); 15237 } 15238 return true; 15239} 15240 15241/***/ }), 15242
vendor: 2,541 bytes, lines 15243-15293
15243/***/ "./node_modules/swiper/core/slide/slideToClickedSlide.js": 15244/*!***************************************************************!*\ 15245 !*** ./node_modules/swiper/core/slide/slideToClickedSlide.js ***! 15246 \***************************************************************/ 15247/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15248 15249"use strict"; 15250__webpack_require__.r(__webpack_exports__); 15251/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15252/* harmony export */ "default": function() { return /* binding */ slideToClickedSlide; } 15253/* harmony export */ }); 15254/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 15255/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 15256 15257 15258function slideToClickedSlide() { 15259 var swiper = this; 15260 var params = swiper.params, 15261 $wrapperEl = swiper.$wrapperEl; 15262 var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; 15263 var slideToIndex = swiper.clickedIndex; 15264 var realIndex; 15265 if (params.loop) { 15266 if (swiper.animating) return; 15267 realIndex = parseInt((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.clickedSlide).attr('data-swiper-slide-index'), 10); 15268 if (params.centeredSlides) { 15269 if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) { 15270 swiper.loopFix(); 15271 slideToIndex = $wrapperEl.children(".".concat(params.slideClass, "[data-swiper-slide-index=\"").concat(realIndex, "\"]:not(.").concat(params.slideDuplicateClass, ")")).eq(0).index(); 15272 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(function () { 15273 swiper.slideTo(slideToIndex); 15274 }); 15275 } else { 15276 swiper.slideTo(slideToIndex); 15277 } 15278 } else if (slideToIndex > swiper.slides.length - slidesPerView) { 15279 swiper.loopFix(); 15280 slideToIndex = $wrapperEl.children(".".concat(params.slideClass, "[data-swiper-slide-index=\"").concat(realIndex, "\"]:not(.").concat(params.slideDuplicateClass, ")")).eq(0).index(); 15281 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(function () { 15282 swiper.slideTo(slideToIndex); 15283 }); 15284 } else { 15285 swiper.slideTo(slideToIndex); 15286 } 15287 } else { 15288 swiper.slideTo(slideToIndex); 15289 } 15290} 15291 15292/***/ }), 15293
vendor: 2,237 bytes, lines 15294-15339
15294/***/ "./node_modules/swiper/core/slide/slideToClosest.js": 15295/*!**********************************************************!*\ 15296 !*** ./node_modules/swiper/core/slide/slideToClosest.js ***! 15297 \**********************************************************/ 15298/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15299 15300"use strict"; 15301__webpack_require__.r(__webpack_exports__); 15302/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15303/* harmony export */ "default": function() { return /* binding */ slideToClosest; } 15304/* harmony export */ }); 15305/* eslint no-unused-vars: "off" */ 15306function slideToClosest() { 15307 var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed; 15308 var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 15309 var internal = arguments.length > 2 ? arguments[2] : undefined; 15310 var threshold = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.5; 15311 var swiper = this; 15312 var index = swiper.activeIndex; 15313 var skip = Math.min(swiper.params.slidesPerGroupSkip, index); 15314 var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup); 15315 var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 15316 if (translate >= swiper.snapGrid[snapIndex]) { 15317 // The current translate is on or after the current snap index, so the choice 15318 // is between the current index and the one after it. 15319 var currentSnap = swiper.snapGrid[snapIndex]; 15320 var nextSnap = swiper.snapGrid[snapIndex + 1]; 15321 if (translate - currentSnap > (nextSnap - currentSnap) * threshold) { 15322 index += swiper.params.slidesPerGroup; 15323 } 15324 } else { 15325 // The current translate is before the current snap index, so the choice 15326 // is between the current index and the one before it. 15327 var prevSnap = swiper.snapGrid[snapIndex - 1]; 15328 var _currentSnap = swiper.snapGrid[snapIndex]; 15329 if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) { 15330 index -= swiper.params.slidesPerGroup; 15331 } 15332 } 15333 index = Math.max(index, 0); 15334 index = Math.min(index, swiper.slidesGrid.length - 1); 15335 return swiper.slideTo(index, speed, runCallbacks, internal); 15336} 15337 15338/***/ }), 15339
vendor: 1,820 bytes, lines 15340-15385
15340/***/ "./node_modules/swiper/core/slide/slideToLoop.js": 15341/*!*******************************************************!*\ 15342 !*** ./node_modules/swiper/core/slide/slideToLoop.js ***! 15343 \*******************************************************/ 15344/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15345 15346"use strict"; 15347__webpack_require__.r(__webpack_exports__); 15348/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15349/* harmony export */ "default": function() { return /* binding */ slideToLoop; } 15350/* harmony export */ }); 15351function slideToLoop() { 15352 var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; 15353 var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed; 15354 var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; 15355 var internal = arguments.length > 3 ? arguments[3] : undefined; 15356 if (typeof index === 'string') { 15357 /** 15358 * The `index` argument converted from `string` to `number`. 15359 * @type {number} 15360 */ 15361 var indexAsNumber = parseInt(index, 10); 15362 /** 15363 * Determines whether the `index` argument is a valid `number` 15364 * after being converted from the `string` type. 15365 * @type {boolean} 15366 */ 15367 15368 var isValidNumber = isFinite(indexAsNumber); 15369 if (!isValidNumber) { 15370 throw new Error("The passed-in 'index' (string) couldn't be converted to 'number'. [".concat(index, "] given.")); 15371 } // Knowing that the converted `index` is a valid number, 15372 // we can update the original argument's value. 15373 15374 index = indexAsNumber; 15375 } 15376 var swiper = this; 15377 var newIndex = index; 15378 if (swiper.params.loop) { 15379 newIndex += swiper.loopedSlides; 15380 } 15381 return swiper.slideTo(newIndex, speed, runCallbacks, internal); 15382} 15383 15384/***/ }), 15385
vendor: 1,249 bytes, lines 15386-15407
15386/***/ "./node_modules/swiper/core/transition/index.js": 15387/*!******************************************************!*\ 15388 !*** ./node_modules/swiper/core/transition/index.js ***! 15389 \******************************************************/ 15390/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15391 15392"use strict"; 15393__webpack_require__.r(__webpack_exports__); 15394/* harmony import */ var _setTransition_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./setTransition.js */ "./node_modules/swiper/core/transition/setTransition.js"); 15395/* harmony import */ var _transitionStart_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./transitionStart.js */ "./node_modules/swiper/core/transition/transitionStart.js"); 15396/* harmony import */ var _transitionEnd_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./transitionEnd.js */ "./node_modules/swiper/core/transition/transitionEnd.js"); 15397 15398 15399 15400/* harmony default export */ __webpack_exports__["default"] = ({ 15401 setTransition: _setTransition_js__WEBPACK_IMPORTED_MODULE_0__["default"], 15402 transitionStart: _transitionStart_js__WEBPACK_IMPORTED_MODULE_1__["default"], 15403 transitionEnd: _transitionEnd_js__WEBPACK_IMPORTED_MODULE_2__["default"] 15404}); 15405 15406/***/ }), 15407
vendor: 819 bytes, lines 15408-15428
15408/***/ "./node_modules/swiper/core/transition/setTransition.js": 15409/*!**************************************************************!*\ 15410 !*** ./node_modules/swiper/core/transition/setTransition.js ***! 15411 \**************************************************************/ 15412/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15413 15414"use strict"; 15415__webpack_require__.r(__webpack_exports__); 15416/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15417/* harmony export */ "default": function() { return /* binding */ setTransition; } 15418/* harmony export */ }); 15419function setTransition(duration, byController) { 15420 var swiper = this; 15421 if (!swiper.params.cssMode) { 15422 swiper.$wrapperEl.transition(duration); 15423 } 15424 swiper.emit('setTransition', duration, byController); 15425} 15426 15427/***/ }), 15428
vendor: 1,428 bytes, lines 15429-15467
15429/***/ "./node_modules/swiper/core/transition/transitionEmit.js": 15430/*!***************************************************************!*\ 15431 !*** ./node_modules/swiper/core/transition/transitionEmit.js ***! 15432 \***************************************************************/ 15433/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15434 15435"use strict"; 15436__webpack_require__.r(__webpack_exports__); 15437/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15438/* harmony export */ "default": function() { return /* binding */ transitionEmit; } 15439/* harmony export */ }); 15440function transitionEmit(_ref) { 15441 var swiper = _ref.swiper, 15442 runCallbacks = _ref.runCallbacks, 15443 direction = _ref.direction, 15444 step = _ref.step; 15445 var activeIndex = swiper.activeIndex, 15446 previousIndex = swiper.previousIndex; 15447 var dir = direction; 15448 if (!dir) { 15449 if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset'; 15450 } 15451 swiper.emit("transition".concat(step)); 15452 if (runCallbacks && activeIndex !== previousIndex) { 15453 if (dir === 'reset') { 15454 swiper.emit("slideResetTransition".concat(step)); 15455 return; 15456 } 15457 swiper.emit("slideChangeTransition".concat(step)); 15458 if (dir === 'next') { 15459 swiper.emit("slideNextTransition".concat(step)); 15460 } else { 15461 swiper.emit("slidePrevTransition".concat(step)); 15462 } 15463 } 15464} 15465 15466/***/ }), 15467
vendor: 1,288 bytes, lines 15468-15498
15468/***/ "./node_modules/swiper/core/transition/transitionEnd.js": 15469/*!**************************************************************!*\ 15470 !*** ./node_modules/swiper/core/transition/transitionEnd.js ***! 15471 \**************************************************************/ 15472/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15473 15474"use strict"; 15475__webpack_require__.r(__webpack_exports__); 15476/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15477/* harmony export */ "default": function() { return /* binding */ transitionEnd; } 15478/* harmony export */ }); 15479/* harmony import */ var _transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transitionEmit.js */ "./node_modules/swiper/core/transition/transitionEmit.js"); 15480 15481function transitionEnd() { 15482 var runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 15483 var direction = arguments.length > 1 ? arguments[1] : undefined; 15484 var swiper = this; 15485 var params = swiper.params; 15486 swiper.animating = false; 15487 if (params.cssMode) return; 15488 swiper.setTransition(0); 15489 (0,_transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 15490 swiper: swiper, 15491 runCallbacks: runCallbacks, 15492 direction: direction, 15493 step: 'End' 15494 }); 15495} 15496 15497/***/ }), 15498
vendor: 1,309 bytes, lines 15499-15530
15499/***/ "./node_modules/swiper/core/transition/transitionStart.js": 15500/*!****************************************************************!*\ 15501 !*** ./node_modules/swiper/core/transition/transitionStart.js ***! 15502 \****************************************************************/ 15503/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15504 15505"use strict"; 15506__webpack_require__.r(__webpack_exports__); 15507/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15508/* harmony export */ "default": function() { return /* binding */ transitionStart; } 15509/* harmony export */ }); 15510/* harmony import */ var _transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./transitionEmit.js */ "./node_modules/swiper/core/transition/transitionEmit.js"); 15511 15512function transitionStart() { 15513 var runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 15514 var direction = arguments.length > 1 ? arguments[1] : undefined; 15515 var swiper = this; 15516 var params = swiper.params; 15517 if (params.cssMode) return; 15518 if (params.autoHeight) { 15519 swiper.updateAutoHeight(); 15520 } 15521 (0,_transitionEmit_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 15522 swiper: swiper, 15523 runCallbacks: runCallbacks, 15524 direction: direction, 15525 step: 'Start' 15526 }); 15527} 15528 15529/***/ }), 15530
vendor: 1,392 bytes, lines 15531-15563
15531/***/ "./node_modules/swiper/core/translate/getTranslate.js": 15532/*!************************************************************!*\ 15533 !*** ./node_modules/swiper/core/translate/getTranslate.js ***! 15534 \************************************************************/ 15535/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15536 15537"use strict"; 15538__webpack_require__.r(__webpack_exports__); 15539/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15540/* harmony export */ "default": function() { return /* binding */ getSwiperTranslate; } 15541/* harmony export */ }); 15542/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 15543 15544function getSwiperTranslate() { 15545 var axis = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.isHorizontal() ? 'x' : 'y'; 15546 var swiper = this; 15547 var params = swiper.params, 15548 rtl = swiper.rtlTranslate, 15549 translate = swiper.translate, 15550 $wrapperEl = swiper.$wrapperEl; 15551 if (params.virtualTranslate) { 15552 return rtl ? -translate : translate; 15553 } 15554 if (params.cssMode) { 15555 return translate; 15556 } 15557 var currentTranslate = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.getTranslate)($wrapperEl[0], axis); 15558 if (rtl) currentTranslate = -currentTranslate; 15559 return currentTranslate || 0; 15560} 15561 15562/***/ }), 15563
vendor: 1,712 bytes, lines 15564-15591
15564/***/ "./node_modules/swiper/core/translate/index.js": 15565/*!*****************************************************!*\ 15566 !*** ./node_modules/swiper/core/translate/index.js ***! 15567 \*****************************************************/ 15568/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15569 15570"use strict"; 15571__webpack_require__.r(__webpack_exports__); 15572/* harmony import */ var _getTranslate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getTranslate.js */ "./node_modules/swiper/core/translate/getTranslate.js"); 15573/* harmony import */ var _setTranslate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./setTranslate.js */ "./node_modules/swiper/core/translate/setTranslate.js"); 15574/* harmony import */ var _minTranslate_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./minTranslate.js */ "./node_modules/swiper/core/translate/minTranslate.js"); 15575/* harmony import */ var _maxTranslate_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./maxTranslate.js */ "./node_modules/swiper/core/translate/maxTranslate.js"); 15576/* harmony import */ var _translateTo_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./translateTo.js */ "./node_modules/swiper/core/translate/translateTo.js"); 15577 15578 15579 15580 15581 15582/* harmony default export */ __webpack_exports__["default"] = ({ 15583 getTranslate: _getTranslate_js__WEBPACK_IMPORTED_MODULE_0__["default"], 15584 setTranslate: _setTranslate_js__WEBPACK_IMPORTED_MODULE_1__["default"], 15585 minTranslate: _minTranslate_js__WEBPACK_IMPORTED_MODULE_2__["default"], 15586 maxTranslate: _maxTranslate_js__WEBPACK_IMPORTED_MODULE_3__["default"], 15587 translateTo: _translateTo_js__WEBPACK_IMPORTED_MODULE_4__["default"] 15588}); 15589 15590/***/ }), 15591
vendor: 681 bytes, lines 15592-15608
15592/***/ "./node_modules/swiper/core/translate/maxTranslate.js": 15593/*!************************************************************!*\ 15594 !*** ./node_modules/swiper/core/translate/maxTranslate.js ***! 15595 \************************************************************/ 15596/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15597 15598"use strict"; 15599__webpack_require__.r(__webpack_exports__); 15600/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15601/* harmony export */ "default": function() { return /* binding */ maxTranslate; } 15602/* harmony export */ }); 15603function maxTranslate() { 15604 return -this.snapGrid[this.snapGrid.length - 1]; 15605} 15606 15607/***/ }), 15608
vendor: 658 bytes, lines 15609-15625
15609/***/ "./node_modules/swiper/core/translate/minTranslate.js": 15610/*!************************************************************!*\ 15611 !*** ./node_modules/swiper/core/translate/minTranslate.js ***! 15612 \************************************************************/ 15613/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15614 15615"use strict"; 15616__webpack_require__.r(__webpack_exports__); 15617/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15618/* harmony export */ "default": function() { return /* binding */ minTranslate; } 15619/* harmony export */ }); 15620function minTranslate() { 15621 return -this.snapGrid[0]; 15622} 15623 15624/***/ }), 15625
vendor: 1,828 bytes, lines 15626-15678
15626/***/ "./node_modules/swiper/core/translate/setTranslate.js": 15627/*!************************************************************!*\ 15628 !*** ./node_modules/swiper/core/translate/setTranslate.js ***! 15629 \************************************************************/ 15630/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15631 15632"use strict"; 15633__webpack_require__.r(__webpack_exports__); 15634/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15635/* harmony export */ "default": function() { return /* binding */ setTranslate; } 15636/* harmony export */ }); 15637function setTranslate(translate, byController) { 15638 var swiper = this; 15639 var rtl = swiper.rtlTranslate, 15640 params = swiper.params, 15641 $wrapperEl = swiper.$wrapperEl, 15642 wrapperEl = swiper.wrapperEl, 15643 progress = swiper.progress; 15644 var x = 0; 15645 var y = 0; 15646 var z = 0; 15647 if (swiper.isHorizontal()) { 15648 x = rtl ? -translate : translate; 15649 } else { 15650 y = translate; 15651 } 15652 if (params.roundLengths) { 15653 x = Math.floor(x); 15654 y = Math.floor(y); 15655 } 15656 if (params.cssMode) { 15657 wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y; 15658 } else if (!params.virtualTranslate) { 15659 $wrapperEl.transform("translate3d(".concat(x, "px, ").concat(y, "px, ").concat(z, "px)")); 15660 } 15661 swiper.previousTranslate = swiper.translate; 15662 swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress 15663 15664 var newProgress; 15665 var translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 15666 if (translatesDiff === 0) { 15667 newProgress = 0; 15668 } else { 15669 newProgress = (translate - swiper.minTranslate()) / translatesDiff; 15670 } 15671 if (newProgress !== progress) { 15672 swiper.updateProgress(translate); 15673 } 15674 swiper.emit('setTranslate', swiper.translate, byController); 15675} 15676 15677/***/ }), 15678
vendor: 4,682 bytes, lines 15679-15768
15679/***/ "./node_modules/swiper/core/translate/translateTo.js": 15680/*!***********************************************************!*\ 15681 !*** ./node_modules/swiper/core/translate/translateTo.js ***! 15682 \***********************************************************/ 15683/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15684 15685"use strict"; 15686__webpack_require__.r(__webpack_exports__); 15687/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15688/* harmony export */ "default": function() { return /* binding */ translateTo; } 15689/* harmony export */ }); 15690/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 15691function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 15692function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } 15693function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } 15694function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } 15695 15696function translateTo() { 15697 var translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; 15698 var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed; 15699 var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true; 15700 var translateBounds = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; 15701 var internal = arguments.length > 4 ? arguments[4] : undefined; 15702 var swiper = this; 15703 var params = swiper.params, 15704 wrapperEl = swiper.wrapperEl; 15705 if (swiper.animating && params.preventInteractionOnTransition) { 15706 return false; 15707 } 15708 var minTranslate = swiper.minTranslate(); 15709 var maxTranslate = swiper.maxTranslate(); 15710 var newTranslate; 15711 if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress 15712 15713 swiper.updateProgress(newTranslate); 15714 if (params.cssMode) { 15715 var isH = swiper.isHorizontal(); 15716 if (speed === 0) { 15717 wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; 15718 } else { 15719 if (!swiper.support.smoothScroll) { 15720 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.animateCSSModeScroll)({ 15721 swiper: swiper, 15722 targetPosition: -newTranslate, 15723 side: isH ? 'left' : 'top' 15724 }); 15725 return true; 15726 } 15727 wrapperEl.scrollTo(_defineProperty(_defineProperty({}, isH ? 'left' : 'top', -newTranslate), "behavior", 'smooth')); 15728 } 15729 return true; 15730 } 15731 if (speed === 0) { 15732 swiper.setTransition(0); 15733 swiper.setTranslate(newTranslate); 15734 if (runCallbacks) { 15735 swiper.emit('beforeTransitionStart', speed, internal); 15736 swiper.emit('transitionEnd'); 15737 } 15738 } else { 15739 swiper.setTransition(speed); 15740 swiper.setTranslate(newTranslate); 15741 if (runCallbacks) { 15742 swiper.emit('beforeTransitionStart', speed, internal); 15743 swiper.emit('transitionStart'); 15744 } 15745 if (!swiper.animating) { 15746 swiper.animating = true; 15747 if (!swiper.onTranslateToWrapperTransitionEnd) { 15748 swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) { 15749 if (!swiper || swiper.destroyed) return; 15750 if (e.target !== this) return; 15751 swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 15752 swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd); 15753 swiper.onTranslateToWrapperTransitionEnd = null; 15754 delete swiper.onTranslateToWrapperTransitionEnd; 15755 if (runCallbacks) { 15756 swiper.emit('transitionEnd'); 15757 } 15758 }; 15759 } 15760 swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); 15761 swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd); 15762 } 15763 } 15764 return true; 15765} 15766 15767/***/ }), 15768
vendor: 2,858 bytes, lines 15769-15808
15769/***/ "./node_modules/swiper/core/update/index.js": 15770/*!**************************************************!*\ 15771 !*** ./node_modules/swiper/core/update/index.js ***! 15772 \**************************************************/ 15773/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15774 15775"use strict"; 15776__webpack_require__.r(__webpack_exports__); 15777/* harmony import */ var _updateSize_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./updateSize.js */ "./node_modules/swiper/core/update/updateSize.js"); 15778/* harmony import */ var _updateSlides_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./updateSlides.js */ "./node_modules/swiper/core/update/updateSlides.js"); 15779/* harmony import */ var _updateAutoHeight_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./updateAutoHeight.js */ "./node_modules/swiper/core/update/updateAutoHeight.js"); 15780/* harmony import */ var _updateSlidesOffset_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./updateSlidesOffset.js */ "./node_modules/swiper/core/update/updateSlidesOffset.js"); 15781/* harmony import */ var _updateSlidesProgress_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./updateSlidesProgress.js */ "./node_modules/swiper/core/update/updateSlidesProgress.js"); 15782/* harmony import */ var _updateProgress_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./updateProgress.js */ "./node_modules/swiper/core/update/updateProgress.js"); 15783/* harmony import */ var _updateSlidesClasses_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./updateSlidesClasses.js */ "./node_modules/swiper/core/update/updateSlidesClasses.js"); 15784/* harmony import */ var _updateActiveIndex_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./updateActiveIndex.js */ "./node_modules/swiper/core/update/updateActiveIndex.js"); 15785/* harmony import */ var _updateClickedSlide_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./updateClickedSlide.js */ "./node_modules/swiper/core/update/updateClickedSlide.js"); 15786 15787 15788 15789 15790 15791 15792 15793 15794 15795/* harmony default export */ __webpack_exports__["default"] = ({ 15796 updateSize: _updateSize_js__WEBPACK_IMPORTED_MODULE_0__["default"], 15797 updateSlides: _updateSlides_js__WEBPACK_IMPORTED_MODULE_1__["default"], 15798 updateAutoHeight: _updateAutoHeight_js__WEBPACK_IMPORTED_MODULE_2__["default"], 15799 updateSlidesOffset: _updateSlidesOffset_js__WEBPACK_IMPORTED_MODULE_3__["default"], 15800 updateSlidesProgress: _updateSlidesProgress_js__WEBPACK_IMPORTED_MODULE_4__["default"], 15801 updateProgress: _updateProgress_js__WEBPACK_IMPORTED_MODULE_5__["default"], 15802 updateSlidesClasses: _updateSlidesClasses_js__WEBPACK_IMPORTED_MODULE_6__["default"], 15803 updateActiveIndex: _updateActiveIndex_js__WEBPACK_IMPORTED_MODULE_7__["default"], 15804 updateClickedSlide: _updateClickedSlide_js__WEBPACK_IMPORTED_MODULE_8__["default"] 15805}); 15806 15807/***/ }), 15808
vendor: 2,717 bytes, lines 15809-15881
15809/***/ "./node_modules/swiper/core/update/updateActiveIndex.js": 15810/*!**************************************************************!*\ 15811 !*** ./node_modules/swiper/core/update/updateActiveIndex.js ***! 15812 \**************************************************************/ 15813/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15814 15815"use strict"; 15816__webpack_require__.r(__webpack_exports__); 15817/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15818/* harmony export */ "default": function() { return /* binding */ updateActiveIndex; } 15819/* harmony export */ }); 15820function updateActiveIndex(newActiveIndex) { 15821 var swiper = this; 15822 var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; 15823 var slidesGrid = swiper.slidesGrid, 15824 snapGrid = swiper.snapGrid, 15825 params = swiper.params, 15826 previousIndex = swiper.activeIndex, 15827 previousRealIndex = swiper.realIndex, 15828 previousSnapIndex = swiper.snapIndex; 15829 var activeIndex = newActiveIndex; 15830 var snapIndex; 15831 if (typeof activeIndex === 'undefined') { 15832 for (var i = 0; i < slidesGrid.length; i += 1) { 15833 if (typeof slidesGrid[i + 1] !== 'undefined') { 15834 if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) { 15835 activeIndex = i; 15836 } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { 15837 activeIndex = i + 1; 15838 } 15839 } else if (translate >= slidesGrid[i]) { 15840 activeIndex = i; 15841 } 15842 } // Normalize slideIndex 15843 15844 if (params.normalizeSlideIndex) { 15845 if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0; 15846 } 15847 } 15848 if (snapGrid.indexOf(translate) >= 0) { 15849 snapIndex = snapGrid.indexOf(translate); 15850 } else { 15851 var skip = Math.min(params.slidesPerGroupSkip, activeIndex); 15852 snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup); 15853 } 15854 if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1; 15855 if (activeIndex === previousIndex) { 15856 if (snapIndex !== previousSnapIndex) { 15857 swiper.snapIndex = snapIndex; 15858 swiper.emit('snapIndexChange'); 15859 } 15860 return; 15861 } // Get real index 15862 15863 var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10); 15864 Object.assign(swiper, { 15865 snapIndex: snapIndex, 15866 realIndex: realIndex, 15867 previousIndex: previousIndex, 15868 activeIndex: activeIndex 15869 }); 15870 swiper.emit('activeIndexChange'); 15871 swiper.emit('snapIndexChange'); 15872 if (previousRealIndex !== realIndex) { 15873 swiper.emit('realIndexChange'); 15874 } 15875 if (swiper.initialized || swiper.params.runCallbacksOnInit) { 15876 swiper.emit('slideChange'); 15877 } 15878} 15879 15880/***/ }), 15881
vendor: 2,405 bytes, lines 15882-15942
15882/***/ "./node_modules/swiper/core/update/updateAutoHeight.js": 15883/*!*************************************************************!*\ 15884 !*** ./node_modules/swiper/core/update/updateAutoHeight.js ***! 15885 \*************************************************************/ 15886/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15887 15888"use strict"; 15889__webpack_require__.r(__webpack_exports__); 15890/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15891/* harmony export */ "default": function() { return /* binding */ updateAutoHeight; } 15892/* harmony export */ }); 15893/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 15894 15895function updateAutoHeight(speed) { 15896 var swiper = this; 15897 var activeSlides = []; 15898 var isVirtual = swiper.virtual && swiper.params.virtual.enabled; 15899 var newHeight = 0; 15900 var i; 15901 if (typeof speed === 'number') { 15902 swiper.setTransition(speed); 15903 } else if (speed === true) { 15904 swiper.setTransition(swiper.params.speed); 15905 } 15906 var getSlideByIndex = function getSlideByIndex(index) { 15907 if (isVirtual) { 15908 return swiper.slides.filter(function (el) { 15909 return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index; 15910 })[0]; 15911 } 15912 return swiper.slides.eq(index)[0]; 15913 }; // Find slides currently in view 15914 15915 if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { 15916 if (swiper.params.centeredSlides) { 15917 (swiper.visibleSlides || (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])([])).each(function (slide) { 15918 activeSlides.push(slide); 15919 }); 15920 } else { 15921 for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { 15922 var index = swiper.activeIndex + i; 15923 if (index > swiper.slides.length && !isVirtual) break; 15924 activeSlides.push(getSlideByIndex(index)); 15925 } 15926 } 15927 } else { 15928 activeSlides.push(getSlideByIndex(swiper.activeIndex)); 15929 } // Find new height from highest slide in view 15930 15931 for (i = 0; i < activeSlides.length; i += 1) { 15932 if (typeof activeSlides[i] !== 'undefined') { 15933 var height = activeSlides[i].offsetHeight; 15934 newHeight = height > newHeight ? height : newHeight; 15935 } 15936 } // Update Height 15937 15938 if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', "".concat(newHeight, "px")); 15939} 15940 15941/***/ }), 15942
vendor: 1,802 bytes, lines 15943-15989
15943/***/ "./node_modules/swiper/core/update/updateClickedSlide.js": 15944/*!***************************************************************!*\ 15945 !*** ./node_modules/swiper/core/update/updateClickedSlide.js ***! 15946 \***************************************************************/ 15947/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15948 15949"use strict"; 15950__webpack_require__.r(__webpack_exports__); 15951/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15952/* harmony export */ "default": function() { return /* binding */ updateClickedSlide; } 15953/* harmony export */ }); 15954/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 15955 15956function updateClickedSlide(e) { 15957 var swiper = this; 15958 var params = swiper.params; 15959 var slide = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(e).closest(".".concat(params.slideClass))[0]; 15960 var slideFound = false; 15961 var slideIndex; 15962 if (slide) { 15963 for (var i = 0; i < swiper.slides.length; i += 1) { 15964 if (swiper.slides[i] === slide) { 15965 slideFound = true; 15966 slideIndex = i; 15967 break; 15968 } 15969 } 15970 } 15971 if (slide && slideFound) { 15972 swiper.clickedSlide = slide; 15973 if (swiper.virtual && swiper.params.virtual.enabled) { 15974 swiper.clickedIndex = parseInt((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(slide).attr('data-swiper-slide-index'), 10); 15975 } else { 15976 swiper.clickedIndex = slideIndex; 15977 } 15978 } else { 15979 swiper.clickedSlide = undefined; 15980 swiper.clickedIndex = undefined; 15981 return; 15982 } 15983 if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { 15984 swiper.slideToClickedSlide(); 15985 } 15986} 15987 15988/***/ }), 15989
vendor: 1,857 bytes, lines 15990-16043
15990/***/ "./node_modules/swiper/core/update/updateProgress.js": 15991/*!***********************************************************!*\ 15992 !*** ./node_modules/swiper/core/update/updateProgress.js ***! 15993 \***********************************************************/ 15994/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 15995 15996"use strict"; 15997__webpack_require__.r(__webpack_exports__); 15998/* harmony export */ __webpack_require__.d(__webpack_exports__, { 15999/* harmony export */ "default": function() { return /* binding */ updateProgress; } 16000/* harmony export */ }); 16001function updateProgress(translate) { 16002 var swiper = this; 16003 if (typeof translate === 'undefined') { 16004 var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line 16005 16006 translate = swiper && swiper.translate && swiper.translate * multiplier || 0; 16007 } 16008 var params = swiper.params; 16009 var translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); 16010 var progress = swiper.progress, 16011 isBeginning = swiper.isBeginning, 16012 isEnd = swiper.isEnd; 16013 var wasBeginning = isBeginning; 16014 var wasEnd = isEnd; 16015 if (translatesDiff === 0) { 16016 progress = 0; 16017 isBeginning = true; 16018 isEnd = true; 16019 } else { 16020 progress = (translate - swiper.minTranslate()) / translatesDiff; 16021 isBeginning = progress <= 0; 16022 isEnd = progress >= 1; 16023 } 16024 Object.assign(swiper, { 16025 progress: progress, 16026 isBeginning: isBeginning, 16027 isEnd: isEnd 16028 }); 16029 if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate); 16030 if (isBeginning && !wasBeginning) { 16031 swiper.emit('reachBeginning toEdge'); 16032 } 16033 if (isEnd && !wasEnd) { 16034 swiper.emit('reachEnd toEdge'); 16035 } 16036 if (wasBeginning && !isBeginning || wasEnd && !isEnd) { 16037 swiper.emit('fromEdge'); 16038 } 16039 swiper.emit('progress', progress); 16040} 16041 16042/***/ }), 16043
vendor: 1,550 bytes, lines 16044-16086
16044/***/ "./node_modules/swiper/core/update/updateSize.js": 16045/*!*******************************************************!*\ 16046 !*** ./node_modules/swiper/core/update/updateSize.js ***! 16047 \*******************************************************/ 16048/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 16049 16050"use strict"; 16051__webpack_require__.r(__webpack_exports__); 16052/* harmony export */ __webpack_require__.d(__webpack_exports__, { 16053/* harmony export */ "default": function() { return /* binding */ updateSize; } 16054/* harmony export */ }); 16055function updateSize() { 16056 var swiper = this; 16057 var width; 16058 var height; 16059 var $el = swiper.$el; 16060 if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) { 16061 width = swiper.params.width; 16062 } else { 16063 width = $el[0].clientWidth; 16064 } 16065 if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) { 16066 height = swiper.params.height; 16067 } else { 16068 height = $el[0].clientHeight; 16069 } 16070 if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) { 16071 return; 16072 } // Subtract paddings 16073 16074 width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10); 16075 height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10); 16076 if (Number.isNaN(width)) width = 0; 16077 if (Number.isNaN(height)) height = 0; 16078 Object.assign(swiper, { 16079 width: width, 16080 height: height, 16081 size: swiper.isHorizontal() ? width : height 16082 }); 16083} 16084 16085/***/ }), 16086
vendor: 12,535 bytes, lines 16087-16368
16087/***/ "./node_modules/swiper/core/update/updateSlides.js": 16088/*!*********************************************************!*\ 16089 !*** ./node_modules/swiper/core/update/updateSlides.js ***! 16090 \*********************************************************/ 16091/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 16092 16093"use strict"; 16094__webpack_require__.r(__webpack_exports__); 16095/* harmony export */ __webpack_require__.d(__webpack_exports__, { 16096/* harmony export */ "default": function() { return /* binding */ updateSlides; } 16097/* harmony export */ }); 16098/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 16099function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 16100function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } 16101function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } 16102function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } 16103 16104function updateSlides() { 16105 var swiper = this; 16106 function getDirectionLabel(property) { 16107 if (swiper.isHorizontal()) { 16108 return property; 16109 } // prettier-ignore 16110 16111 return { 16112 'width': 'height', 16113 'margin-top': 'margin-left', 16114 'margin-bottom ': 'margin-right', 16115 'margin-left': 'margin-top', 16116 'margin-right': 'margin-bottom', 16117 'padding-left': 'padding-top', 16118 'padding-right': 'padding-bottom', 16119 'marginRight': 'marginBottom' 16120 }[property]; 16121 } 16122 function getDirectionPropertyValue(node, label) { 16123 return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0); 16124 } 16125 var params = swiper.params; 16126 var $wrapperEl = swiper.$wrapperEl, 16127 swiperSize = swiper.size, 16128 rtl = swiper.rtlTranslate, 16129 wrongRTL = swiper.wrongRTL; 16130 var isVirtual = swiper.virtual && params.virtual.enabled; 16131 var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; 16132 var slides = $wrapperEl.children(".".concat(swiper.params.slideClass)); 16133 var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; 16134 var snapGrid = []; 16135 var slidesGrid = []; 16136 var slidesSizesGrid = []; 16137 var offsetBefore = params.slidesOffsetBefore; 16138 if (typeof offsetBefore === 'function') { 16139 offsetBefore = params.slidesOffsetBefore.call(swiper); 16140 } 16141 var offsetAfter = params.slidesOffsetAfter; 16142 if (typeof offsetAfter === 'function') { 16143 offsetAfter = params.slidesOffsetAfter.call(swiper); 16144 } 16145 var previousSnapGridLength = swiper.snapGrid.length; 16146 var previousSlidesGridLength = swiper.slidesGrid.length; 16147 var spaceBetween = params.spaceBetween; 16148 var slidePosition = -offsetBefore; 16149 var prevSlideSize = 0; 16150 var index = 0; 16151 if (typeof swiperSize === 'undefined') { 16152 return; 16153 } 16154 if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { 16155 spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize; 16156 } 16157 swiper.virtualSize = -spaceBetween; // reset margins 16158 16159 if (rtl) slides.css({ 16160 marginLeft: '', 16161 marginBottom: '', 16162 marginTop: '' 16163 });else slides.css({ 16164 marginRight: '', 16165 marginBottom: '', 16166 marginTop: '' 16167 }); // reset cssMode offsets 16168 16169 if (params.centeredSlides && params.cssMode) { 16170 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-before', ''); 16171 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-after', ''); 16172 } 16173 var gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid; 16174 if (gridEnabled) { 16175 swiper.grid.initSlides(slidesLength); 16176 } // Calc slides 16177 16178 var slideSize; 16179 var shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(function (key) { 16180 return typeof params.breakpoints[key].slidesPerView !== 'undefined'; 16181 }).length > 0; 16182 for (var i = 0; i < slidesLength; i += 1) { 16183 slideSize = 0; 16184 var slide = slides.eq(i); 16185 if (gridEnabled) { 16186 swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel); 16187 } 16188 if (slide.css('display') === 'none') continue; // eslint-disable-line 16189 16190 if (params.slidesPerView === 'auto') { 16191 if (shouldResetSlideSize) { 16192 slides[i].style[getDirectionLabel('width')] = ""; 16193 } 16194 var slideStyles = getComputedStyle(slide[0]); 16195 var currentTransform = slide[0].style.transform; 16196 var currentWebKitTransform = slide[0].style.webkitTransform; 16197 if (currentTransform) { 16198 slide[0].style.transform = 'none'; 16199 } 16200 if (currentWebKitTransform) { 16201 slide[0].style.webkitTransform = 'none'; 16202 } 16203 if (params.roundLengths) { 16204 slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true); 16205 } else { 16206 // eslint-disable-next-line 16207 var width = getDirectionPropertyValue(slideStyles, 'width'); 16208 var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left'); 16209 var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right'); 16210 var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left'); 16211 var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right'); 16212 var boxSizing = slideStyles.getPropertyValue('box-sizing'); 16213 if (boxSizing && boxSizing === 'border-box') { 16214 slideSize = width + marginLeft + marginRight; 16215 } else { 16216 var _slide$ = slide[0], 16217 clientWidth = _slide$.clientWidth, 16218 offsetWidth = _slide$.offsetWidth; 16219 slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth); 16220 } 16221 } 16222 if (currentTransform) { 16223 slide[0].style.transform = currentTransform; 16224 } 16225 if (currentWebKitTransform) { 16226 slide[0].style.webkitTransform = currentWebKitTransform; 16227 } 16228 if (params.roundLengths) slideSize = Math.floor(slideSize); 16229 } else { 16230 slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView; 16231 if (params.roundLengths) slideSize = Math.floor(slideSize); 16232 if (slides[i]) { 16233 slides[i].style[getDirectionLabel('width')] = "".concat(slideSize, "px"); 16234 } 16235 } 16236 if (slides[i]) { 16237 slides[i].swiperSlideSize = slideSize; 16238 } 16239 slidesSizesGrid.push(slideSize); 16240 if (params.centeredSlides) { 16241 slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween; 16242 if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 16243 if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween; 16244 if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0; 16245 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 16246 if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition); 16247 slidesGrid.push(slidePosition); 16248 } else { 16249 if (params.roundLengths) slidePosition = Math.floor(slidePosition); 16250 if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition); 16251 slidesGrid.push(slidePosition); 16252 slidePosition = slidePosition + slideSize + spaceBetween; 16253 } 16254 swiper.virtualSize += slideSize + spaceBetween; 16255 prevSlideSize = slideSize; 16256 index += 1; 16257 } 16258 swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; 16259 if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { 16260 $wrapperEl.css({ 16261 width: "".concat(swiper.virtualSize + params.spaceBetween, "px") 16262 }); 16263 } 16264 if (params.setWrapperSize) { 16265 $wrapperEl.css(_defineProperty({}, getDirectionLabel('width'), "".concat(swiper.virtualSize + params.spaceBetween, "px"))); 16266 } 16267 if (gridEnabled) { 16268 swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel); 16269 } // Remove last grid elements depending on width 16270 16271 if (!params.centeredSlides) { 16272 var newSlidesGrid = []; 16273 for (var _i = 0; _i < snapGrid.length; _i += 1) { 16274 var slidesGridItem = snapGrid[_i]; 16275 if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem); 16276 if (snapGrid[_i] <= swiper.virtualSize - swiperSize) { 16277 newSlidesGrid.push(slidesGridItem); 16278 } 16279 } 16280 snapGrid = newSlidesGrid; 16281 if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { 16282 snapGrid.push(swiper.virtualSize - swiperSize); 16283 } 16284 } 16285 if (snapGrid.length === 0) snapGrid = [0]; 16286 if (params.spaceBetween !== 0) { 16287 var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight'); 16288 slides.filter(function (_, slideIndex) { 16289 if (!params.cssMode) return true; 16290 if (slideIndex === slides.length - 1) { 16291 return false; 16292 } 16293 return true; 16294 }).css(_defineProperty({}, key, "".concat(spaceBetween, "px"))); 16295 } 16296 if (params.centeredSlides && params.centeredSlidesBounds) { 16297 var allSlidesSize = 0; 16298 slidesSizesGrid.forEach(function (slideSizeValue) { 16299 allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0); 16300 }); 16301 allSlidesSize -= params.spaceBetween; 16302 var maxSnap = allSlidesSize - swiperSize; 16303 snapGrid = snapGrid.map(function (snap) { 16304 if (snap < 0) return -offsetBefore; 16305 if (snap > maxSnap) return maxSnap + offsetAfter; 16306 return snap; 16307 }); 16308 } 16309 if (params.centerInsufficientSlides) { 16310 var _allSlidesSize = 0; 16311 slidesSizesGrid.forEach(function (slideSizeValue) { 16312 _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0); 16313 }); 16314 _allSlidesSize -= params.spaceBetween; 16315 if (_allSlidesSize < swiperSize) { 16316 var allSlidesOffset = (swiperSize - _allSlidesSize) / 2; 16317 snapGrid.forEach(function (snap, snapIndex) { 16318 snapGrid[snapIndex] = snap - allSlidesOffset; 16319 }); 16320 slidesGrid.forEach(function (snap, snapIndex) { 16321 slidesGrid[snapIndex] = snap + allSlidesOffset; 16322 }); 16323 } 16324 } 16325 Object.assign(swiper, { 16326 slides: slides, 16327 snapGrid: snapGrid, 16328 slidesGrid: slidesGrid, 16329 slidesSizesGrid: slidesSizesGrid 16330 }); 16331 if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) { 16332 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-before', "".concat(-snapGrid[0], "px")); 16333 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.setCSSProperty)(swiper.wrapperEl, '--swiper-centered-offset-after', "".concat(swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2, "px")); 16334 var addToSnapGrid = -swiper.snapGrid[0]; 16335 var addToSlidesGrid = -swiper.slidesGrid[0]; 16336 swiper.snapGrid = swiper.snapGrid.map(function (v) { 16337 return v + addToSnapGrid; 16338 }); 16339 swiper.slidesGrid = swiper.slidesGrid.map(function (v) { 16340 return v + addToSlidesGrid; 16341 }); 16342 } 16343 if (slidesLength !== previousSlidesLength) { 16344 swiper.emit('slidesLengthChange'); 16345 } 16346 if (snapGrid.length !== previousSnapGridLength) { 16347 if (swiper.params.watchOverflow) swiper.checkOverflow(); 16348 swiper.emit('snapGridLengthChange'); 16349 } 16350 if (slidesGrid.length !== previousSlidesGridLength) { 16351 swiper.emit('slidesGridLengthChange'); 16352 } 16353 if (params.watchSlidesProgress) { 16354 swiper.updateSlidesOffset(); 16355 } 16356 if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) { 16357 var backFaceHiddenClass = "".concat(params.containerModifierClass, "backface-hidden"); 16358 var hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass); 16359 if (slidesLength <= params.maxBackfaceHiddenSlides) { 16360 if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass); 16361 } else if (hasClassBackfaceClassAdded) { 16362 swiper.$el.removeClass(backFaceHiddenClass); 16363 } 16364 } 16365} 16366 16367/***/ }), 16368
vendor: 3,675 bytes, lines 16369-16434
16369/***/ "./node_modules/swiper/core/update/updateSlidesClasses.js": 16370/*!****************************************************************!*\ 16371 !*** ./node_modules/swiper/core/update/updateSlidesClasses.js ***! 16372 \****************************************************************/ 16373/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 16374 16375"use strict"; 16376__webpack_require__.r(__webpack_exports__); 16377/* harmony export */ __webpack_require__.d(__webpack_exports__, { 16378/* harmony export */ "default": function() { return /* binding */ updateSlidesClasses; } 16379/* harmony export */ }); 16380function updateSlidesClasses() { 16381 var swiper = this; 16382 var slides = swiper.slides, 16383 params = swiper.params, 16384 $wrapperEl = swiper.$wrapperEl, 16385 activeIndex = swiper.activeIndex, 16386 realIndex = swiper.realIndex; 16387 var isVirtual = swiper.virtual && params.virtual.enabled; 16388 slides.removeClass("".concat(params.slideActiveClass, " ").concat(params.slideNextClass, " ").concat(params.slidePrevClass, " ").concat(params.slideDuplicateActiveClass, " ").concat(params.slideDuplicateNextClass, " ").concat(params.slideDuplicatePrevClass)); 16389 var activeSlide; 16390 if (isVirtual) { 16391 activeSlide = swiper.$wrapperEl.find(".".concat(params.slideClass, "[data-swiper-slide-index=\"").concat(activeIndex, "\"]")); 16392 } else { 16393 activeSlide = slides.eq(activeIndex); 16394 } // Active classes 16395 16396 activeSlide.addClass(params.slideActiveClass); 16397 if (params.loop) { 16398 // Duplicate to all looped slides 16399 if (activeSlide.hasClass(params.slideDuplicateClass)) { 16400 $wrapperEl.children(".".concat(params.slideClass, ":not(.").concat(params.slideDuplicateClass, ")[data-swiper-slide-index=\"").concat(realIndex, "\"]")).addClass(params.slideDuplicateActiveClass); 16401 } else { 16402 $wrapperEl.children(".".concat(params.slideClass, ".").concat(params.slideDuplicateClass, "[data-swiper-slide-index=\"").concat(realIndex, "\"]")).addClass(params.slideDuplicateActiveClass); 16403 } 16404 } // Next Slide 16405 16406 var nextSlide = activeSlide.nextAll(".".concat(params.slideClass)).eq(0).addClass(params.slideNextClass); 16407 if (params.loop && nextSlide.length === 0) { 16408 nextSlide = slides.eq(0); 16409 nextSlide.addClass(params.slideNextClass); 16410 } // Prev Slide 16411 16412 var prevSlide = activeSlide.prevAll(".".concat(params.slideClass)).eq(0).addClass(params.slidePrevClass); 16413 if (params.loop && prevSlide.length === 0) { 16414 prevSlide = slides.eq(-1); 16415 prevSlide.addClass(params.slidePrevClass); 16416 } 16417 if (params.loop) { 16418 // Duplicate to all looped slides 16419 if (nextSlide.hasClass(params.slideDuplicateClass)) { 16420 $wrapperEl.children(".".concat(params.slideClass, ":not(.").concat(params.slideDuplicateClass, ")[data-swiper-slide-index=\"").concat(nextSlide.attr('data-swiper-slide-index'), "\"]")).addClass(params.slideDuplicateNextClass); 16421 } else { 16422 $wrapperEl.children(".".concat(params.slideClass, ".").concat(params.slideDuplicateClass, "[data-swiper-slide-index=\"").concat(nextSlide.attr('data-swiper-slide-index'), "\"]")).addClass(params.slideDuplicateNextClass); 16423 } 16424 if (prevSlide.hasClass(params.slideDuplicateClass)) { 16425 $wrapperEl.children(".".concat(params.slideClass, ":not(.").concat(params.slideDuplicateClass, ")[data-swiper-slide-index=\"").concat(prevSlide.attr('data-swiper-slide-index'), "\"]")).addClass(params.slideDuplicatePrevClass); 16426 } else { 16427 $wrapperEl.children(".".concat(params.slideClass, ".").concat(params.slideDuplicateClass, "[data-swiper-slide-index=\"").concat(prevSlide.attr('data-swiper-slide-index'), "\"]")).addClass(params.slideDuplicatePrevClass); 16428 } 16429 } 16430 swiper.emitSlidesClasses(); 16431} 16432 16433/***/ }), 16434
vendor: 858 bytes, lines 16435-16455
16435/***/ "./node_modules/swiper/core/update/updateSlidesOffset.js": 16436/*!***************************************************************!*\ 16437 !*** ./node_modules/swiper/core/update/updateSlidesOffset.js ***! 16438 \***************************************************************/ 16439/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 16440 16441"use strict"; 16442__webpack_require__.r(__webpack_exports__); 16443/* harmony export */ __webpack_require__.d(__webpack_exports__, { 16444/* harmony export */ "default": function() { return /* binding */ updateSlidesOffset; } 16445/* harmony export */ }); 16446function updateSlidesOffset() { 16447 var swiper = this; 16448 var slides = swiper.slides; 16449 for (var i = 0; i < slides.length; i += 1) { 16450 slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop; 16451 } 16452} 16453 16454/***/ }), 16455
vendor: 2,670 bytes, lines 16456-16507
16456/***/ "./node_modules/swiper/core/update/updateSlidesProgress.js": 16457/*!*****************************************************************!*\ 16458 !*** ./node_modules/swiper/core/update/updateSlidesProgress.js ***! 16459 \*****************************************************************/ 16460/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 16461 16462"use strict"; 16463__webpack_require__.r(__webpack_exports__); 16464/* harmony export */ __webpack_require__.d(__webpack_exports__, { 16465/* harmony export */ "default": function() { return /* binding */ updateSlidesProgress; } 16466/* harmony export */ }); 16467/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 16468 16469function updateSlidesProgress() { 16470 var translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this && this.translate || 0; 16471 var swiper = this; 16472 var params = swiper.params; 16473 var slides = swiper.slides, 16474 rtl = swiper.rtlTranslate, 16475 snapGrid = swiper.snapGrid; 16476 if (slides.length === 0) return; 16477 if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset(); 16478 var offsetCenter = -translate; 16479 if (rtl) offsetCenter = translate; // Visible Slides 16480 16481 slides.removeClass(params.slideVisibleClass); 16482 swiper.visibleSlidesIndexes = []; 16483 swiper.visibleSlides = []; 16484 for (var i = 0; i < slides.length; i += 1) { 16485 var slide = slides[i]; 16486 var slideOffset = slide.swiperSlideOffset; 16487 if (params.cssMode && params.centeredSlides) { 16488 slideOffset -= slides[0].swiperSlideOffset; 16489 } 16490 var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween); 16491 var originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween); 16492 var slideBefore = -(offsetCenter - slideOffset); 16493 var slideAfter = slideBefore + swiper.slidesSizesGrid[i]; 16494 var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size; 16495 if (isVisible) { 16496 swiper.visibleSlides.push(slide); 16497 swiper.visibleSlidesIndexes.push(i); 16498 slides.eq(i).addClass(params.slideVisibleClass); 16499 } 16500 slide.progress = rtl ? -slideProgress : slideProgress; 16501 slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress; 16502 } 16503 swiper.visibleSlides = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.visibleSlides); 16504} 16505 16506/***/ }), 16507
vendor: 11,431 bytes, lines 16508-16818
16508/***/ "./node_modules/swiper/modules/a11y/a11y.js": 16509/*!**************************************************!*\ 16510 !*** ./node_modules/swiper/modules/a11y/a11y.js ***! 16511 \**************************************************/ 16512/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 16513 16514"use strict"; 16515__webpack_require__.r(__webpack_exports__); 16516/* harmony export */ __webpack_require__.d(__webpack_exports__, { 16517/* harmony export */ "default": function() { return /* binding */ A11y; } 16518/* harmony export */ }); 16519/* harmony import */ var _shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/classes-to-selector.js */ "./node_modules/swiper/shared/classes-to-selector.js"); 16520/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 16521 16522 16523function A11y(_ref) { 16524 var swiper = _ref.swiper, 16525 extendParams = _ref.extendParams, 16526 on = _ref.on; 16527 extendParams({ 16528 a11y: { 16529 enabled: true, 16530 notificationClass: 'swiper-notification', 16531 prevSlideMessage: 'Previous slide', 16532 nextSlideMessage: 'Next slide', 16533 firstSlideMessage: 'This is the first slide', 16534 lastSlideMessage: 'This is the last slide', 16535 paginationBulletMessage: 'Go to slide {{index}}', 16536 slideLabelMessage: '{{index}} / {{slidesLength}}', 16537 containerMessage: null, 16538 containerRoleDescriptionMessage: null, 16539 itemRoleDescriptionMessage: null, 16540 slideRole: 'group', 16541 id: null 16542 } 16543 }); 16544 swiper.a11y = { 16545 clicked: false 16546 }; 16547 var liveRegion = null; 16548 function notify(message) { 16549 var notification = liveRegion; 16550 if (notification.length === 0) return; 16551 notification.html(''); 16552 notification.html(message); 16553 } 16554 function getRandomNumber() { 16555 var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 16; 16556 var randomChar = function randomChar() { 16557 return Math.round(16 * Math.random()).toString(16); 16558 }; 16559 return 'x'.repeat(size).replace(/x/g, randomChar); 16560 } 16561 function makeElFocusable($el) { 16562 $el.attr('tabIndex', '0'); 16563 } 16564 function makeElNotFocusable($el) { 16565 $el.attr('tabIndex', '-1'); 16566 } 16567 function addElRole($el, role) { 16568 $el.attr('role', role); 16569 } 16570 function addElRoleDescription($el, description) { 16571 $el.attr('aria-roledescription', description); 16572 } 16573 function addElControls($el, controls) { 16574 $el.attr('aria-controls', controls); 16575 } 16576 function addElLabel($el, label) { 16577 $el.attr('aria-label', label); 16578 } 16579 function addElId($el, id) { 16580 $el.attr('id', id); 16581 } 16582 function addElLive($el, live) { 16583 $el.attr('aria-live', live); 16584 } 16585 function disableEl($el) { 16586 $el.attr('aria-disabled', true); 16587 } 16588 function enableEl($el) { 16589 $el.attr('aria-disabled', false); 16590 } 16591 function onEnterOrSpaceKey(e) { 16592 if (e.keyCode !== 13 && e.keyCode !== 32) return; 16593 var params = swiper.params.a11y; 16594 var $targetEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target); 16595 if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) { 16596 if (!(swiper.isEnd && !swiper.params.loop)) { 16597 swiper.slideNext(); 16598 } 16599 if (swiper.isEnd) { 16600 notify(params.lastSlideMessage); 16601 } else { 16602 notify(params.nextSlideMessage); 16603 } 16604 } 16605 if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) { 16606 if (!(swiper.isBeginning && !swiper.params.loop)) { 16607 swiper.slidePrev(); 16608 } 16609 if (swiper.isBeginning) { 16610 notify(params.firstSlideMessage); 16611 } else { 16612 notify(params.prevSlideMessage); 16613 } 16614 } 16615 if (swiper.pagination && $targetEl.is((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass))) { 16616 $targetEl[0].click(); 16617 } 16618 } 16619 function updateNavigation() { 16620 if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return; 16621 var _swiper$navigation = swiper.navigation, 16622 $nextEl = _swiper$navigation.$nextEl, 16623 $prevEl = _swiper$navigation.$prevEl; 16624 if ($prevEl && $prevEl.length > 0) { 16625 if (swiper.isBeginning) { 16626 disableEl($prevEl); 16627 makeElNotFocusable($prevEl); 16628 } else { 16629 enableEl($prevEl); 16630 makeElFocusable($prevEl); 16631 } 16632 } 16633 if ($nextEl && $nextEl.length > 0) { 16634 if (swiper.isEnd) { 16635 disableEl($nextEl); 16636 makeElNotFocusable($nextEl); 16637 } else { 16638 enableEl($nextEl); 16639 makeElFocusable($nextEl); 16640 } 16641 } 16642 } 16643 function hasPagination() { 16644 return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length; 16645 } 16646 function hasClickablePagination() { 16647 return hasPagination() && swiper.params.pagination.clickable; 16648 } 16649 function updatePagination() { 16650 var params = swiper.params.a11y; 16651 if (!hasPagination()) return; 16652 swiper.pagination.bullets.each(function (bulletEl) { 16653 var $bulletEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(bulletEl); 16654 if (swiper.params.pagination.clickable) { 16655 makeElFocusable($bulletEl); 16656 if (!swiper.params.pagination.renderBullet) { 16657 addElRole($bulletEl, 'button'); 16658 addElLabel($bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, $bulletEl.index() + 1)); 16659 } 16660 } 16661 if ($bulletEl.is(".".concat(swiper.params.pagination.bulletActiveClass))) { 16662 $bulletEl.attr('aria-current', 'true'); 16663 } else { 16664 $bulletEl.removeAttr('aria-current'); 16665 } 16666 }); 16667 } 16668 var initNavEl = function initNavEl($el, wrapperId, message) { 16669 makeElFocusable($el); 16670 if ($el[0].tagName !== 'BUTTON') { 16671 addElRole($el, 'button'); 16672 $el.on('keydown', onEnterOrSpaceKey); 16673 } 16674 addElLabel($el, message); 16675 addElControls($el, wrapperId); 16676 }; 16677 var handlePointerDown = function handlePointerDown() { 16678 swiper.a11y.clicked = true; 16679 }; 16680 var handlePointerUp = function handlePointerUp() { 16681 requestAnimationFrame(function () { 16682 requestAnimationFrame(function () { 16683 if (!swiper.destroyed) { 16684 swiper.a11y.clicked = false; 16685 } 16686 }); 16687 }); 16688 }; 16689 var handleFocus = function handleFocus(e) { 16690 if (swiper.a11y.clicked) return; 16691 var slideEl = e.target.closest(".".concat(swiper.params.slideClass)); 16692 if (!slideEl || !swiper.slides.includes(slideEl)) return; 16693 var isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex; 16694 var isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl); 16695 if (isActive || isVisible) return; 16696 if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return; 16697 if (swiper.isHorizontal()) { 16698 swiper.el.scrollLeft = 0; 16699 } else { 16700 swiper.el.scrollTop = 0; 16701 } 16702 swiper.slideTo(swiper.slides.indexOf(slideEl), 0); 16703 }; 16704 var initSlides = function initSlides() { 16705 var params = swiper.params.a11y; 16706 if (params.itemRoleDescriptionMessage) { 16707 addElRoleDescription((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.slides), params.itemRoleDescriptionMessage); 16708 } 16709 if (params.slideRole) { 16710 addElRole((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.slides), params.slideRole); 16711 } 16712 var slidesLength = swiper.params.loop ? swiper.slides.filter(function (el) { 16713 return !el.classList.contains(swiper.params.slideDuplicateClass); 16714 }).length : swiper.slides.length; 16715 if (params.slideLabelMessage) { 16716 swiper.slides.each(function (slideEl, index) { 16717 var $slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl); 16718 var slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index; 16719 var ariaLabelMessage = params.slideLabelMessage.replace(/\{\{index\}\}/, slideIndex + 1).replace(/\{\{slidesLength\}\}/, slidesLength); 16720 addElLabel($slideEl, ariaLabelMessage); 16721 }); 16722 } 16723 }; 16724 var init = function init() { 16725 var params = swiper.params.a11y; 16726 swiper.$el.append(liveRegion); // Container 16727 16728 var $containerEl = swiper.$el; 16729 if (params.containerRoleDescriptionMessage) { 16730 addElRoleDescription($containerEl, params.containerRoleDescriptionMessage); 16731 } 16732 if (params.containerMessage) { 16733 addElLabel($containerEl, params.containerMessage); 16734 } // Wrapper 16735 16736 var $wrapperEl = swiper.$wrapperEl; 16737 var wrapperId = params.id || $wrapperEl.attr('id') || "swiper-wrapper-".concat(getRandomNumber(16)); 16738 var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite'; 16739 addElId($wrapperEl, wrapperId); 16740 addElLive($wrapperEl, live); // Slide 16741 16742 initSlides(); // Navigation 16743 16744 var $nextEl; 16745 var $prevEl; 16746 if (swiper.navigation && swiper.navigation.$nextEl) { 16747 $nextEl = swiper.navigation.$nextEl; 16748 } 16749 if (swiper.navigation && swiper.navigation.$prevEl) { 16750 $prevEl = swiper.navigation.$prevEl; 16751 } 16752 if ($nextEl && $nextEl.length) { 16753 initNavEl($nextEl, wrapperId, params.nextSlideMessage); 16754 } 16755 if ($prevEl && $prevEl.length) { 16756 initNavEl($prevEl, wrapperId, params.prevSlideMessage); 16757 } // Pagination 16758 16759 if (hasClickablePagination()) { 16760 swiper.pagination.$el.on('keydown', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass), onEnterOrSpaceKey); 16761 } // Tab focus 16762 16763 swiper.$el.on('focus', handleFocus, true); 16764 swiper.$el.on('pointerdown', handlePointerDown, true); 16765 swiper.$el.on('pointerup', handlePointerUp, true); 16766 }; 16767 function destroy() { 16768 if (liveRegion && liveRegion.length > 0) liveRegion.remove(); 16769 var $nextEl; 16770 var $prevEl; 16771 if (swiper.navigation && swiper.navigation.$nextEl) { 16772 $nextEl = swiper.navigation.$nextEl; 16773 } 16774 if (swiper.navigation && swiper.navigation.$prevEl) { 16775 $prevEl = swiper.navigation.$prevEl; 16776 } 16777 if ($nextEl) { 16778 $nextEl.off('keydown', onEnterOrSpaceKey); 16779 } 16780 if ($prevEl) { 16781 $prevEl.off('keydown', onEnterOrSpaceKey); 16782 } // Pagination 16783 16784 if (hasClickablePagination()) { 16785 swiper.pagination.$el.off('keydown', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper.params.pagination.bulletClass), onEnterOrSpaceKey); 16786 } // Tab focus 16787 16788 swiper.$el.off('focus', handleFocus, true); 16789 swiper.$el.off('pointerdown', handlePointerDown, true); 16790 swiper.$el.off('pointerup', handlePointerUp, true); 16791 } 16792 on('beforeInit', function () { 16793 liveRegion = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])("<span class=\"".concat(swiper.params.a11y.notificationClass, "\" aria-live=\"assertive\" aria-atomic=\"true\"></span>")); 16794 }); 16795 on('afterInit', function () { 16796 if (!swiper.params.a11y.enabled) return; 16797 init(); 16798 }); 16799 on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', function () { 16800 if (!swiper.params.a11y.enabled) return; 16801 initSlides(); 16802 }); 16803 on('fromEdge toEdge afterInit lock unlock', function () { 16804 if (!swiper.params.a11y.enabled) return; 16805 updateNavigation(); 16806 }); 16807 on('paginationUpdate', function () { 16808 if (!swiper.params.a11y.enabled) return; 16809 updatePagination(); 16810 }); 16811 on('destroy', function () { 16812 if (!swiper.params.a11y.enabled) return; 16813 destroy(); 16814 }); 16815} 16816 16817/***/ }), 16818
vendor: 7,092 bytes, lines 16819-17037
16819/***/ "./node_modules/swiper/modules/autoplay/autoplay.js": 16820/*!**********************************************************!*\ 16821 !*** ./node_modules/swiper/modules/autoplay/autoplay.js ***! 16822 \**********************************************************/ 16823/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 16824 16825"use strict"; 16826__webpack_require__.r(__webpack_exports__); 16827/* harmony export */ __webpack_require__.d(__webpack_exports__, { 16828/* harmony export */ "default": function() { return /* binding */ Autoplay; } 16829/* harmony export */ }); 16830/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 16831/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 16832/* eslint no-underscore-dangle: "off" */ 16833 16834/* eslint no-use-before-define: "off" */ 16835 16836 16837function Autoplay(_ref) { 16838 var swiper = _ref.swiper, 16839 extendParams = _ref.extendParams, 16840 on = _ref.on, 16841 emit = _ref.emit; 16842 var timeout; 16843 swiper.autoplay = { 16844 running: false, 16845 paused: false 16846 }; 16847 extendParams({ 16848 autoplay: { 16849 enabled: false, 16850 delay: 3000, 16851 waitForTransition: true, 16852 disableOnInteraction: true, 16853 stopOnLastSlide: false, 16854 reverseDirection: false, 16855 pauseOnMouseEnter: false 16856 } 16857 }); 16858 function run() { 16859 if (!swiper.size) { 16860 swiper.autoplay.running = false; 16861 swiper.autoplay.paused = false; 16862 return; 16863 } 16864 var $activeSlideEl = swiper.slides.eq(swiper.activeIndex); 16865 var delay = swiper.params.autoplay.delay; 16866 if ($activeSlideEl.attr('data-swiper-autoplay')) { 16867 delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay; 16868 } 16869 clearTimeout(timeout); 16870 timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.nextTick)(function () { 16871 var autoplayResult; 16872 if (swiper.params.autoplay.reverseDirection) { 16873 if (swiper.params.loop) { 16874 swiper.loopFix(); 16875 autoplayResult = swiper.slidePrev(swiper.params.speed, true, true); 16876 emit('autoplay'); 16877 } else if (!swiper.isBeginning) { 16878 autoplayResult = swiper.slidePrev(swiper.params.speed, true, true); 16879 emit('autoplay'); 16880 } else if (!swiper.params.autoplay.stopOnLastSlide) { 16881 autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true); 16882 emit('autoplay'); 16883 } else { 16884 stop(); 16885 } 16886 } else if (swiper.params.loop) { 16887 swiper.loopFix(); 16888 autoplayResult = swiper.slideNext(swiper.params.speed, true, true); 16889 emit('autoplay'); 16890 } else if (!swiper.isEnd) { 16891 autoplayResult = swiper.slideNext(swiper.params.speed, true, true); 16892 emit('autoplay'); 16893 } else if (!swiper.params.autoplay.stopOnLastSlide) { 16894 autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true); 16895 emit('autoplay'); 16896 } else { 16897 stop(); 16898 } 16899 if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) { 16900 run(); 16901 } 16902 }, delay); 16903 } 16904 function start() { 16905 if (typeof timeout !== 'undefined') return false; 16906 if (swiper.autoplay.running) return false; 16907 swiper.autoplay.running = true; 16908 emit('autoplayStart'); 16909 run(); 16910 return true; 16911 } 16912 function stop() { 16913 if (!swiper.autoplay.running) return false; 16914 if (typeof timeout === 'undefined') return false; 16915 if (timeout) { 16916 clearTimeout(timeout); 16917 timeout = undefined; 16918 } 16919 swiper.autoplay.running = false; 16920 emit('autoplayStop'); 16921 return true; 16922 } 16923 function pause(speed) { 16924 if (!swiper.autoplay.running) return; 16925 if (swiper.autoplay.paused) return; 16926 if (timeout) clearTimeout(timeout); 16927 swiper.autoplay.paused = true; 16928 if (speed === 0 || !swiper.params.autoplay.waitForTransition) { 16929 swiper.autoplay.paused = false; 16930 run(); 16931 } else { 16932 ['transitionend', 'webkitTransitionEnd'].forEach(function (event) { 16933 swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd); 16934 }); 16935 } 16936 } 16937 function onVisibilityChange() { 16938 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 16939 if (document.visibilityState === 'hidden' && swiper.autoplay.running) { 16940 pause(); 16941 } 16942 if (document.visibilityState === 'visible' && swiper.autoplay.paused) { 16943 run(); 16944 swiper.autoplay.paused = false; 16945 } 16946 } 16947 function onTransitionEnd(e) { 16948 if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return; 16949 if (e.target !== swiper.$wrapperEl[0]) return; 16950 ['transitionend', 'webkitTransitionEnd'].forEach(function (event) { 16951 swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd); 16952 }); 16953 swiper.autoplay.paused = false; 16954 if (!swiper.autoplay.running) { 16955 stop(); 16956 } else { 16957 run(); 16958 } 16959 } 16960 function onMouseEnter() { 16961 if (swiper.params.autoplay.disableOnInteraction) { 16962 stop(); 16963 } else { 16964 emit('autoplayPause'); 16965 pause(); 16966 } 16967 ['transitionend', 'webkitTransitionEnd'].forEach(function (event) { 16968 swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd); 16969 }); 16970 } 16971 function onMouseLeave() { 16972 if (swiper.params.autoplay.disableOnInteraction) { 16973 return; 16974 } 16975 swiper.autoplay.paused = false; 16976 emit('autoplayResume'); 16977 run(); 16978 } 16979 function attachMouseEvents() { 16980 if (swiper.params.autoplay.pauseOnMouseEnter) { 16981 swiper.$el.on('mouseenter', onMouseEnter); 16982 swiper.$el.on('mouseleave', onMouseLeave); 16983 } 16984 } 16985 function detachMouseEvents() { 16986 swiper.$el.off('mouseenter', onMouseEnter); 16987 swiper.$el.off('mouseleave', onMouseLeave); 16988 } 16989 on('init', function () { 16990 if (swiper.params.autoplay.enabled) { 16991 start(); 16992 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 16993 document.addEventListener('visibilitychange', onVisibilityChange); 16994 attachMouseEvents(); 16995 } 16996 }); 16997 on('beforeTransitionStart', function (_s, speed, internal) { 16998 if (swiper.autoplay.running) { 16999 if (internal || !swiper.params.autoplay.disableOnInteraction) { 17000 swiper.autoplay.pause(speed); 17001 } else { 17002 stop(); 17003 } 17004 } 17005 }); 17006 on('sliderFirstMove', function () { 17007 if (swiper.autoplay.running) { 17008 if (swiper.params.autoplay.disableOnInteraction) { 17009 stop(); 17010 } else { 17011 pause(); 17012 } 17013 } 17014 }); 17015 on('touchEnd', function () { 17016 if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) { 17017 run(); 17018 } 17019 }); 17020 on('destroy', function () { 17021 detachMouseEvents(); 17022 if (swiper.autoplay.running) { 17023 stop(); 17024 } 17025 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 17026 document.removeEventListener('visibilitychange', onVisibilityChange); 17027 }); 17028 Object.assign(swiper.autoplay, { 17029 pause: pause, 17030 run: run, 17031 start: start, 17032 stop: stop 17033 }); 17034} 17035 17036/***/ }), 17037
vendor: 6,520 bytes, lines 17038-17215
17038/***/ "./node_modules/swiper/modules/controller/controller.js": 17039/*!**************************************************************!*\ 17040 !*** ./node_modules/swiper/modules/controller/controller.js ***! 17041 \**************************************************************/ 17042/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 17043 17044"use strict"; 17045__webpack_require__.r(__webpack_exports__); 17046/* harmony export */ __webpack_require__.d(__webpack_exports__, { 17047/* harmony export */ "default": function() { return /* binding */ Controller; } 17048/* harmony export */ }); 17049/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 17050/* eslint no-bitwise: ["error", { "allow": [">>"] }] */ 17051 17052function Controller(_ref) { 17053 var swiper = _ref.swiper, 17054 extendParams = _ref.extendParams, 17055 on = _ref.on; 17056 extendParams({ 17057 controller: { 17058 control: undefined, 17059 inverse: false, 17060 by: 'slide' // or 'container' 17061 } 17062 }); 17063 swiper.controller = { 17064 control: undefined 17065 }; 17066 function LinearSpline(x, y) { 17067 var binarySearch = function search() { 17068 var maxIndex; 17069 var minIndex; 17070 var guess; 17071 return function (array, val) { 17072 minIndex = -1; 17073 maxIndex = array.length; 17074 while (maxIndex - minIndex > 1) { 17075 guess = maxIndex + minIndex >> 1; 17076 if (array[guess] <= val) { 17077 minIndex = guess; 17078 } else { 17079 maxIndex = guess; 17080 } 17081 } 17082 return maxIndex; 17083 }; 17084 }(); 17085 this.x = x; 17086 this.y = y; 17087 this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value: 17088 // (x1,y1) is the known point before given value, 17089 // (x3,y3) is the known point after given value. 17090 17091 var i1; 17092 var i3; 17093 this.interpolate = function interpolate(x2) { 17094 if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2): 17095 17096 i3 = binarySearch(this.x, x2); 17097 i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already: 17098 // y2 := ((x2âx1) à (y3ây1)) ÷ (x3âx1) + y1 17099 17100 return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1]; 17101 }; 17102 return this; 17103 } // xxx: for now i will just save one spline function to to 17104 17105 function getInterpolateFunction(c) { 17106 if (!swiper.controller.spline) { 17107 swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid); 17108 } 17109 } 17110 function setTranslate(_t, byController) { 17111 var controlled = swiper.controller.control; 17112 var multiplier; 17113 var controlledTranslate; 17114 var Swiper = swiper.constructor; 17115 function setControlledTranslate(c) { 17116 // this will create an Interpolate function based on the snapGrids 17117 // x is the Grid of the scrolled scroller and y will be the controlled scroller 17118 // it makes sense to create this only once and recall it for the interpolation 17119 // the function does a lot of value caching for performance 17120 var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate; 17121 if (swiper.params.controller.by === 'slide') { 17122 getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid 17123 // but it did not work out 17124 17125 controlledTranslate = -swiper.controller.spline.interpolate(-translate); 17126 } 17127 if (!controlledTranslate || swiper.params.controller.by === 'container') { 17128 multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); 17129 controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate(); 17130 } 17131 if (swiper.params.controller.inverse) { 17132 controlledTranslate = c.maxTranslate() - controlledTranslate; 17133 } 17134 c.updateProgress(controlledTranslate); 17135 c.setTranslate(controlledTranslate, swiper); 17136 c.updateActiveIndex(); 17137 c.updateSlidesClasses(); 17138 } 17139 if (Array.isArray(controlled)) { 17140 for (var i = 0; i < controlled.length; i += 1) { 17141 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 17142 setControlledTranslate(controlled[i]); 17143 } 17144 } 17145 } else if (controlled instanceof Swiper && byController !== controlled) { 17146 setControlledTranslate(controlled); 17147 } 17148 } 17149 function setTransition(duration, byController) { 17150 var Swiper = swiper.constructor; 17151 var controlled = swiper.controller.control; 17152 var i; 17153 function setControlledTransition(c) { 17154 c.setTransition(duration, swiper); 17155 if (duration !== 0) { 17156 c.transitionStart(); 17157 if (c.params.autoHeight) { 17158 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.nextTick)(function () { 17159 c.updateAutoHeight(); 17160 }); 17161 } 17162 c.$wrapperEl.transitionEnd(function () { 17163 if (!controlled) return; 17164 if (c.params.loop && swiper.params.controller.by === 'slide') { 17165 c.loopFix(); 17166 } 17167 c.transitionEnd(); 17168 }); 17169 } 17170 } 17171 if (Array.isArray(controlled)) { 17172 for (i = 0; i < controlled.length; i += 1) { 17173 if (controlled[i] !== byController && controlled[i] instanceof Swiper) { 17174 setControlledTransition(controlled[i]); 17175 } 17176 } 17177 } else if (controlled instanceof Swiper && byController !== controlled) { 17178 setControlledTransition(controlled); 17179 } 17180 } 17181 function removeSpline() { 17182 if (!swiper.controller.control) return; 17183 if (swiper.controller.spline) { 17184 swiper.controller.spline = undefined; 17185 delete swiper.controller.spline; 17186 } 17187 } 17188 on('beforeInit', function () { 17189 swiper.controller.control = swiper.params.controller.control; 17190 }); 17191 on('update', function () { 17192 removeSpline(); 17193 }); 17194 on('resize', function () { 17195 removeSpline(); 17196 }); 17197 on('observerUpdate', function () { 17198 removeSpline(); 17199 }); 17200 on('setTranslate', function (_s, translate, byController) { 17201 if (!swiper.controller.control) return; 17202 swiper.controller.setTranslate(translate, byController); 17203 }); 17204 on('setTransition', function (_s, duration, byController) { 17205 if (!swiper.controller.control) return; 17206 swiper.controller.setTransition(duration, byController); 17207 }); 17208 Object.assign(swiper.controller, { 17209 setTranslate: setTranslate, 17210 setTransition: setTransition 17211 }); 17212} 17213 17214/***/ }), 17215
vendor: 6,046 bytes, lines 17216-17341
17216/***/ "./node_modules/swiper/modules/effect-cards/effect-cards.js": 17217/*!******************************************************************!*\ 17218 !*** ./node_modules/swiper/modules/effect-cards/effect-cards.js ***! 17219 \******************************************************************/ 17220/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 17221 17222"use strict"; 17223__webpack_require__.r(__webpack_exports__); 17224/* harmony export */ __webpack_require__.d(__webpack_exports__, { 17225/* harmony export */ "default": function() { return /* binding */ EffectCards; } 17226/* harmony export */ }); 17227/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js"); 17228/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 17229/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 17230/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js"); 17231 17232 17233 17234 17235function EffectCards(_ref) { 17236 var swiper = _ref.swiper, 17237 extendParams = _ref.extendParams, 17238 on = _ref.on; 17239 extendParams({ 17240 cardsEffect: { 17241 slideShadows: true, 17242 transformEl: null, 17243 rotate: true, 17244 perSlideRotate: 2, 17245 perSlideOffset: 8 17246 } 17247 }); 17248 var setTranslate = function setTranslate() { 17249 var slides = swiper.slides, 17250 activeIndex = swiper.activeIndex; 17251 var params = swiper.params.cardsEffect; 17252 var _swiper$touchEventsDa = swiper.touchEventsData, 17253 startTranslate = _swiper$touchEventsDa.startTranslate, 17254 isTouched = _swiper$touchEventsDa.isTouched; 17255 var currentTranslate = swiper.translate; 17256 for (var i = 0; i < slides.length; i += 1) { 17257 var $slideEl = slides.eq(i); 17258 var slideProgress = $slideEl[0].progress; 17259 var progress = Math.min(Math.max(slideProgress, -4), 4); 17260 var offset = $slideEl[0].swiperSlideOffset; 17261 if (swiper.params.centeredSlides && !swiper.params.cssMode) { 17262 swiper.$wrapperEl.transform("translateX(".concat(swiper.minTranslate(), "px)")); 17263 } 17264 if (swiper.params.centeredSlides && swiper.params.cssMode) { 17265 offset -= slides[0].swiperSlideOffset; 17266 } 17267 var tX = swiper.params.cssMode ? -offset - swiper.translate : -offset; 17268 var tY = 0; 17269 var tZ = -100 * Math.abs(progress); 17270 var scale = 1; 17271 var rotate = -params.perSlideRotate * progress; 17272 var tXAdd = params.perSlideOffset - Math.abs(progress) * 0.75; 17273 var slideIndex = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i; 17274 var isSwipeToNext = (slideIndex === activeIndex || slideIndex === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate; 17275 var isSwipeToPrev = (slideIndex === activeIndex || slideIndex === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate; 17276 if (isSwipeToNext || isSwipeToPrev) { 17277 var subProgress = Math.pow(1 - Math.abs((Math.abs(progress) - 0.5) / 0.5), 0.5); 17278 rotate += -28 * progress * subProgress; 17279 scale += -0.5 * subProgress; 17280 tXAdd += 96 * subProgress; 17281 tY = "".concat(-25 * subProgress * Math.abs(progress), "%"); 17282 } 17283 if (progress < 0) { 17284 // next 17285 tX = "calc(".concat(tX, "px + (").concat(tXAdd * Math.abs(progress), "%))"); 17286 } else if (progress > 0) { 17287 // prev 17288 tX = "calc(".concat(tX, "px + (-").concat(tXAdd * Math.abs(progress), "%))"); 17289 } else { 17290 tX = "".concat(tX, "px"); 17291 } 17292 if (!swiper.isHorizontal()) { 17293 var prevY = tY; 17294 tY = tX; 17295 tX = prevY; 17296 } 17297 var scaleString = progress < 0 ? "".concat(1 + (1 - scale) * progress) : "".concat(1 - (1 - scale) * progress); 17298 var transform = "\n translate3d(".concat(tX, ", ").concat(tY, ", ").concat(tZ, "px)\n rotateZ(").concat(params.rotate ? rotate : 0, "deg)\n scale(").concat(scaleString, ")\n "); 17299 if (params.slideShadows) { 17300 // Set shadows 17301 var $shadowEl = $slideEl.find('.swiper-slide-shadow'); 17302 if ($shadowEl.length === 0) { 17303 $shadowEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, $slideEl); 17304 } 17305 if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1); 17306 } 17307 $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; 17308 var $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, $slideEl); 17309 $targetEl.transform(transform); 17310 } 17311 }; 17312 var setTransition = function setTransition(duration) { 17313 var transformEl = swiper.params.cardsEffect.transformEl; 17314 var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides; 17315 $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration); 17316 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__["default"])({ 17317 swiper: swiper, 17318 duration: duration, 17319 transformEl: transformEl 17320 }); 17321 }; 17322 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 17323 effect: 'cards', 17324 swiper: swiper, 17325 on: on, 17326 setTranslate: setTranslate, 17327 setTransition: setTransition, 17328 perspective: function perspective() { 17329 return true; 17330 }, 17331 overwriteParams: function overwriteParams() { 17332 return { 17333 watchSlidesProgress: true, 17334 virtualTranslate: !swiper.params.cssMode 17335 }; 17336 } 17337 }); 17338} 17339 17340/***/ }), 17341
vendor: 5,729 bytes, lines 17342-17453
17342/***/ "./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js": 17343/*!**************************************************************************!*\ 17344 !*** ./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js ***! 17345 \**************************************************************************/ 17346/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 17347 17348"use strict"; 17349__webpack_require__.r(__webpack_exports__); 17350/* harmony export */ __webpack_require__.d(__webpack_exports__, { 17351/* harmony export */ "default": function() { return /* binding */ EffectCoverflow; } 17352/* harmony export */ }); 17353/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js"); 17354/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 17355/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 17356 17357 17358 17359function EffectCoverflow(_ref) { 17360 var swiper = _ref.swiper, 17361 extendParams = _ref.extendParams, 17362 on = _ref.on; 17363 extendParams({ 17364 coverflowEffect: { 17365 rotate: 50, 17366 stretch: 0, 17367 depth: 100, 17368 scale: 1, 17369 modifier: 1, 17370 slideShadows: true, 17371 transformEl: null 17372 } 17373 }); 17374 var setTranslate = function setTranslate() { 17375 var swiperWidth = swiper.width, 17376 swiperHeight = swiper.height, 17377 slides = swiper.slides, 17378 slidesSizesGrid = swiper.slidesSizesGrid; 17379 var params = swiper.params.coverflowEffect; 17380 var isHorizontal = swiper.isHorizontal(); 17381 var transform = swiper.translate; 17382 var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2; 17383 var rotate = isHorizontal ? params.rotate : -params.rotate; 17384 var translate = params.depth; // Each slide offset from center 17385 17386 for (var i = 0, length = slides.length; i < length; i += 1) { 17387 var $slideEl = slides.eq(i); 17388 var slideSize = slidesSizesGrid[i]; 17389 var slideOffset = $slideEl[0].swiperSlideOffset; 17390 var centerOffset = (center - slideOffset - slideSize / 2) / slideSize; 17391 var offsetMultiplier = typeof params.modifier === 'function' ? params.modifier(centerOffset) : centerOffset * params.modifier; 17392 var rotateY = isHorizontal ? rotate * offsetMultiplier : 0; 17393 var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0 17394 17395 var translateZ = -translate * Math.abs(offsetMultiplier); 17396 var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders 17397 17398 if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) { 17399 stretch = parseFloat(params.stretch) / 100 * slideSize; 17400 } 17401 var translateY = isHorizontal ? 0 : stretch * offsetMultiplier; 17402 var translateX = isHorizontal ? stretch * offsetMultiplier : 0; 17403 var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values 17404 17405 if (Math.abs(translateX) < 0.001) translateX = 0; 17406 if (Math.abs(translateY) < 0.001) translateY = 0; 17407 if (Math.abs(translateZ) < 0.001) translateZ = 0; 17408 if (Math.abs(rotateY) < 0.001) rotateY = 0; 17409 if (Math.abs(rotateX) < 0.001) rotateX = 0; 17410 if (Math.abs(scale) < 0.001) scale = 0; 17411 var slideTransform = "translate3d(".concat(translateX, "px,").concat(translateY, "px,").concat(translateZ, "px) rotateX(").concat(rotateX, "deg) rotateY(").concat(rotateY, "deg) scale(").concat(scale, ")"); 17412 var $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, $slideEl); 17413 $targetEl.transform(slideTransform); 17414 $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; 17415 if (params.slideShadows) { 17416 // Set shadows 17417 var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); 17418 var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); 17419 if ($shadowBeforeEl.length === 0) { 17420 $shadowBeforeEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, $slideEl, isHorizontal ? 'left' : 'top'); 17421 } 17422 if ($shadowAfterEl.length === 0) { 17423 $shadowAfterEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, $slideEl, isHorizontal ? 'right' : 'bottom'); 17424 } 17425 if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; 17426 if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0; 17427 } 17428 } 17429 }; 17430 var setTransition = function setTransition(duration) { 17431 var transformEl = swiper.params.coverflowEffect.transformEl; 17432 var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides; 17433 $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration); 17434 }; 17435 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 17436 effect: 'coverflow', 17437 swiper: swiper, 17438 on: on, 17439 setTranslate: setTranslate, 17440 setTransition: setTransition, 17441 perspective: function perspective() { 17442 return true; 17443 }, 17444 overwriteParams: function overwriteParams() { 17445 return { 17446 watchSlidesProgress: true 17447 }; 17448 } 17449 }); 17450} 17451 17452/***/ }), 17453
vendor: 6,619 bytes, lines 17454-17609
17454/***/ "./node_modules/swiper/modules/effect-creative/effect-creative.js": 17455/*!************************************************************************!*\ 17456 !*** ./node_modules/swiper/modules/effect-creative/effect-creative.js ***! 17457 \************************************************************************/ 17458/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 17459 17460"use strict"; 17461__webpack_require__.r(__webpack_exports__); 17462/* harmony export */ __webpack_require__.d(__webpack_exports__, { 17463/* harmony export */ "default": function() { return /* binding */ EffectCreative; } 17464/* harmony export */ }); 17465/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js"); 17466/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 17467/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 17468/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js"); 17469 17470 17471 17472 17473function EffectCreative(_ref) { 17474 var swiper = _ref.swiper, 17475 extendParams = _ref.extendParams, 17476 on = _ref.on; 17477 extendParams({ 17478 creativeEffect: { 17479 transformEl: null, 17480 limitProgress: 1, 17481 shadowPerProgress: false, 17482 progressMultiplier: 1, 17483 perspective: true, 17484 prev: { 17485 translate: [0, 0, 0], 17486 rotate: [0, 0, 0], 17487 opacity: 1, 17488 scale: 1 17489 }, 17490 next: { 17491 translate: [0, 0, 0], 17492 rotate: [0, 0, 0], 17493 opacity: 1, 17494 scale: 1 17495 } 17496 } 17497 }); 17498 var getTranslateValue = function getTranslateValue(value) { 17499 if (typeof value === 'string') return value; 17500 return "".concat(value, "px"); 17501 }; 17502 var setTranslate = function setTranslate() { 17503 var slides = swiper.slides, 17504 $wrapperEl = swiper.$wrapperEl, 17505 slidesSizesGrid = swiper.slidesSizesGrid; 17506 var params = swiper.params.creativeEffect; 17507 var multiplier = params.progressMultiplier; 17508 var isCenteredSlides = swiper.params.centeredSlides; 17509 if (isCenteredSlides) { 17510 var margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0; 17511 $wrapperEl.transform("translateX(calc(50% - ".concat(margin, "px))")); 17512 } 17513 var _loop = function _loop() { 17514 var $slideEl = slides.eq(i); 17515 var slideProgress = $slideEl[0].progress; 17516 var progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress); 17517 var originalProgress = progress; 17518 if (!isCenteredSlides) { 17519 originalProgress = Math.min(Math.max($slideEl[0].originalProgress, -params.limitProgress), params.limitProgress); 17520 } 17521 var offset = $slideEl[0].swiperSlideOffset; 17522 var t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0]; 17523 var r = [0, 0, 0]; 17524 var custom = false; 17525 if (!swiper.isHorizontal()) { 17526 t[1] = t[0]; 17527 t[0] = 0; 17528 } 17529 var data = { 17530 translate: [0, 0, 0], 17531 rotate: [0, 0, 0], 17532 scale: 1, 17533 opacity: 1 17534 }; 17535 if (progress < 0) { 17536 data = params.next; 17537 custom = true; 17538 } else if (progress > 0) { 17539 data = params.prev; 17540 custom = true; 17541 } // set translate 17542 17543 t.forEach(function (value, index) { 17544 t[index] = "calc(".concat(value, "px + (").concat(getTranslateValue(data.translate[index]), " * ").concat(Math.abs(progress * multiplier), "))"); 17545 }); // set rotates 17546 17547 r.forEach(function (value, index) { 17548 r[index] = data.rotate[index] * Math.abs(progress * multiplier); 17549 }); 17550 $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length; 17551 var translateString = t.join(', '); 17552 var rotateString = "rotateX(".concat(r[0], "deg) rotateY(").concat(r[1], "deg) rotateZ(").concat(r[2], "deg)"); 17553 var scaleString = originalProgress < 0 ? "scale(".concat(1 + (1 - data.scale) * originalProgress * multiplier, ")") : "scale(".concat(1 - (1 - data.scale) * originalProgress * multiplier, ")"); 17554 var opacityString = originalProgress < 0 ? 1 + (1 - data.opacity) * originalProgress * multiplier : 1 - (1 - data.opacity) * originalProgress * multiplier; 17555 var transform = "translate3d(".concat(translateString, ") ").concat(rotateString, " ").concat(scaleString); // Set shadows 17556 17557 if (custom && data.shadow || !custom) { 17558 var $shadowEl = $slideEl.children('.swiper-slide-shadow'); 17559 if ($shadowEl.length === 0 && data.shadow) { 17560 $shadowEl = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params, $slideEl); 17561 } 17562 if ($shadowEl.length) { 17563 var shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress; 17564 $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1); 17565 } 17566 } 17567 var $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_2__["default"])(params, $slideEl); 17568 $targetEl.transform(transform).css({ 17569 opacity: opacityString 17570 }); 17571 if (data.origin) { 17572 $targetEl.css('transform-origin', data.origin); 17573 } 17574 }; 17575 for (var i = 0; i < slides.length; i += 1) { 17576 _loop(); 17577 } 17578 }; 17579 var setTransition = function setTransition(duration) { 17580 var transformEl = swiper.params.creativeEffect.transformEl; 17581 var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides; 17582 $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration); 17583 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_3__["default"])({ 17584 swiper: swiper, 17585 duration: duration, 17586 transformEl: transformEl, 17587 allSlides: true 17588 }); 17589 }; 17590 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 17591 effect: 'creative', 17592 swiper: swiper, 17593 on: on, 17594 setTranslate: setTranslate, 17595 setTransition: setTransition, 17596 perspective: function perspective() { 17597 return swiper.params.creativeEffect.perspective; 17598 }, 17599 overwriteParams: function overwriteParams() { 17600 return { 17601 watchSlidesProgress: true, 17602 virtualTranslate: !swiper.params.cssMode 17603 }; 17604 } 17605 }); 17606} 17607 17608/***/ }), 17609
vendor: 7,976 bytes, lines 17610-17793
17610/***/ "./node_modules/swiper/modules/effect-cube/effect-cube.js": 17611/*!****************************************************************!*\ 17612 !*** ./node_modules/swiper/modules/effect-cube/effect-cube.js ***! 17613 \****************************************************************/ 17614/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 17615 17616"use strict"; 17617__webpack_require__.r(__webpack_exports__); 17618/* harmony export */ __webpack_require__.d(__webpack_exports__, { 17619/* harmony export */ "default": function() { return /* binding */ EffectCube; } 17620/* harmony export */ }); 17621/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 17622/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 17623 17624 17625function EffectCube(_ref) { 17626 var swiper = _ref.swiper, 17627 extendParams = _ref.extendParams, 17628 on = _ref.on; 17629 extendParams({ 17630 cubeEffect: { 17631 slideShadows: true, 17632 shadow: true, 17633 shadowOffset: 20, 17634 shadowScale: 0.94 17635 } 17636 }); 17637 var createSlideShadows = function createSlideShadows($slideEl, progress, isHorizontal) { 17638 var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); 17639 var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); 17640 if (shadowBefore.length === 0) { 17641 shadowBefore = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])("<div class=\"swiper-slide-shadow-".concat(isHorizontal ? 'left' : 'top', "\"></div>")); 17642 $slideEl.append(shadowBefore); 17643 } 17644 if (shadowAfter.length === 0) { 17645 shadowAfter = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])("<div class=\"swiper-slide-shadow-".concat(isHorizontal ? 'right' : 'bottom', "\"></div>")); 17646 $slideEl.append(shadowAfter); 17647 } 17648 if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0); 17649 if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0); 17650 }; 17651 var recreateShadows = function recreateShadows() { 17652 // create new ones 17653 var isHorizontal = swiper.isHorizontal(); 17654 swiper.slides.each(function (slideEl) { 17655 var progress = Math.max(Math.min(slideEl.progress, 1), -1); 17656 createSlideShadows((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl), progress, isHorizontal); 17657 }); 17658 }; 17659 var setTranslate = function setTranslate() { 17660 var $el = swiper.$el, 17661 $wrapperEl = swiper.$wrapperEl, 17662 slides = swiper.slides, 17663 swiperWidth = swiper.width, 17664 swiperHeight = swiper.height, 17665 rtl = swiper.rtlTranslate, 17666 swiperSize = swiper.size, 17667 browser = swiper.browser; 17668 var params = swiper.params.cubeEffect; 17669 var isHorizontal = swiper.isHorizontal(); 17670 var isVirtual = swiper.virtual && swiper.params.virtual.enabled; 17671 var wrapperRotate = 0; 17672 var $cubeShadowEl; 17673 if (params.shadow) { 17674 if (isHorizontal) { 17675 $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow'); 17676 if ($cubeShadowEl.length === 0) { 17677 $cubeShadowEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])('<div class="swiper-cube-shadow"></div>'); 17678 $wrapperEl.append($cubeShadowEl); 17679 } 17680 $cubeShadowEl.css({ 17681 height: "".concat(swiperWidth, "px") 17682 }); 17683 } else { 17684 $cubeShadowEl = $el.find('.swiper-cube-shadow'); 17685 if ($cubeShadowEl.length === 0) { 17686 $cubeShadowEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])('<div class="swiper-cube-shadow"></div>'); 17687 $el.append($cubeShadowEl); 17688 } 17689 } 17690 } 17691 for (var i = 0; i < slides.length; i += 1) { 17692 var $slideEl = slides.eq(i); 17693 var slideIndex = i; 17694 if (isVirtual) { 17695 slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10); 17696 } 17697 var slideAngle = slideIndex * 90; 17698 var round = Math.floor(slideAngle / 360); 17699 if (rtl) { 17700 slideAngle = -slideAngle; 17701 round = Math.floor(-slideAngle / 360); 17702 } 17703 var progress = Math.max(Math.min($slideEl[0].progress, 1), -1); 17704 var tx = 0; 17705 var ty = 0; 17706 var tz = 0; 17707 if (slideIndex % 4 === 0) { 17708 tx = -round * 4 * swiperSize; 17709 tz = 0; 17710 } else if ((slideIndex - 1) % 4 === 0) { 17711 tx = 0; 17712 tz = -round * 4 * swiperSize; 17713 } else if ((slideIndex - 2) % 4 === 0) { 17714 tx = swiperSize + round * 4 * swiperSize; 17715 tz = swiperSize; 17716 } else if ((slideIndex - 3) % 4 === 0) { 17717 tx = -swiperSize; 17718 tz = 3 * swiperSize + swiperSize * 4 * round; 17719 } 17720 if (rtl) { 17721 tx = -tx; 17722 } 17723 if (!isHorizontal) { 17724 ty = tx; 17725 tx = 0; 17726 } 17727 var transform = "rotateX(".concat(isHorizontal ? 0 : -slideAngle, "deg) rotateY(").concat(isHorizontal ? slideAngle : 0, "deg) translate3d(").concat(tx, "px, ").concat(ty, "px, ").concat(tz, "px)"); 17728 if (progress <= 1 && progress > -1) { 17729 wrapperRotate = slideIndex * 90 + progress * 90; 17730 if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90; 17731 } 17732 $slideEl.transform(transform); 17733 if (params.slideShadows) { 17734 createSlideShadows($slideEl, progress, isHorizontal); 17735 } 17736 } 17737 $wrapperEl.css({ 17738 '-webkit-transform-origin': "50% 50% -".concat(swiperSize / 2, "px"), 17739 'transform-origin': "50% 50% -".concat(swiperSize / 2, "px") 17740 }); 17741 if (params.shadow) { 17742 if (isHorizontal) { 17743 $cubeShadowEl.transform("translate3d(0px, ".concat(swiperWidth / 2 + params.shadowOffset, "px, ").concat(-swiperWidth / 2, "px) rotateX(90deg) rotateZ(0deg) scale(").concat(params.shadowScale, ")")); 17744 } else { 17745 var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90; 17746 var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2); 17747 var scale1 = params.shadowScale; 17748 var scale2 = params.shadowScale / multiplier; 17749 var offset = params.shadowOffset; 17750 $cubeShadowEl.transform("scale3d(".concat(scale1, ", 1, ").concat(scale2, ") translate3d(0px, ").concat(swiperHeight / 2 + offset, "px, ").concat(-swiperHeight / 2 / scale2, "px) rotateX(-90deg)")); 17751 } 17752 } 17753 var zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0; 17754 $wrapperEl.transform("translate3d(0px,0,".concat(zFactor, "px) rotateX(").concat(swiper.isHorizontal() ? 0 : wrapperRotate, "deg) rotateY(").concat(swiper.isHorizontal() ? -wrapperRotate : 0, "deg)")); 17755 $wrapperEl[0].style.setProperty('--swiper-cube-translate-z', "".concat(zFactor, "px")); 17756 }; 17757 var setTransition = function setTransition(duration) { 17758 var $el = swiper.$el, 17759 slides = swiper.slides; 17760 slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration); 17761 if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { 17762 $el.find('.swiper-cube-shadow').transition(duration); 17763 } 17764 }; 17765 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_1__["default"])({ 17766 effect: 'cube', 17767 swiper: swiper, 17768 on: on, 17769 setTranslate: setTranslate, 17770 setTransition: setTransition, 17771 recreateShadows: recreateShadows, 17772 getEffectParams: function getEffectParams() { 17773 return swiper.params.cubeEffect; 17774 }, 17775 perspective: function perspective() { 17776 return true; 17777 }, 17778 overwriteParams: function overwriteParams() { 17779 return { 17780 slidesPerView: 1, 17781 slidesPerGroup: 1, 17782 watchSlidesProgress: true, 17783 resistanceRatio: 0, 17784 spaceBetween: 0, 17785 centeredSlides: false, 17786 virtualTranslate: true 17787 }; 17788 } 17789 }); 17790} 17791 17792/***/ }), 17793
vendor: 3,198 bytes, lines 17794-17871
17794/***/ "./node_modules/swiper/modules/effect-fade/effect-fade.js": 17795/*!****************************************************************!*\ 17796 !*** ./node_modules/swiper/modules/effect-fade/effect-fade.js ***! 17797 \****************************************************************/ 17798/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 17799 17800"use strict"; 17801__webpack_require__.r(__webpack_exports__); 17802/* harmony export */ __webpack_require__.d(__webpack_exports__, { 17803/* harmony export */ "default": function() { return /* binding */ EffectFade; } 17804/* harmony export */ }); 17805/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 17806/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 17807/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js"); 17808 17809 17810 17811function EffectFade(_ref) { 17812 var swiper = _ref.swiper, 17813 extendParams = _ref.extendParams, 17814 on = _ref.on; 17815 extendParams({ 17816 fadeEffect: { 17817 crossFade: false, 17818 transformEl: null 17819 } 17820 }); 17821 var setTranslate = function setTranslate() { 17822 var slides = swiper.slides; 17823 var params = swiper.params.fadeEffect; 17824 for (var i = 0; i < slides.length; i += 1) { 17825 var $slideEl = swiper.slides.eq(i); 17826 var offset = $slideEl[0].swiperSlideOffset; 17827 var tx = -offset; 17828 if (!swiper.params.virtualTranslate) tx -= swiper.translate; 17829 var ty = 0; 17830 if (!swiper.isHorizontal()) { 17831 ty = tx; 17832 tx = 0; 17833 } 17834 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); 17835 var $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params, $slideEl); 17836 $targetEl.css({ 17837 opacity: slideOpacity 17838 }).transform("translate3d(".concat(tx, "px, ").concat(ty, "px, 0px)")); 17839 } 17840 }; 17841 var setTransition = function setTransition(duration) { 17842 var transformEl = swiper.params.fadeEffect.transformEl; 17843 var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides; 17844 $transitionElements.transition(duration); 17845 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_2__["default"])({ 17846 swiper: swiper, 17847 duration: duration, 17848 transformEl: transformEl, 17849 allSlides: true 17850 }); 17851 }; 17852 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_0__["default"])({ 17853 effect: 'fade', 17854 swiper: swiper, 17855 on: on, 17856 setTranslate: setTranslate, 17857 setTransition: setTransition, 17858 overwriteParams: function overwriteParams() { 17859 return { 17860 slidesPerView: 1, 17861 slidesPerGroup: 1, 17862 watchSlidesProgress: true, 17863 spaceBetween: 0, 17864 virtualTranslate: !swiper.params.cssMode 17865 }; 17866 } 17867 }); 17868} 17869 17870/***/ }), 17871
vendor: 5,730 bytes, lines 17872-17997
17872/***/ "./node_modules/swiper/modules/effect-flip/effect-flip.js": 17873/*!****************************************************************!*\ 17874 !*** ./node_modules/swiper/modules/effect-flip/effect-flip.js ***! 17875 \****************************************************************/ 17876/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 17877 17878"use strict"; 17879__webpack_require__.r(__webpack_exports__); 17880/* harmony export */ __webpack_require__.d(__webpack_exports__, { 17881/* harmony export */ "default": function() { return /* binding */ EffectFlip; } 17882/* harmony export */ }); 17883/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 17884/* harmony import */ var _shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/create-shadow.js */ "./node_modules/swiper/shared/create-shadow.js"); 17885/* harmony import */ var _shared_effect_init_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/effect-init.js */ "./node_modules/swiper/shared/effect-init.js"); 17886/* harmony import */ var _shared_effect_target_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/effect-target.js */ "./node_modules/swiper/shared/effect-target.js"); 17887/* harmony import */ var _shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../shared/effect-virtual-transition-end.js */ "./node_modules/swiper/shared/effect-virtual-transition-end.js"); 17888 17889 17890 17891 17892 17893function EffectFlip(_ref) { 17894 var swiper = _ref.swiper, 17895 extendParams = _ref.extendParams, 17896 on = _ref.on; 17897 extendParams({ 17898 flipEffect: { 17899 slideShadows: true, 17900 limitRotation: true, 17901 transformEl: null 17902 } 17903 }); 17904 var createSlideShadows = function createSlideShadows($slideEl, progress, params) { 17905 var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); 17906 var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); 17907 if (shadowBefore.length === 0) { 17908 shadowBefore = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top'); 17909 } 17910 if (shadowAfter.length === 0) { 17911 shadowAfter = (0,_shared_create_shadow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom'); 17912 } 17913 if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0); 17914 if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0); 17915 }; 17916 var recreateShadows = function recreateShadows() { 17917 // Set shadows 17918 var params = swiper.params.flipEffect; 17919 swiper.slides.each(function (slideEl) { 17920 var $slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl); 17921 var progress = $slideEl[0].progress; 17922 if (swiper.params.flipEffect.limitRotation) { 17923 progress = Math.max(Math.min(slideEl.progress, 1), -1); 17924 } 17925 createSlideShadows($slideEl, progress, params); 17926 }); 17927 }; 17928 var setTranslate = function setTranslate() { 17929 var slides = swiper.slides, 17930 rtl = swiper.rtlTranslate; 17931 var params = swiper.params.flipEffect; 17932 for (var i = 0; i < slides.length; i += 1) { 17933 var $slideEl = slides.eq(i); 17934 var progress = $slideEl[0].progress; 17935 if (swiper.params.flipEffect.limitRotation) { 17936 progress = Math.max(Math.min($slideEl[0].progress, 1), -1); 17937 } 17938 var offset = $slideEl[0].swiperSlideOffset; 17939 var rotate = -180 * progress; 17940 var rotateY = rotate; 17941 var rotateX = 0; 17942 var tx = swiper.params.cssMode ? -offset - swiper.translate : -offset; 17943 var ty = 0; 17944 if (!swiper.isHorizontal()) { 17945 ty = tx; 17946 tx = 0; 17947 rotateX = -rotateY; 17948 rotateY = 0; 17949 } else if (rtl) { 17950 rotateY = -rotateY; 17951 } 17952 $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length; 17953 if (params.slideShadows) { 17954 createSlideShadows($slideEl, progress, params); 17955 } 17956 var transform = "translate3d(".concat(tx, "px, ").concat(ty, "px, 0px) rotateX(").concat(rotateX, "deg) rotateY(").concat(rotateY, "deg)"); 17957 var $targetEl = (0,_shared_effect_target_js__WEBPACK_IMPORTED_MODULE_3__["default"])(params, $slideEl); 17958 $targetEl.transform(transform); 17959 } 17960 }; 17961 var setTransition = function setTransition(duration) { 17962 var transformEl = swiper.params.flipEffect.transformEl; 17963 var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides; 17964 $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration); 17965 (0,_shared_effect_virtual_transition_end_js__WEBPACK_IMPORTED_MODULE_4__["default"])({ 17966 swiper: swiper, 17967 duration: duration, 17968 transformEl: transformEl 17969 }); 17970 }; 17971 (0,_shared_effect_init_js__WEBPACK_IMPORTED_MODULE_2__["default"])({ 17972 effect: 'flip', 17973 swiper: swiper, 17974 on: on, 17975 setTranslate: setTranslate, 17976 setTransition: setTransition, 17977 recreateShadows: recreateShadows, 17978 getEffectParams: function getEffectParams() { 17979 return swiper.params.flipEffect; 17980 }, 17981 perspective: function perspective() { 17982 return true; 17983 }, 17984 overwriteParams: function overwriteParams() { 17985 return { 17986 slidesPerView: 1, 17987 slidesPerGroup: 1, 17988 watchSlidesProgress: true, 17989 spaceBetween: 0, 17990 virtualTranslate: !swiper.params.cssMode 17991 }; 17992 } 17993 }); 17994} 17995 17996/***/ }), 17997
vendor: 9,137 bytes, lines 17998-18234
17998/***/ "./node_modules/swiper/modules/free-mode/free-mode.js": 17999/*!************************************************************!*\ 18000 !*** ./node_modules/swiper/modules/free-mode/free-mode.js ***! 18001 \************************************************************/ 18002/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 18003 18004"use strict"; 18005__webpack_require__.r(__webpack_exports__); 18006/* harmony export */ __webpack_require__.d(__webpack_exports__, { 18007/* harmony export */ "default": function() { return /* binding */ freeMode; } 18008/* harmony export */ }); 18009/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 18010 18011function freeMode(_ref) { 18012 var swiper = _ref.swiper, 18013 extendParams = _ref.extendParams, 18014 emit = _ref.emit, 18015 once = _ref.once; 18016 extendParams({ 18017 freeMode: { 18018 enabled: false, 18019 momentum: true, 18020 momentumRatio: 1, 18021 momentumBounce: true, 18022 momentumBounceRatio: 1, 18023 momentumVelocityRatio: 1, 18024 sticky: false, 18025 minimumVelocity: 0.02 18026 } 18027 }); 18028 function onTouchStart() { 18029 var translate = swiper.getTranslate(); 18030 swiper.setTranslate(translate); 18031 swiper.setTransition(0); 18032 swiper.touchEventsData.velocities.length = 0; 18033 swiper.freeMode.onTouchEnd({ 18034 currentPos: swiper.rtl ? swiper.translate : -swiper.translate 18035 }); 18036 } 18037 function onTouchMove() { 18038 var data = swiper.touchEventsData, 18039 touches = swiper.touches; // Velocity 18040 18041 if (data.velocities.length === 0) { 18042 data.velocities.push({ 18043 position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], 18044 time: data.touchStartTime 18045 }); 18046 } 18047 data.velocities.push({ 18048 position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], 18049 time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)() 18050 }); 18051 } 18052 function onTouchEnd(_ref2) { 18053 var currentPos = _ref2.currentPos; 18054 var params = swiper.params, 18055 $wrapperEl = swiper.$wrapperEl, 18056 rtl = swiper.rtlTranslate, 18057 snapGrid = swiper.snapGrid, 18058 data = swiper.touchEventsData; // Time diff 18059 18060 var touchEndTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)(); 18061 var timeDiff = touchEndTime - data.touchStartTime; 18062 if (currentPos < -swiper.minTranslate()) { 18063 swiper.slideTo(swiper.activeIndex); 18064 return; 18065 } 18066 if (currentPos > -swiper.maxTranslate()) { 18067 if (swiper.slides.length < snapGrid.length) { 18068 swiper.slideTo(snapGrid.length - 1); 18069 } else { 18070 swiper.slideTo(swiper.slides.length - 1); 18071 } 18072 return; 18073 } 18074 if (params.freeMode.momentum) { 18075 if (data.velocities.length > 1) { 18076 var lastMoveEvent = data.velocities.pop(); 18077 var velocityEvent = data.velocities.pop(); 18078 var distance = lastMoveEvent.position - velocityEvent.position; 18079 var time = lastMoveEvent.time - velocityEvent.time; 18080 swiper.velocity = distance / time; 18081 swiper.velocity /= 2; 18082 if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) { 18083 swiper.velocity = 0; 18084 } // this implies that the user stopped moving a finger then released. 18085 // There would be no events with distance zero, so the last event is stale. 18086 18087 if (time > 150 || (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.now)() - lastMoveEvent.time > 300) { 18088 swiper.velocity = 0; 18089 } 18090 } else { 18091 swiper.velocity = 0; 18092 } 18093 swiper.velocity *= params.freeMode.momentumVelocityRatio; 18094 data.velocities.length = 0; 18095 var momentumDuration = 1000 * params.freeMode.momentumRatio; 18096 var momentumDistance = swiper.velocity * momentumDuration; 18097 var newPosition = swiper.translate + momentumDistance; 18098 if (rtl) newPosition = -newPosition; 18099 var doBounce = false; 18100 var afterBouncePosition; 18101 var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio; 18102 var needsLoopFix; 18103 if (newPosition < swiper.maxTranslate()) { 18104 if (params.freeMode.momentumBounce) { 18105 if (newPosition + swiper.maxTranslate() < -bounceAmount) { 18106 newPosition = swiper.maxTranslate() - bounceAmount; 18107 } 18108 afterBouncePosition = swiper.maxTranslate(); 18109 doBounce = true; 18110 data.allowMomentumBounce = true; 18111 } else { 18112 newPosition = swiper.maxTranslate(); 18113 } 18114 if (params.loop && params.centeredSlides) needsLoopFix = true; 18115 } else if (newPosition > swiper.minTranslate()) { 18116 if (params.freeMode.momentumBounce) { 18117 if (newPosition - swiper.minTranslate() > bounceAmount) { 18118 newPosition = swiper.minTranslate() + bounceAmount; 18119 } 18120 afterBouncePosition = swiper.minTranslate(); 18121 doBounce = true; 18122 data.allowMomentumBounce = true; 18123 } else { 18124 newPosition = swiper.minTranslate(); 18125 } 18126 if (params.loop && params.centeredSlides) needsLoopFix = true; 18127 } else if (params.freeMode.sticky) { 18128 var nextSlide; 18129 for (var j = 0; j < snapGrid.length; j += 1) { 18130 if (snapGrid[j] > -newPosition) { 18131 nextSlide = j; 18132 break; 18133 } 18134 } 18135 if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { 18136 newPosition = snapGrid[nextSlide]; 18137 } else { 18138 newPosition = snapGrid[nextSlide - 1]; 18139 } 18140 newPosition = -newPosition; 18141 } 18142 if (needsLoopFix) { 18143 once('transitionEnd', function () { 18144 swiper.loopFix(); 18145 }); 18146 } // Fix duration 18147 18148 if (swiper.velocity !== 0) { 18149 if (rtl) { 18150 momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); 18151 } else { 18152 momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); 18153 } 18154 if (params.freeMode.sticky) { 18155 // If freeMode.sticky is active and the user ends a swipe with a slow-velocity 18156 // event, then durations can be 20+ seconds to slide one (or zero!) slides. 18157 // It's easy to see this when simulating touch with mouse events. To fix this, 18158 // limit single-slide swipes to the default slide duration. This also has the 18159 // nice side effect of matching slide speed if the user stopped moving before 18160 // lifting finger or mouse vs. moving slowly before lifting the finger/mouse. 18161 // For faster swipes, also apply limits (albeit higher ones). 18162 var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate); 18163 var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex]; 18164 if (moveDistance < currentSlideSize) { 18165 momentumDuration = params.speed; 18166 } else if (moveDistance < 2 * currentSlideSize) { 18167 momentumDuration = params.speed * 1.5; 18168 } else { 18169 momentumDuration = params.speed * 2.5; 18170 } 18171 } 18172 } else if (params.freeMode.sticky) { 18173 swiper.slideToClosest(); 18174 return; 18175 } 18176 if (params.freeMode.momentumBounce && doBounce) { 18177 swiper.updateProgress(afterBouncePosition); 18178 swiper.setTransition(momentumDuration); 18179 swiper.setTranslate(newPosition); 18180 swiper.transitionStart(true, swiper.swipeDirection); 18181 swiper.animating = true; 18182 $wrapperEl.transitionEnd(function () { 18183 if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return; 18184 emit('momentumBounce'); 18185 swiper.setTransition(params.speed); 18186 setTimeout(function () { 18187 swiper.setTranslate(afterBouncePosition); 18188 $wrapperEl.transitionEnd(function () { 18189 if (!swiper || swiper.destroyed) return; 18190 swiper.transitionEnd(); 18191 }); 18192 }, 0); 18193 }); 18194 } else if (swiper.velocity) { 18195 emit('_freeModeNoMomentumRelease'); 18196 swiper.updateProgress(newPosition); 18197 swiper.setTransition(momentumDuration); 18198 swiper.setTranslate(newPosition); 18199 swiper.transitionStart(true, swiper.swipeDirection); 18200 if (!swiper.animating) { 18201 swiper.animating = true; 18202 $wrapperEl.transitionEnd(function () { 18203 if (!swiper || swiper.destroyed) return; 18204 swiper.transitionEnd(); 18205 }); 18206 } 18207 } else { 18208 swiper.updateProgress(newPosition); 18209 } 18210 swiper.updateActiveIndex(); 18211 swiper.updateSlidesClasses(); 18212 } else if (params.freeMode.sticky) { 18213 swiper.slideToClosest(); 18214 return; 18215 } else if (params.freeMode) { 18216 emit('_freeModeNoMomentumRelease'); 18217 } 18218 if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) { 18219 swiper.updateProgress(); 18220 swiper.updateActiveIndex(); 18221 swiper.updateSlidesClasses(); 18222 } 18223 } 18224 Object.assign(swiper, { 18225 freeMode: { 18226 onTouchStart: onTouchStart, 18227 onTouchMove: onTouchMove, 18228 onTouchEnd: onTouchEnd 18229 } 18230 }); 18231} 18232 18233/***/ }), 18234
vendor: 5,204 bytes, lines 18235-18344
18235/***/ "./node_modules/swiper/modules/grid/grid.js": 18236/*!**************************************************!*\ 18237 !*** ./node_modules/swiper/modules/grid/grid.js ***! 18238 \**************************************************/ 18239/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 18240 18241"use strict"; 18242__webpack_require__.r(__webpack_exports__); 18243/* harmony export */ __webpack_require__.d(__webpack_exports__, { 18244/* harmony export */ "default": function() { return /* binding */ Grid; } 18245/* harmony export */ }); 18246function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 18247function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } 18248function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } 18249function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } 18250function Grid(_ref) { 18251 var swiper = _ref.swiper, 18252 extendParams = _ref.extendParams; 18253 extendParams({ 18254 grid: { 18255 rows: 1, 18256 fill: 'column' 18257 } 18258 }); 18259 var slidesNumberEvenToRows; 18260 var slidesPerRow; 18261 var numFullColumns; 18262 var initSlides = function initSlides(slidesLength) { 18263 var slidesPerView = swiper.params.slidesPerView; 18264 var _swiper$params$grid = swiper.params.grid, 18265 rows = _swiper$params$grid.rows, 18266 fill = _swiper$params$grid.fill; 18267 slidesPerRow = slidesNumberEvenToRows / rows; 18268 numFullColumns = Math.floor(slidesLength / rows); 18269 if (Math.floor(slidesLength / rows) === slidesLength / rows) { 18270 slidesNumberEvenToRows = slidesLength; 18271 } else { 18272 slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows; 18273 } 18274 if (slidesPerView !== 'auto' && fill === 'row') { 18275 slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows); 18276 } 18277 }; 18278 var updateSlide = function updateSlide(i, slide, slidesLength, getDirectionLabel) { 18279 var _swiper$params = swiper.params, 18280 slidesPerGroup = _swiper$params.slidesPerGroup, 18281 spaceBetween = _swiper$params.spaceBetween; 18282 var _swiper$params$grid2 = swiper.params.grid, 18283 rows = _swiper$params$grid2.rows, 18284 fill = _swiper$params$grid2.fill; // Set slides order 18285 18286 var newSlideOrderIndex; 18287 var column; 18288 var row; 18289 if (fill === 'row' && slidesPerGroup > 1) { 18290 var groupIndex = Math.floor(i / (slidesPerGroup * rows)); 18291 var slideIndexInGroup = i - rows * slidesPerGroup * groupIndex; 18292 var columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup); 18293 row = Math.floor(slideIndexInGroup / columnsInGroup); 18294 column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup; 18295 newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows; 18296 slide.css({ 18297 '-webkit-order': newSlideOrderIndex, 18298 order: newSlideOrderIndex 18299 }); 18300 } else if (fill === 'column') { 18301 column = Math.floor(i / rows); 18302 row = i - column * rows; 18303 if (column > numFullColumns || column === numFullColumns && row === rows - 1) { 18304 row += 1; 18305 if (row >= rows) { 18306 row = 0; 18307 column += 1; 18308 } 18309 } 18310 } else { 18311 row = Math.floor(i / slidesPerRow); 18312 column = i - row * slidesPerRow; 18313 } 18314 slide.css(getDirectionLabel('margin-top'), row !== 0 ? spaceBetween && "".concat(spaceBetween, "px") : ''); 18315 }; 18316 var updateWrapperSize = function updateWrapperSize(slideSize, snapGrid, getDirectionLabel) { 18317 var _swiper$params2 = swiper.params, 18318 spaceBetween = _swiper$params2.spaceBetween, 18319 centeredSlides = _swiper$params2.centeredSlides, 18320 roundLengths = _swiper$params2.roundLengths; 18321 var rows = swiper.params.grid.rows; 18322 swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows; 18323 swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween; 18324 swiper.$wrapperEl.css(_defineProperty({}, getDirectionLabel('width'), "".concat(swiper.virtualSize + spaceBetween, "px"))); 18325 if (centeredSlides) { 18326 snapGrid.splice(0, snapGrid.length); 18327 var newSlidesGrid = []; 18328 for (var i = 0; i < snapGrid.length; i += 1) { 18329 var slidesGridItem = snapGrid[i]; 18330 if (roundLengths) slidesGridItem = Math.floor(slidesGridItem); 18331 if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem); 18332 } 18333 snapGrid.push.apply(snapGrid, newSlidesGrid); 18334 } 18335 }; 18336 swiper.grid = { 18337 initSlides: initSlides, 18338 updateSlide: updateSlide, 18339 updateWrapperSize: updateWrapperSize 18340 }; 18341} 18342 18343/***/ }), 18344
vendor: 3,946 bytes, lines 18345-18444
18345/***/ "./node_modules/swiper/modules/hash-navigation/hash-navigation.js": 18346/*!************************************************************************!*\ 18347 !*** ./node_modules/swiper/modules/hash-navigation/hash-navigation.js ***! 18348 \************************************************************************/ 18349/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 18350 18351"use strict"; 18352__webpack_require__.r(__webpack_exports__); 18353/* harmony export */ __webpack_require__.d(__webpack_exports__, { 18354/* harmony export */ "default": function() { return /* binding */ HashNavigation; } 18355/* harmony export */ }); 18356/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 18357/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 18358 18359 18360function HashNavigation(_ref) { 18361 var swiper = _ref.swiper, 18362 extendParams = _ref.extendParams, 18363 emit = _ref.emit, 18364 on = _ref.on; 18365 var initialized = false; 18366 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 18367 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 18368 extendParams({ 18369 hashNavigation: { 18370 enabled: false, 18371 replaceState: false, 18372 watchState: false 18373 } 18374 }); 18375 var onHashChange = function onHashChange() { 18376 emit('hashChange'); 18377 var newHash = document.location.hash.replace('#', ''); 18378 var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash'); 18379 if (newHash !== activeSlideHash) { 18380 var newIndex = swiper.$wrapperEl.children(".".concat(swiper.params.slideClass, "[data-hash=\"").concat(newHash, "\"]")).index(); 18381 if (typeof newIndex === 'undefined') return; 18382 swiper.slideTo(newIndex); 18383 } 18384 }; 18385 var setHash = function setHash() { 18386 if (!initialized || !swiper.params.hashNavigation.enabled) return; 18387 if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) { 18388 window.history.replaceState(null, null, "#".concat(swiper.slides.eq(swiper.activeIndex).attr('data-hash')) || 0); 18389 emit('hashSet'); 18390 } else { 18391 var slide = swiper.slides.eq(swiper.activeIndex); 18392 var hash = slide.attr('data-hash') || slide.attr('data-history'); 18393 document.location.hash = hash || ''; 18394 emit('hashSet'); 18395 } 18396 }; 18397 var init = function init() { 18398 if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return; 18399 initialized = true; 18400 var hash = document.location.hash.replace('#', ''); 18401 if (hash) { 18402 var speed = 0; 18403 for (var i = 0, length = swiper.slides.length; i < length; i += 1) { 18404 var slide = swiper.slides.eq(i); 18405 var slideHash = slide.attr('data-hash') || slide.attr('data-history'); 18406 if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) { 18407 var index = slide.index(); 18408 swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true); 18409 } 18410 } 18411 } 18412 if (swiper.params.hashNavigation.watchState) { 18413 (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(window).on('hashchange', onHashChange); 18414 } 18415 }; 18416 var destroy = function destroy() { 18417 if (swiper.params.hashNavigation.watchState) { 18418 (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(window).off('hashchange', onHashChange); 18419 } 18420 }; 18421 on('init', function () { 18422 if (swiper.params.hashNavigation.enabled) { 18423 init(); 18424 } 18425 }); 18426 on('destroy', function () { 18427 if (swiper.params.hashNavigation.enabled) { 18428 destroy(); 18429 } 18430 }); 18431 on('transitionEnd _freeModeNoMomentumRelease', function () { 18432 if (initialized) { 18433 setHash(); 18434 } 18435 }); 18436 on('slideChange', function () { 18437 if (initialized && swiper.params.cssMode) { 18438 setHash(); 18439 } 18440 }); 18441} 18442 18443/***/ }), 18444
vendor: 5,065 bytes, lines 18445-18593
18445/***/ "./node_modules/swiper/modules/history/history.js": 18446/*!********************************************************!*\ 18447 !*** ./node_modules/swiper/modules/history/history.js ***! 18448 \********************************************************/ 18449/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 18450 18451"use strict"; 18452__webpack_require__.r(__webpack_exports__); 18453/* harmony export */ __webpack_require__.d(__webpack_exports__, { 18454/* harmony export */ "default": function() { return /* binding */ History; } 18455/* harmony export */ }); 18456/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 18457 18458function History(_ref) { 18459 var swiper = _ref.swiper, 18460 extendParams = _ref.extendParams, 18461 on = _ref.on; 18462 extendParams({ 18463 history: { 18464 enabled: false, 18465 root: '', 18466 replaceState: false, 18467 key: 'slides', 18468 keepQuery: false 18469 } 18470 }); 18471 var initialized = false; 18472 var paths = {}; 18473 var slugify = function slugify(text) { 18474 return text.toString().replace(/\s+/g, '-').replace(/[^\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, ''); 18475 }; 18476 var getPathValues = function getPathValues(urlOverride) { 18477 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 18478 var location; 18479 if (urlOverride) { 18480 location = new URL(urlOverride); 18481 } else { 18482 location = window.location; 18483 } 18484 var pathArray = location.pathname.slice(1).split('/').filter(function (part) { 18485 return part !== ''; 18486 }); 18487 var total = pathArray.length; 18488 var key = pathArray[total - 2]; 18489 var value = pathArray[total - 1]; 18490 return { 18491 key: key, 18492 value: value 18493 }; 18494 }; 18495 var setHistory = function setHistory(key, index) { 18496 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 18497 if (!initialized || !swiper.params.history.enabled) return; 18498 var location; 18499 if (swiper.params.url) { 18500 location = new URL(swiper.params.url); 18501 } else { 18502 location = window.location; 18503 } 18504 var slide = swiper.slides.eq(index); 18505 var value = slugify(slide.attr('data-history')); 18506 if (swiper.params.history.root.length > 0) { 18507 var root = swiper.params.history.root; 18508 if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1); 18509 value = "".concat(root, "/").concat(key, "/").concat(value); 18510 } else if (!location.pathname.includes(key)) { 18511 value = "".concat(key, "/").concat(value); 18512 } 18513 if (swiper.params.history.keepQuery) { 18514 value += location.search; 18515 } 18516 var currentState = window.history.state; 18517 if (currentState && currentState.value === value) { 18518 return; 18519 } 18520 if (swiper.params.history.replaceState) { 18521 window.history.replaceState({ 18522 value: value 18523 }, null, value); 18524 } else { 18525 window.history.pushState({ 18526 value: value 18527 }, null, value); 18528 } 18529 }; 18530 var scrollToSlide = function scrollToSlide(speed, value, runCallbacks) { 18531 if (value) { 18532 for (var i = 0, length = swiper.slides.length; i < length; i += 1) { 18533 var slide = swiper.slides.eq(i); 18534 var slideHistory = slugify(slide.attr('data-history')); 18535 if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) { 18536 var index = slide.index(); 18537 swiper.slideTo(index, speed, runCallbacks); 18538 } 18539 } 18540 } else { 18541 swiper.slideTo(0, speed, runCallbacks); 18542 } 18543 }; 18544 var setHistoryPopState = function setHistoryPopState() { 18545 paths = getPathValues(swiper.params.url); 18546 scrollToSlide(swiper.params.speed, paths.value, false); 18547 }; 18548 var init = function init() { 18549 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 18550 if (!swiper.params.history) return; 18551 if (!window.history || !window.history.pushState) { 18552 swiper.params.history.enabled = false; 18553 swiper.params.hashNavigation.enabled = true; 18554 return; 18555 } 18556 initialized = true; 18557 paths = getPathValues(swiper.params.url); 18558 if (!paths.key && !paths.value) return; 18559 scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit); 18560 if (!swiper.params.history.replaceState) { 18561 window.addEventListener('popstate', setHistoryPopState); 18562 } 18563 }; 18564 var destroy = function destroy() { 18565 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 18566 if (!swiper.params.history.replaceState) { 18567 window.removeEventListener('popstate', setHistoryPopState); 18568 } 18569 }; 18570 on('init', function () { 18571 if (swiper.params.history.enabled) { 18572 init(); 18573 } 18574 }); 18575 on('destroy', function () { 18576 if (swiper.params.history.enabled) { 18577 destroy(); 18578 } 18579 }); 18580 on('transitionEnd _freeModeNoMomentumRelease', function () { 18581 if (initialized) { 18582 setHistory(swiper.params.history.key, swiper.activeIndex); 18583 } 18584 }); 18585 on('slideChange', function () { 18586 if (initialized && swiper.params.cssMode) { 18587 setHistory(swiper.params.history.key, swiper.activeIndex); 18588 } 18589 }); 18590} 18591 18592/***/ }), 18593
vendor: 5,254 bytes, lines 18594-18721
18594/***/ "./node_modules/swiper/modules/keyboard/keyboard.js": 18595/*!**********************************************************!*\ 18596 !*** ./node_modules/swiper/modules/keyboard/keyboard.js ***! 18597 \**********************************************************/ 18598/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 18599 18600"use strict"; 18601__webpack_require__.r(__webpack_exports__); 18602/* harmony export */ __webpack_require__.d(__webpack_exports__, { 18603/* harmony export */ "default": function() { return /* binding */ Keyboard; } 18604/* harmony export */ }); 18605/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 18606/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 18607/* eslint-disable consistent-return */ 18608 18609 18610function Keyboard(_ref) { 18611 var swiper = _ref.swiper, 18612 extendParams = _ref.extendParams, 18613 on = _ref.on, 18614 emit = _ref.emit; 18615 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 18616 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 18617 swiper.keyboard = { 18618 enabled: false 18619 }; 18620 extendParams({ 18621 keyboard: { 18622 enabled: false, 18623 onlyInViewport: true, 18624 pageUpDown: true 18625 } 18626 }); 18627 function handle(event) { 18628 if (!swiper.enabled) return; 18629 var rtl = swiper.rtlTranslate; 18630 var e = event; 18631 if (e.originalEvent) e = e.originalEvent; // jquery fix 18632 18633 var kc = e.keyCode || e.charCode; 18634 var pageUpDown = swiper.params.keyboard.pageUpDown; 18635 var isPageUp = pageUpDown && kc === 33; 18636 var isPageDown = pageUpDown && kc === 34; 18637 var isArrowLeft = kc === 37; 18638 var isArrowRight = kc === 39; 18639 var isArrowUp = kc === 38; 18640 var isArrowDown = kc === 40; // Directions locks 18641 18642 if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) { 18643 return false; 18644 } 18645 if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) { 18646 return false; 18647 } 18648 if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { 18649 return undefined; 18650 } 18651 if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) { 18652 return undefined; 18653 } 18654 if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) { 18655 var inView = false; // Check that swiper should be inside of visible area of window 18656 18657 if (swiper.$el.parents(".".concat(swiper.params.slideClass)).length > 0 && swiper.$el.parents(".".concat(swiper.params.slideActiveClass)).length === 0) { 18658 return undefined; 18659 } 18660 var $el = swiper.$el; 18661 var swiperWidth = $el[0].clientWidth; 18662 var swiperHeight = $el[0].clientHeight; 18663 var windowWidth = window.innerWidth; 18664 var windowHeight = window.innerHeight; 18665 var swiperOffset = swiper.$el.offset(); 18666 if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft; 18667 var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]]; 18668 for (var i = 0; i < swiperCoord.length; i += 1) { 18669 var point = swiperCoord[i]; 18670 if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) { 18671 if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line 18672 18673 inView = true; 18674 } 18675 } 18676 if (!inView) return undefined; 18677 } 18678 if (swiper.isHorizontal()) { 18679 if (isPageUp || isPageDown || isArrowLeft || isArrowRight) { 18680 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 18681 } 18682 if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext(); 18683 if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev(); 18684 } else { 18685 if (isPageUp || isPageDown || isArrowUp || isArrowDown) { 18686 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 18687 } 18688 if (isPageDown || isArrowDown) swiper.slideNext(); 18689 if (isPageUp || isArrowUp) swiper.slidePrev(); 18690 } 18691 emit('keyPress', kc); 18692 return undefined; 18693 } 18694 function enable() { 18695 if (swiper.keyboard.enabled) return; 18696 (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(document).on('keydown', handle); 18697 swiper.keyboard.enabled = true; 18698 } 18699 function disable() { 18700 if (!swiper.keyboard.enabled) return; 18701 (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(document).off('keydown', handle); 18702 swiper.keyboard.enabled = false; 18703 } 18704 on('init', function () { 18705 if (swiper.params.keyboard.enabled) { 18706 enable(); 18707 } 18708 }); 18709 on('destroy', function () { 18710 if (swiper.keyboard.enabled) { 18711 disable(); 18712 } 18713 }); 18714 Object.assign(swiper.keyboard, { 18715 enable: enable, 18716 disable: disable 18717 }); 18718} 18719 18720/***/ }), 18721
vendor: 11,474 bytes, lines 18722-18989
18722/***/ "./node_modules/swiper/modules/lazy/lazy.js": 18723/*!**************************************************!*\ 18724 !*** ./node_modules/swiper/modules/lazy/lazy.js ***! 18725 \**************************************************/ 18726/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 18727 18728"use strict"; 18729__webpack_require__.r(__webpack_exports__); 18730/* harmony export */ __webpack_require__.d(__webpack_exports__, { 18731/* harmony export */ "default": function() { return /* binding */ Lazy; } 18732/* harmony export */ }); 18733/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 18734/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 18735 18736 18737function Lazy(_ref) { 18738 var swiper = _ref.swiper, 18739 extendParams = _ref.extendParams, 18740 on = _ref.on, 18741 emit = _ref.emit; 18742 extendParams({ 18743 lazy: { 18744 checkInView: false, 18745 enabled: false, 18746 loadPrevNext: false, 18747 loadPrevNextAmount: 1, 18748 loadOnTransitionStart: false, 18749 scrollingElement: '', 18750 elementClass: 'swiper-lazy', 18751 loadingClass: 'swiper-lazy-loading', 18752 loadedClass: 'swiper-lazy-loaded', 18753 preloaderClass: 'swiper-lazy-preloader' 18754 } 18755 }); 18756 swiper.lazy = {}; 18757 var scrollHandlerAttached = false; 18758 var initialImageLoaded = false; 18759 function loadInSlide(index) { 18760 var loadInDuplicate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; 18761 var params = swiper.params.lazy; 18762 if (typeof index === 'undefined') return; 18763 if (swiper.slides.length === 0) return; 18764 var isVirtual = swiper.virtual && swiper.params.virtual.enabled; 18765 var $slideEl = isVirtual ? swiper.$wrapperEl.children(".".concat(swiper.params.slideClass, "[data-swiper-slide-index=\"").concat(index, "\"]")) : swiper.slides.eq(index); 18766 var $images = $slideEl.find(".".concat(params.elementClass, ":not(.").concat(params.loadedClass, "):not(.").concat(params.loadingClass, ")")); 18767 if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) { 18768 $images.push($slideEl[0]); 18769 } 18770 if ($images.length === 0) return; 18771 $images.each(function (imageEl) { 18772 var $imageEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(imageEl); 18773 $imageEl.addClass(params.loadingClass); 18774 var background = $imageEl.attr('data-background'); 18775 var src = $imageEl.attr('data-src'); 18776 var srcset = $imageEl.attr('data-srcset'); 18777 var sizes = $imageEl.attr('data-sizes'); 18778 var $pictureEl = $imageEl.parent('picture'); 18779 swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () { 18780 if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return; 18781 if (background) { 18782 $imageEl.css('background-image', "url(\"".concat(background, "\")")); 18783 $imageEl.removeAttr('data-background'); 18784 } else { 18785 if (srcset) { 18786 $imageEl.attr('srcset', srcset); 18787 $imageEl.removeAttr('data-srcset'); 18788 } 18789 if (sizes) { 18790 $imageEl.attr('sizes', sizes); 18791 $imageEl.removeAttr('data-sizes'); 18792 } 18793 if ($pictureEl.length) { 18794 $pictureEl.children('source').each(function (sourceEl) { 18795 var $source = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(sourceEl); 18796 if ($source.attr('data-srcset')) { 18797 $source.attr('srcset', $source.attr('data-srcset')); 18798 $source.removeAttr('data-srcset'); 18799 } 18800 }); 18801 } 18802 if (src) { 18803 $imageEl.attr('src', src); 18804 $imageEl.removeAttr('data-src'); 18805 } 18806 } 18807 $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass); 18808 $slideEl.find(".".concat(params.preloaderClass)).remove(); 18809 if (swiper.params.loop && loadInDuplicate) { 18810 var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index'); 18811 if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) { 18812 var originalSlide = swiper.$wrapperEl.children("[data-swiper-slide-index=\"".concat(slideOriginalIndex, "\"]:not(.").concat(swiper.params.slideDuplicateClass, ")")); 18813 loadInSlide(originalSlide.index(), false); 18814 } else { 18815 var duplicatedSlide = swiper.$wrapperEl.children(".".concat(swiper.params.slideDuplicateClass, "[data-swiper-slide-index=\"").concat(slideOriginalIndex, "\"]")); 18816 loadInSlide(duplicatedSlide.index(), false); 18817 } 18818 } 18819 emit('lazyImageReady', $slideEl[0], $imageEl[0]); 18820 if (swiper.params.autoHeight) { 18821 swiper.updateAutoHeight(); 18822 } 18823 }); 18824 emit('lazyImageLoad', $slideEl[0], $imageEl[0]); 18825 }); 18826 } 18827 function load() { 18828 var $wrapperEl = swiper.$wrapperEl, 18829 swiperParams = swiper.params, 18830 slides = swiper.slides, 18831 activeIndex = swiper.activeIndex; 18832 var isVirtual = swiper.virtual && swiperParams.virtual.enabled; 18833 var params = swiperParams.lazy; 18834 var slidesPerView = swiperParams.slidesPerView; 18835 if (slidesPerView === 'auto') { 18836 slidesPerView = 0; 18837 } 18838 function slideExist(index) { 18839 if (isVirtual) { 18840 if ($wrapperEl.children(".".concat(swiperParams.slideClass, "[data-swiper-slide-index=\"").concat(index, "\"]")).length) { 18841 return true; 18842 } 18843 } else if (slides[index]) return true; 18844 return false; 18845 } 18846 function slideIndex(slideEl) { 18847 if (isVirtual) { 18848 return (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl).attr('data-swiper-slide-index'); 18849 } 18850 return (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl).index(); 18851 } 18852 if (!initialImageLoaded) initialImageLoaded = true; 18853 if (swiper.params.watchSlidesProgress) { 18854 $wrapperEl.children(".".concat(swiperParams.slideVisibleClass)).each(function (slideEl) { 18855 var index = isVirtual ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl).attr('data-swiper-slide-index') : (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(slideEl).index(); 18856 loadInSlide(index); 18857 }); 18858 } else if (slidesPerView > 1) { 18859 for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) { 18860 if (slideExist(i)) loadInSlide(i); 18861 } 18862 } else { 18863 loadInSlide(activeIndex); 18864 } 18865 if (params.loadPrevNext) { 18866 if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) { 18867 var amount = params.loadPrevNextAmount; 18868 var spv = Math.ceil(slidesPerView); 18869 var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length); 18870 var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides 18871 18872 for (var _i = activeIndex + spv; _i < maxIndex; _i += 1) { 18873 if (slideExist(_i)) loadInSlide(_i); 18874 } // Prev Slides 18875 18876 for (var _i2 = minIndex; _i2 < activeIndex; _i2 += 1) { 18877 if (slideExist(_i2)) loadInSlide(_i2); 18878 } 18879 } else { 18880 var nextSlide = $wrapperEl.children(".".concat(swiperParams.slideNextClass)); 18881 if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide)); 18882 var prevSlide = $wrapperEl.children(".".concat(swiperParams.slidePrevClass)); 18883 if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide)); 18884 } 18885 } 18886 } 18887 function checkInViewOnLoad() { 18888 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 18889 if (!swiper || swiper.destroyed) return; 18890 var $scrollElement = swiper.params.lazy.scrollingElement ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.params.lazy.scrollingElement) : (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(window); 18891 var isWindow = $scrollElement[0] === window; 18892 var scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth; 18893 var scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight; 18894 var swiperOffset = swiper.$el.offset(); 18895 var rtl = swiper.rtlTranslate; 18896 var inView = false; 18897 if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft; 18898 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]]; 18899 for (var i = 0; i < swiperCoord.length; i += 1) { 18900 var point = swiperCoord[i]; 18901 if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) { 18902 if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line 18903 18904 inView = true; 18905 } 18906 } 18907 var passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? { 18908 passive: true, 18909 capture: false 18910 } : false; 18911 if (inView) { 18912 load(); 18913 $scrollElement.off('scroll', checkInViewOnLoad, passiveListener); 18914 } else if (!scrollHandlerAttached) { 18915 scrollHandlerAttached = true; 18916 $scrollElement.on('scroll', checkInViewOnLoad, passiveListener); 18917 } 18918 } 18919 on('beforeInit', function () { 18920 if (swiper.params.lazy.enabled && swiper.params.preloadImages) { 18921 swiper.params.preloadImages = false; 18922 } 18923 }); 18924 on('init', function () { 18925 if (swiper.params.lazy.enabled) { 18926 if (swiper.params.lazy.checkInView) { 18927 checkInViewOnLoad(); 18928 } else { 18929 load(); 18930 } 18931 } 18932 }); 18933 on('scroll', function () { 18934 if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) { 18935 load(); 18936 } 18937 }); 18938 on('scrollbarDragMove resize _freeModeNoMomentumRelease', function () { 18939 if (swiper.params.lazy.enabled) { 18940 if (swiper.params.lazy.checkInView) { 18941 checkInViewOnLoad(); 18942 } else { 18943 load(); 18944 } 18945 } 18946 }); 18947 on('transitionStart', function () { 18948 if (swiper.params.lazy.enabled) { 18949 if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) { 18950 if (swiper.params.lazy.checkInView) { 18951 checkInViewOnLoad(); 18952 } else { 18953 load(); 18954 } 18955 } 18956 } 18957 }); 18958 on('transitionEnd', function () { 18959 if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) { 18960 if (swiper.params.lazy.checkInView) { 18961 checkInViewOnLoad(); 18962 } else { 18963 load(); 18964 } 18965 } 18966 }); 18967 on('slideChange', function () { 18968 var _swiper$params = swiper.params, 18969 lazy = _swiper$params.lazy, 18970 cssMode = _swiper$params.cssMode, 18971 watchSlidesProgress = _swiper$params.watchSlidesProgress, 18972 touchReleaseOnEdges = _swiper$params.touchReleaseOnEdges, 18973 resistanceRatio = _swiper$params.resistanceRatio; 18974 if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) { 18975 load(); 18976 } 18977 }); 18978 on('destroy', function () { 18979 if (!swiper.$el) return; 18980 swiper.$el.find(".".concat(swiper.params.lazy.loadingClass)).removeClass(swiper.params.lazy.loadingClass); 18981 }); 18982 Object.assign(swiper.lazy, { 18983 load: load, 18984 loadInSlide: loadInSlide 18985 }); 18986} 18987 18988/***/ }), 18989
vendor: 2,217 bytes, lines 18990-19023
18990/***/ "./node_modules/swiper/modules/manipulation/manipulation.js": 18991/*!******************************************************************!*\ 18992 !*** ./node_modules/swiper/modules/manipulation/manipulation.js ***! 18993 \******************************************************************/ 18994/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 18995 18996"use strict"; 18997__webpack_require__.r(__webpack_exports__); 18998/* harmony export */ __webpack_require__.d(__webpack_exports__, { 18999/* harmony export */ "default": function() { return /* binding */ Manipulation; } 19000/* harmony export */ }); 19001/* harmony import */ var _methods_appendSlide_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./methods/appendSlide.js */ "./node_modules/swiper/modules/manipulation/methods/appendSlide.js"); 19002/* harmony import */ var _methods_prependSlide_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./methods/prependSlide.js */ "./node_modules/swiper/modules/manipulation/methods/prependSlide.js"); 19003/* harmony import */ var _methods_addSlide_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./methods/addSlide.js */ "./node_modules/swiper/modules/manipulation/methods/addSlide.js"); 19004/* harmony import */ var _methods_removeSlide_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./methods/removeSlide.js */ "./node_modules/swiper/modules/manipulation/methods/removeSlide.js"); 19005/* harmony import */ var _methods_removeAllSlides_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./methods/removeAllSlides.js */ "./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js"); 19006 19007 19008 19009 19010 19011function Manipulation(_ref) { 19012 var swiper = _ref.swiper; 19013 Object.assign(swiper, { 19014 appendSlide: _methods_appendSlide_js__WEBPACK_IMPORTED_MODULE_0__["default"].bind(swiper), 19015 prependSlide: _methods_prependSlide_js__WEBPACK_IMPORTED_MODULE_1__["default"].bind(swiper), 19016 addSlide: _methods_addSlide_js__WEBPACK_IMPORTED_MODULE_2__["default"].bind(swiper), 19017 removeSlide: _methods_removeSlide_js__WEBPACK_IMPORTED_MODULE_3__["default"].bind(swiper), 19018 removeAllSlides: _methods_removeAllSlides_js__WEBPACK_IMPORTED_MODULE_4__["default"].bind(swiper) 19019 }); 19020} 19021 19022/***/ }), 19023
vendor: 2,478 bytes, lines 19024-19088
19024/***/ "./node_modules/swiper/modules/manipulation/methods/addSlide.js": 19025/*!**********************************************************************!*\ 19026 !*** ./node_modules/swiper/modules/manipulation/methods/addSlide.js ***! 19027 \**********************************************************************/ 19028/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 19029 19030"use strict"; 19031__webpack_require__.r(__webpack_exports__); 19032/* harmony export */ __webpack_require__.d(__webpack_exports__, { 19033/* harmony export */ "default": function() { return /* binding */ addSlide; } 19034/* harmony export */ }); 19035function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 19036function addSlide(index, slides) { 19037 var swiper = this; 19038 var $wrapperEl = swiper.$wrapperEl, 19039 params = swiper.params, 19040 activeIndex = swiper.activeIndex; 19041 var activeIndexBuffer = activeIndex; 19042 if (params.loop) { 19043 activeIndexBuffer -= swiper.loopedSlides; 19044 swiper.loopDestroy(); 19045 swiper.slides = $wrapperEl.children(".".concat(params.slideClass)); 19046 } 19047 var baseLength = swiper.slides.length; 19048 if (index <= 0) { 19049 swiper.prependSlide(slides); 19050 return; 19051 } 19052 if (index >= baseLength) { 19053 swiper.appendSlide(slides); 19054 return; 19055 } 19056 var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer; 19057 var slidesBuffer = []; 19058 for (var i = baseLength - 1; i >= index; i -= 1) { 19059 var currentSlide = swiper.slides.eq(i); 19060 currentSlide.remove(); 19061 slidesBuffer.unshift(currentSlide); 19062 } 19063 if (_typeof(slides) === 'object' && 'length' in slides) { 19064 for (var _i = 0; _i < slides.length; _i += 1) { 19065 if (slides[_i]) $wrapperEl.append(slides[_i]); 19066 } 19067 newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer; 19068 } else { 19069 $wrapperEl.append(slides); 19070 } 19071 for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) { 19072 $wrapperEl.append(slidesBuffer[_i2]); 19073 } 19074 if (params.loop) { 19075 swiper.loopCreate(); 19076 } 19077 if (!params.observer) { 19078 swiper.update(); 19079 } 19080 if (params.loop) { 19081 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 19082 } else { 19083 swiper.slideTo(newActiveIndex, 0, false); 19084 } 19085} 19086 19087/***/ }), 19088
vendor: 1,456 bytes, lines 19089-19124
19089/***/ "./node_modules/swiper/modules/manipulation/methods/appendSlide.js": 19090/*!*************************************************************************!*\ 19091 !*** ./node_modules/swiper/modules/manipulation/methods/appendSlide.js ***! 19092 \*************************************************************************/ 19093/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 19094 19095"use strict"; 19096__webpack_require__.r(__webpack_exports__); 19097/* harmony export */ __webpack_require__.d(__webpack_exports__, { 19098/* harmony export */ "default": function() { return /* binding */ appendSlide; } 19099/* harmony export */ }); 19100function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 19101function appendSlide(slides) { 19102 var swiper = this; 19103 var $wrapperEl = swiper.$wrapperEl, 19104 params = swiper.params; 19105 if (params.loop) { 19106 swiper.loopDestroy(); 19107 } 19108 if (_typeof(slides) === 'object' && 'length' in slides) { 19109 for (var i = 0; i < slides.length; i += 1) { 19110 if (slides[i]) $wrapperEl.append(slides[i]); 19111 } 19112 } else { 19113 $wrapperEl.append(slides); 19114 } 19115 if (params.loop) { 19116 swiper.loopCreate(); 19117 } 19118 if (!params.observer) { 19119 swiper.update(); 19120 } 19121} 19122 19123/***/ }), 19124
vendor: 1,636 bytes, lines 19125-19164
19125/***/ "./node_modules/swiper/modules/manipulation/methods/prependSlide.js": 19126/*!**************************************************************************!*\ 19127 !*** ./node_modules/swiper/modules/manipulation/methods/prependSlide.js ***! 19128 \**************************************************************************/ 19129/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 19130 19131"use strict"; 19132__webpack_require__.r(__webpack_exports__); 19133/* harmony export */ __webpack_require__.d(__webpack_exports__, { 19134/* harmony export */ "default": function() { return /* binding */ prependSlide; } 19135/* harmony export */ }); 19136function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 19137function prependSlide(slides) { 19138 var swiper = this; 19139 var params = swiper.params, 19140 $wrapperEl = swiper.$wrapperEl, 19141 activeIndex = swiper.activeIndex; 19142 if (params.loop) { 19143 swiper.loopDestroy(); 19144 } 19145 var newActiveIndex = activeIndex + 1; 19146 if (_typeof(slides) === 'object' && 'length' in slides) { 19147 for (var i = 0; i < slides.length; i += 1) { 19148 if (slides[i]) $wrapperEl.prepend(slides[i]); 19149 } 19150 newActiveIndex = activeIndex + slides.length; 19151 } else { 19152 $wrapperEl.prepend(slides); 19153 } 19154 if (params.loop) { 19155 swiper.loopCreate(); 19156 } 19157 if (!params.observer) { 19158 swiper.update(); 19159 } 19160 swiper.slideTo(newActiveIndex, 0, false); 19161} 19162 19163/***/ }), 19164
vendor: 873 bytes, lines 19165-19186
19165/***/ "./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js": 19166/*!*****************************************************************************!*\ 19167 !*** ./node_modules/swiper/modules/manipulation/methods/removeAllSlides.js ***! 19168 \*****************************************************************************/ 19169/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 19170 19171"use strict"; 19172__webpack_require__.r(__webpack_exports__); 19173/* harmony export */ __webpack_require__.d(__webpack_exports__, { 19174/* harmony export */ "default": function() { return /* binding */ removeAllSlides; } 19175/* harmony export */ }); 19176function removeAllSlides() { 19177 var swiper = this; 19178 var slidesIndexes = []; 19179 for (var i = 0; i < swiper.slides.length; i += 1) { 19180 slidesIndexes.push(i); 19181 } 19182 swiper.removeSlide(slidesIndexes); 19183} 19184 19185/***/ }), 19186
vendor: 2,271 bytes, lines 19187-19239
19187/***/ "./node_modules/swiper/modules/manipulation/methods/removeSlide.js": 19188/*!*************************************************************************!*\ 19189 !*** ./node_modules/swiper/modules/manipulation/methods/removeSlide.js ***! 19190 \*************************************************************************/ 19191/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 19192 19193"use strict"; 19194__webpack_require__.r(__webpack_exports__); 19195/* harmony export */ __webpack_require__.d(__webpack_exports__, { 19196/* harmony export */ "default": function() { return /* binding */ removeSlide; } 19197/* harmony export */ }); 19198function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 19199function removeSlide(slidesIndexes) { 19200 var swiper = this; 19201 var params = swiper.params, 19202 $wrapperEl = swiper.$wrapperEl, 19203 activeIndex = swiper.activeIndex; 19204 var activeIndexBuffer = activeIndex; 19205 if (params.loop) { 19206 activeIndexBuffer -= swiper.loopedSlides; 19207 swiper.loopDestroy(); 19208 swiper.slides = $wrapperEl.children(".".concat(params.slideClass)); 19209 } 19210 var newActiveIndex = activeIndexBuffer; 19211 var indexToRemove; 19212 if (_typeof(slidesIndexes) === 'object' && 'length' in slidesIndexes) { 19213 for (var i = 0; i < slidesIndexes.length; i += 1) { 19214 indexToRemove = slidesIndexes[i]; 19215 if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove(); 19216 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 19217 } 19218 newActiveIndex = Math.max(newActiveIndex, 0); 19219 } else { 19220 indexToRemove = slidesIndexes; 19221 if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove(); 19222 if (indexToRemove < newActiveIndex) newActiveIndex -= 1; 19223 newActiveIndex = Math.max(newActiveIndex, 0); 19224 } 19225 if (params.loop) { 19226 swiper.loopCreate(); 19227 } 19228 if (!params.observer) { 19229 swiper.update(); 19230 } 19231 if (params.loop) { 19232 swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); 19233 } else { 19234 swiper.slideTo(newActiveIndex, 0, false); 19235 } 19236} 19237 19238/***/ }), 19239
vendor: 15,635 bytes, lines 19240-19623
19240/***/ "./node_modules/swiper/modules/mousewheel/mousewheel.js": 19241/*!**************************************************************!*\ 19242 !*** ./node_modules/swiper/modules/mousewheel/mousewheel.js ***! 19243 \**************************************************************/ 19244/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 19245 19246"use strict"; 19247__webpack_require__.r(__webpack_exports__); 19248/* harmony export */ __webpack_require__.d(__webpack_exports__, { 19249/* harmony export */ "default": function() { return /* binding */ Mousewheel; } 19250/* harmony export */ }); 19251/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 19252/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 19253/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 19254/* eslint-disable consistent-return */ 19255 19256 19257 19258function Mousewheel(_ref) { 19259 var swiper = _ref.swiper, 19260 extendParams = _ref.extendParams, 19261 on = _ref.on, 19262 emit = _ref.emit; 19263 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 19264 extendParams({ 19265 mousewheel: { 19266 enabled: false, 19267 releaseOnEdges: false, 19268 invert: false, 19269 forceToAxis: false, 19270 sensitivity: 1, 19271 eventsTarget: 'container', 19272 thresholdDelta: null, 19273 thresholdTime: null 19274 } 19275 }); 19276 swiper.mousewheel = { 19277 enabled: false 19278 }; 19279 var timeout; 19280 var lastScrollTime = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(); 19281 var lastEventBeforeSnap; 19282 var recentWheelEvents = []; 19283 function normalize(e) { 19284 // Reasonable defaults 19285 var PIXEL_STEP = 10; 19286 var LINE_HEIGHT = 40; 19287 var PAGE_HEIGHT = 800; 19288 var sX = 0; 19289 var sY = 0; // spinX, spinY 19290 19291 var pX = 0; 19292 var pY = 0; // pixelX, pixelY 19293 // Legacy 19294 19295 if ('detail' in e) { 19296 sY = e.detail; 19297 } 19298 if ('wheelDelta' in e) { 19299 sY = -e.wheelDelta / 120; 19300 } 19301 if ('wheelDeltaY' in e) { 19302 sY = -e.wheelDeltaY / 120; 19303 } 19304 if ('wheelDeltaX' in e) { 19305 sX = -e.wheelDeltaX / 120; 19306 } // side scrolling on FF with DOMMouseScroll 19307 19308 if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { 19309 sX = sY; 19310 sY = 0; 19311 } 19312 pX = sX * PIXEL_STEP; 19313 pY = sY * PIXEL_STEP; 19314 if ('deltaY' in e) { 19315 pY = e.deltaY; 19316 } 19317 if ('deltaX' in e) { 19318 pX = e.deltaX; 19319 } 19320 if (e.shiftKey && !pX) { 19321 // if user scrolls with shift he wants horizontal scroll 19322 pX = pY; 19323 pY = 0; 19324 } 19325 if ((pX || pY) && e.deltaMode) { 19326 if (e.deltaMode === 1) { 19327 // delta in LINE units 19328 pX *= LINE_HEIGHT; 19329 pY *= LINE_HEIGHT; 19330 } else { 19331 // delta in PAGE units 19332 pX *= PAGE_HEIGHT; 19333 pY *= PAGE_HEIGHT; 19334 } 19335 } // Fall-back if spin cannot be determined 19336 19337 if (pX && !sX) { 19338 sX = pX < 1 ? -1 : 1; 19339 } 19340 if (pY && !sY) { 19341 sY = pY < 1 ? -1 : 1; 19342 } 19343 return { 19344 spinX: sX, 19345 spinY: sY, 19346 pixelX: pX, 19347 pixelY: pY 19348 }; 19349 } 19350 function handleMouseEnter() { 19351 if (!swiper.enabled) return; 19352 swiper.mouseEntered = true; 19353 } 19354 function handleMouseLeave() { 19355 if (!swiper.enabled) return; 19356 swiper.mouseEntered = false; 19357 } 19358 function animateSlider(newEvent) { 19359 if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) { 19360 // Prevent if delta of wheel scroll delta is below configured threshold 19361 return false; 19362 } 19363 if (swiper.params.mousewheel.thresholdTime && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)() - lastScrollTime < swiper.params.mousewheel.thresholdTime) { 19364 // Prevent if time between scrolls is below configured threshold 19365 return false; 19366 } // If the movement is NOT big enough and 19367 // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider): 19368 // Don't go any further (avoid insignificant scroll movement). 19369 19370 if (newEvent.delta >= 6 && (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)() - lastScrollTime < 60) { 19371 // Return false as a default 19372 return true; 19373 } // If user is scrolling towards the end: 19374 // If the slider hasn't hit the latest slide or 19375 // if the slider is a loop and 19376 // if the slider isn't moving right now: 19377 // Go to next slide and 19378 // emit a scroll event. 19379 // Else (the user is scrolling towards the beginning) and 19380 // if the slider hasn't hit the first slide or 19381 // if the slider is a loop and 19382 // if the slider isn't moving right now: 19383 // Go to prev slide and 19384 // emit a scroll event. 19385 19386 if (newEvent.direction < 0) { 19387 if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { 19388 swiper.slideNext(); 19389 emit('scroll', newEvent.raw); 19390 } 19391 } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { 19392 swiper.slidePrev(); 19393 emit('scroll', newEvent.raw); 19394 } // If you got here is because an animation has been triggered so store the current time 19395 19396 lastScrollTime = new window.Date().getTime(); // Return false as a default 19397 19398 return false; 19399 } 19400 function releaseScroll(newEvent) { 19401 var params = swiper.params.mousewheel; 19402 if (newEvent.direction < 0) { 19403 if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) { 19404 // Return true to animate scroll on edges 19405 return true; 19406 } 19407 } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) { 19408 // Return true to animate scroll on edges 19409 return true; 19410 } 19411 return false; 19412 } 19413 function handle(event) { 19414 var e = event; 19415 var disableParentSwiper = true; 19416 if (!swiper.enabled) return; 19417 var params = swiper.params.mousewheel; 19418 if (swiper.params.cssMode) { 19419 e.preventDefault(); 19420 } 19421 var target = swiper.$el; 19422 if (swiper.params.mousewheel.eventsTarget !== 'container') { 19423 target = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.params.mousewheel.eventsTarget); 19424 } 19425 if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true; 19426 if (e.originalEvent) e = e.originalEvent; // jquery fix 19427 19428 var delta = 0; 19429 var rtlFactor = swiper.rtlTranslate ? -1 : 1; 19430 var data = normalize(e); 19431 if (params.forceToAxis) { 19432 if (swiper.isHorizontal()) { 19433 if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true; 19434 } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true; 19435 } else { 19436 delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY; 19437 } 19438 if (delta === 0) return true; 19439 if (params.invert) delta = -delta; // Get the scroll positions 19440 19441 var positions = swiper.getTranslate() + delta * params.sensitivity; 19442 if (positions >= swiper.minTranslate()) positions = swiper.minTranslate(); 19443 if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true: 19444 // the disableParentSwiper will be true. 19445 // When loop is false: 19446 // if the scroll positions is not on edge, 19447 // then the disableParentSwiper will be true. 19448 // if the scroll on edge positions, 19449 // then the disableParentSwiper will be false. 19450 19451 disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate()); 19452 if (disableParentSwiper && swiper.params.nested) e.stopPropagation(); 19453 if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) { 19454 // Register the new event in a variable which stores the relevant data 19455 var newEvent = { 19456 time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(), 19457 delta: Math.abs(delta), 19458 direction: Math.sign(delta), 19459 raw: event 19460 }; // Keep the most recent events 19461 19462 if (recentWheelEvents.length >= 2) { 19463 recentWheelEvents.shift(); // only store the last N events 19464 } 19465 var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; 19466 recentWheelEvents.push(newEvent); // If there is at least one previous recorded event: 19467 // If direction has changed or 19468 // if the scroll is quicker than the previous one: 19469 // Animate the slider. 19470 // Else (this is the first time the wheel is moved): 19471 // Animate the slider. 19472 19473 if (prevEvent) { 19474 if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) { 19475 animateSlider(newEvent); 19476 } 19477 } else { 19478 animateSlider(newEvent); 19479 } // If it's time to release the scroll: 19480 // Return now so you don't hit the preventDefault. 19481 19482 if (releaseScroll(newEvent)) { 19483 return true; 19484 } 19485 } else { 19486 // Freemode or scrollContainer: 19487 // If we recently snapped after a momentum scroll, then ignore wheel events 19488 // to give time for the deceleration to finish. Stop ignoring after 500 msecs 19489 // or if it's a new scroll (larger delta or inverse sign as last event before 19490 // an end-of-momentum snap). 19491 var _newEvent = { 19492 time: (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.now)(), 19493 delta: Math.abs(delta), 19494 direction: Math.sign(delta) 19495 }; 19496 var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction; 19497 if (!ignoreWheelEvents) { 19498 lastEventBeforeSnap = undefined; 19499 if (swiper.params.loop) { 19500 swiper.loopFix(); 19501 } 19502 var position = swiper.getTranslate() + delta * params.sensitivity; 19503 var wasBeginning = swiper.isBeginning; 19504 var wasEnd = swiper.isEnd; 19505 if (position >= swiper.minTranslate()) position = swiper.minTranslate(); 19506 if (position <= swiper.maxTranslate()) position = swiper.maxTranslate(); 19507 swiper.setTransition(0); 19508 swiper.setTranslate(position); 19509 swiper.updateProgress(); 19510 swiper.updateActiveIndex(); 19511 swiper.updateSlidesClasses(); 19512 if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) { 19513 swiper.updateSlidesClasses(); 19514 } 19515 if (swiper.params.freeMode.sticky) { 19516 // When wheel scrolling starts with sticky (aka snap) enabled, then detect 19517 // the end of a momentum scroll by storing recent (N=15?) wheel events. 19518 // 1. do all N events have decreasing or same (absolute value) delta? 19519 // 2. did all N events arrive in the last M (M=500?) msecs? 19520 // 3. does the earliest event have an (absolute value) delta that's 19521 // at least P (P=1?) larger than the most recent event's delta? 19522 // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels? 19523 // If 1-4 are "yes" then we're near the end of a momentum scroll deceleration. 19524 // Snap immediately and ignore remaining wheel events in this scroll. 19525 // See comment above for "remaining wheel events in this scroll" determination. 19526 // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event. 19527 clearTimeout(timeout); 19528 timeout = undefined; 19529 if (recentWheelEvents.length >= 15) { 19530 recentWheelEvents.shift(); // only store the last N events 19531 } 19532 var _prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; 19533 var firstEvent = recentWheelEvents[0]; 19534 recentWheelEvents.push(_newEvent); 19535 if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) { 19536 // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log. 19537 recentWheelEvents.splice(0); 19538 } else if (recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) { 19539 // We're at the end of the deceleration of a momentum scroll, so there's no need 19540 // to wait for more events. Snap ASAP on the next tick. 19541 // Also, because there's some remaining momentum we'll bias the snap in the 19542 // direction of the ongoing scroll because it's better UX for the scroll to snap 19543 // in the same direction as the scroll instead of reversing to snap. Therefore, 19544 // if it's already scrolled more than 20% in the current direction, keep going. 19545 var snapToThreshold = delta > 0 ? 0.8 : 0.2; 19546 lastEventBeforeSnap = _newEvent; 19547 recentWheelEvents.splice(0); 19548 timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.nextTick)(function () { 19549 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 19550 }, 0); // no delay; move on next tick 19551 } 19552 if (!timeout) { 19553 // if we get here, then we haven't detected the end of a momentum scroll, so 19554 // we'll consider a scroll "complete" when there haven't been any wheel events 19555 // for 500ms. 19556 timeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.nextTick)(function () { 19557 var snapToThreshold = 0.5; 19558 lastEventBeforeSnap = _newEvent; 19559 recentWheelEvents.splice(0); 19560 swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); 19561 }, 500); 19562 } 19563 } // Emit event 19564 19565 if (!ignoreWheelEvents) emit('scroll', e); // Stop autoplay 19566 19567 if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions 19568 19569 if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true; 19570 } 19571 } 19572 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 19573 return false; 19574 } 19575 function events(method) { 19576 var target = swiper.$el; 19577 if (swiper.params.mousewheel.eventsTarget !== 'container') { 19578 target = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(swiper.params.mousewheel.eventsTarget); 19579 } 19580 target[method]('mouseenter', handleMouseEnter); 19581 target[method]('mouseleave', handleMouseLeave); 19582 target[method]('wheel', handle); 19583 } 19584 function enable() { 19585 if (swiper.params.cssMode) { 19586 swiper.wrapperEl.removeEventListener('wheel', handle); 19587 return true; 19588 } 19589 if (swiper.mousewheel.enabled) return false; 19590 events('on'); 19591 swiper.mousewheel.enabled = true; 19592 return true; 19593 } 19594 function disable() { 19595 if (swiper.params.cssMode) { 19596 swiper.wrapperEl.addEventListener(event, handle); 19597 return true; 19598 } 19599 if (!swiper.mousewheel.enabled) return false; 19600 events('off'); 19601 swiper.mousewheel.enabled = false; 19602 return true; 19603 } 19604 on('init', function () { 19605 if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) { 19606 disable(); 19607 } 19608 if (swiper.params.mousewheel.enabled) enable(); 19609 }); 19610 on('destroy', function () { 19611 if (swiper.params.cssMode) { 19612 enable(); 19613 } 19614 if (swiper.mousewheel.enabled) disable(); 19615 }); 19616 Object.assign(swiper.mousewheel, { 19617 enable: enable, 19618 disable: disable 19619 }); 19620} 19621 19622/***/ }), 19623
vendor: 6,738 bytes, lines 19624-19812
19624/***/ "./node_modules/swiper/modules/navigation/navigation.js": 19625/*!**************************************************************!*\ 19626 !*** ./node_modules/swiper/modules/navigation/navigation.js ***! 19627 \**************************************************************/ 19628/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 19629 19630"use strict"; 19631__webpack_require__.r(__webpack_exports__); 19632/* harmony export */ __webpack_require__.d(__webpack_exports__, { 19633/* harmony export */ "default": function() { return /* binding */ Navigation; } 19634/* harmony export */ }); 19635/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ "./node_modules/swiper/shared/create-element-if-not-defined.js"); 19636/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 19637 19638 19639function Navigation(_ref) { 19640 var swiper = _ref.swiper, 19641 extendParams = _ref.extendParams, 19642 on = _ref.on, 19643 emit = _ref.emit; 19644 extendParams({ 19645 navigation: { 19646 nextEl: null, 19647 prevEl: null, 19648 hideOnClick: false, 19649 disabledClass: 'swiper-button-disabled', 19650 hiddenClass: 'swiper-button-hidden', 19651 lockClass: 'swiper-button-lock', 19652 navigationDisabledClass: 'swiper-navigation-disabled' 19653 } 19654 }); 19655 swiper.navigation = { 19656 nextEl: null, 19657 $nextEl: null, 19658 prevEl: null, 19659 $prevEl: null 19660 }; 19661 function getEl(el) { 19662 var $el; 19663 if (el) { 19664 $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(el); 19665 if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) { 19666 $el = swiper.$el.find(el); 19667 } 19668 } 19669 return $el; 19670 } 19671 function toggleEl($el, disabled) { 19672 var params = swiper.params.navigation; 19673 if ($el && $el.length > 0) { 19674 $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass); 19675 if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled; 19676 if (swiper.params.watchOverflow && swiper.enabled) { 19677 $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); 19678 } 19679 } 19680 } 19681 function update() { 19682 // Update Navigation Buttons 19683 if (swiper.params.loop) return; 19684 var _swiper$navigation = swiper.navigation, 19685 $nextEl = _swiper$navigation.$nextEl, 19686 $prevEl = _swiper$navigation.$prevEl; 19687 toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind); 19688 toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind); 19689 } 19690 function onPrevClick(e) { 19691 e.preventDefault(); 19692 if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return; 19693 swiper.slidePrev(); 19694 emit('navigationPrev'); 19695 } 19696 function onNextClick(e) { 19697 e.preventDefault(); 19698 if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return; 19699 swiper.slideNext(); 19700 emit('navigationNext'); 19701 } 19702 function init() { 19703 var params = swiper.params.navigation; 19704 swiper.params.navigation = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_0__["default"])(swiper, swiper.originalParams.navigation, swiper.params.navigation, { 19705 nextEl: 'swiper-button-next', 19706 prevEl: 'swiper-button-prev' 19707 }); 19708 if (!(params.nextEl || params.prevEl)) return; 19709 var $nextEl = getEl(params.nextEl); 19710 var $prevEl = getEl(params.prevEl); 19711 if ($nextEl && $nextEl.length > 0) { 19712 $nextEl.on('click', onNextClick); 19713 } 19714 if ($prevEl && $prevEl.length > 0) { 19715 $prevEl.on('click', onPrevClick); 19716 } 19717 Object.assign(swiper.navigation, { 19718 $nextEl: $nextEl, 19719 nextEl: $nextEl && $nextEl[0], 19720 $prevEl: $prevEl, 19721 prevEl: $prevEl && $prevEl[0] 19722 }); 19723 if (!swiper.enabled) { 19724 if ($nextEl) $nextEl.addClass(params.lockClass); 19725 if ($prevEl) $prevEl.addClass(params.lockClass); 19726 } 19727 } 19728 function destroy() { 19729 var _swiper$navigation2 = swiper.navigation, 19730 $nextEl = _swiper$navigation2.$nextEl, 19731 $prevEl = _swiper$navigation2.$prevEl; 19732 if ($nextEl && $nextEl.length) { 19733 $nextEl.off('click', onNextClick); 19734 $nextEl.removeClass(swiper.params.navigation.disabledClass); 19735 } 19736 if ($prevEl && $prevEl.length) { 19737 $prevEl.off('click', onPrevClick); 19738 $prevEl.removeClass(swiper.params.navigation.disabledClass); 19739 } 19740 } 19741 on('init', function () { 19742 if (swiper.params.navigation.enabled === false) { 19743 // eslint-disable-next-line 19744 disable(); 19745 } else { 19746 init(); 19747 update(); 19748 } 19749 }); 19750 on('toEdge fromEdge lock unlock', function () { 19751 update(); 19752 }); 19753 on('destroy', function () { 19754 destroy(); 19755 }); 19756 on('enable disable', function () { 19757 var _swiper$navigation3 = swiper.navigation, 19758 $nextEl = _swiper$navigation3.$nextEl, 19759 $prevEl = _swiper$navigation3.$prevEl; 19760 if ($nextEl) { 19761 $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass); 19762 } 19763 if ($prevEl) { 19764 $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass); 19765 } 19766 }); 19767 on('click', function (_s, e) { 19768 var _swiper$navigation4 = swiper.navigation, 19769 $nextEl = _swiper$navigation4.$nextEl, 19770 $prevEl = _swiper$navigation4.$prevEl; 19771 var targetEl = e.target; 19772 if (swiper.params.navigation.hideOnClick && !(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(targetEl).is($prevEl) && !(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(targetEl).is($nextEl)) { 19773 if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return; 19774 var isHidden; 19775 if ($nextEl) { 19776 isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass); 19777 } else if ($prevEl) { 19778 isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass); 19779 } 19780 if (isHidden === true) { 19781 emit('navigationShow'); 19782 } else { 19783 emit('navigationHide'); 19784 } 19785 if ($nextEl) { 19786 $nextEl.toggleClass(swiper.params.navigation.hiddenClass); 19787 } 19788 if ($prevEl) { 19789 $prevEl.toggleClass(swiper.params.navigation.hiddenClass); 19790 } 19791 } 19792 }); 19793 var enable = function enable() { 19794 swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass); 19795 init(); 19796 update(); 19797 }; 19798 var disable = function disable() { 19799 swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass); 19800 destroy(); 19801 }; 19802 Object.assign(swiper.navigation, { 19803 enable: enable, 19804 disable: disable, 19805 update: update, 19806 init: init, 19807 destroy: destroy 19808 }); 19809} 19810 19811/***/ }), 19812
vendor: 16,750 bytes, lines 19813-20205
19813/***/ "./node_modules/swiper/modules/pagination/pagination.js": 19814/*!**************************************************************!*\ 19815 !*** ./node_modules/swiper/modules/pagination/pagination.js ***! 19816 \**************************************************************/ 19817/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 19818 19819"use strict"; 19820__webpack_require__.r(__webpack_exports__); 19821/* harmony export */ __webpack_require__.d(__webpack_exports__, { 19822/* harmony export */ "default": function() { return /* binding */ Pagination; } 19823/* harmony export */ }); 19824/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 19825/* harmony import */ var _shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/classes-to-selector.js */ "./node_modules/swiper/shared/classes-to-selector.js"); 19826/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ "./node_modules/swiper/shared/create-element-if-not-defined.js"); 19827 19828 19829 19830function Pagination(_ref) { 19831 var swiper = _ref.swiper, 19832 extendParams = _ref.extendParams, 19833 on = _ref.on, 19834 emit = _ref.emit; 19835 var pfx = 'swiper-pagination'; 19836 extendParams({ 19837 pagination: { 19838 el: null, 19839 bulletElement: 'span', 19840 clickable: false, 19841 hideOnClick: false, 19842 renderBullet: null, 19843 renderProgressbar: null, 19844 renderFraction: null, 19845 renderCustom: null, 19846 progressbarOpposite: false, 19847 type: 'bullets', 19848 // 'bullets' or 'progressbar' or 'fraction' or 'custom' 19849 dynamicBullets: false, 19850 dynamicMainBullets: 1, 19851 formatFractionCurrent: function formatFractionCurrent(number) { 19852 return number; 19853 }, 19854 formatFractionTotal: function formatFractionTotal(number) { 19855 return number; 19856 }, 19857 bulletClass: "".concat(pfx, "-bullet"), 19858 bulletActiveClass: "".concat(pfx, "-bullet-active"), 19859 modifierClass: "".concat(pfx, "-"), 19860 currentClass: "".concat(pfx, "-current"), 19861 totalClass: "".concat(pfx, "-total"), 19862 hiddenClass: "".concat(pfx, "-hidden"), 19863 progressbarFillClass: "".concat(pfx, "-progressbar-fill"), 19864 progressbarOppositeClass: "".concat(pfx, "-progressbar-opposite"), 19865 clickableClass: "".concat(pfx, "-clickable"), 19866 lockClass: "".concat(pfx, "-lock"), 19867 horizontalClass: "".concat(pfx, "-horizontal"), 19868 verticalClass: "".concat(pfx, "-vertical"), 19869 paginationDisabledClass: "".concat(pfx, "-disabled") 19870 } 19871 }); 19872 swiper.pagination = { 19873 el: null, 19874 $el: null, 19875 bullets: [] 19876 }; 19877 var bulletSize; 19878 var dynamicBulletIndex = 0; 19879 function isPaginationDisabled() { 19880 return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0; 19881 } 19882 function setSideBullets($bulletEl, position) { 19883 var bulletActiveClass = swiper.params.pagination.bulletActiveClass; 19884 $bulletEl[position]().addClass("".concat(bulletActiveClass, "-").concat(position))[position]().addClass("".concat(bulletActiveClass, "-").concat(position, "-").concat(position)); 19885 } 19886 function update() { 19887 // Render || Update Pagination bullets/items 19888 var rtl = swiper.rtl; 19889 var params = swiper.params.pagination; 19890 if (isPaginationDisabled()) return; 19891 var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 19892 var $el = swiper.pagination.$el; // Current/Total 19893 19894 var current; 19895 var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 19896 if (swiper.params.loop) { 19897 current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup); 19898 if (current > slidesLength - 1 - swiper.loopedSlides * 2) { 19899 current -= slidesLength - swiper.loopedSlides * 2; 19900 } 19901 if (current > total - 1) current -= total; 19902 if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current; 19903 } else if (typeof swiper.snapIndex !== 'undefined') { 19904 current = swiper.snapIndex; 19905 } else { 19906 current = swiper.activeIndex || 0; 19907 } // Types 19908 19909 if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { 19910 var bullets = swiper.pagination.bullets; 19911 var firstIndex; 19912 var lastIndex; 19913 var midIndex; 19914 if (params.dynamicBullets) { 19915 bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true); 19916 $el.css(swiper.isHorizontal() ? 'width' : 'height', "".concat(bulletSize * (params.dynamicMainBullets + 4), "px")); 19917 if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) { 19918 dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0); 19919 if (dynamicBulletIndex > params.dynamicMainBullets - 1) { 19920 dynamicBulletIndex = params.dynamicMainBullets - 1; 19921 } else if (dynamicBulletIndex < 0) { 19922 dynamicBulletIndex = 0; 19923 } 19924 } 19925 firstIndex = Math.max(current - dynamicBulletIndex, 0); 19926 lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1); 19927 midIndex = (lastIndex + firstIndex) / 2; 19928 } 19929 bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(function (suffix) { 19930 return "".concat(params.bulletActiveClass).concat(suffix); 19931 }).join(' ')); 19932 if ($el.length > 1) { 19933 bullets.each(function (bullet) { 19934 var $bullet = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(bullet); 19935 var bulletIndex = $bullet.index(); 19936 if (bulletIndex === current) { 19937 $bullet.addClass(params.bulletActiveClass); 19938 } 19939 if (params.dynamicBullets) { 19940 if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { 19941 $bullet.addClass("".concat(params.bulletActiveClass, "-main")); 19942 } 19943 if (bulletIndex === firstIndex) { 19944 setSideBullets($bullet, 'prev'); 19945 } 19946 if (bulletIndex === lastIndex) { 19947 setSideBullets($bullet, 'next'); 19948 } 19949 } 19950 }); 19951 } else { 19952 var $bullet = bullets.eq(current); 19953 var bulletIndex = $bullet.index(); 19954 $bullet.addClass(params.bulletActiveClass); 19955 if (params.dynamicBullets) { 19956 var $firstDisplayedBullet = bullets.eq(firstIndex); 19957 var $lastDisplayedBullet = bullets.eq(lastIndex); 19958 for (var i = firstIndex; i <= lastIndex; i += 1) { 19959 bullets.eq(i).addClass("".concat(params.bulletActiveClass, "-main")); 19960 } 19961 if (swiper.params.loop) { 19962 if (bulletIndex >= bullets.length) { 19963 for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) { 19964 bullets.eq(bullets.length - _i).addClass("".concat(params.bulletActiveClass, "-main")); 19965 } 19966 bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass("".concat(params.bulletActiveClass, "-prev")); 19967 } else { 19968 setSideBullets($firstDisplayedBullet, 'prev'); 19969 setSideBullets($lastDisplayedBullet, 'next'); 19970 } 19971 } else { 19972 setSideBullets($firstDisplayedBullet, 'prev'); 19973 setSideBullets($lastDisplayedBullet, 'next'); 19974 } 19975 } 19976 } 19977 if (params.dynamicBullets) { 19978 var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); 19979 var bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize; 19980 var offsetProp = rtl ? 'right' : 'left'; 19981 bullets.css(swiper.isHorizontal() ? offsetProp : 'top', "".concat(bulletsOffset, "px")); 19982 } 19983 } 19984 if (params.type === 'fraction') { 19985 $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.currentClass)).text(params.formatFractionCurrent(current + 1)); 19986 $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.totalClass)).text(params.formatFractionTotal(total)); 19987 } 19988 if (params.type === 'progressbar') { 19989 var progressbarDirection; 19990 if (params.progressbarOpposite) { 19991 progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal'; 19992 } else { 19993 progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical'; 19994 } 19995 var scale = (current + 1) / total; 19996 var scaleX = 1; 19997 var scaleY = 1; 19998 if (progressbarDirection === 'horizontal') { 19999 scaleX = scale; 20000 } else { 20001 scaleY = scale; 20002 } 20003 $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.progressbarFillClass)).transform("translate3d(0,0,0) scaleX(".concat(scaleX, ") scaleY(").concat(scaleY, ")")).transition(swiper.params.speed); 20004 } 20005 if (params.type === 'custom' && params.renderCustom) { 20006 $el.html(params.renderCustom(swiper, current + 1, total)); 20007 emit('paginationRender', $el[0]); 20008 } else { 20009 emit('paginationUpdate', $el[0]); 20010 } 20011 if (swiper.params.watchOverflow && swiper.enabled) { 20012 $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); 20013 } 20014 } 20015 function render() { 20016 // Render Container 20017 var params = swiper.params.pagination; 20018 if (isPaginationDisabled()) return; 20019 var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; 20020 var $el = swiper.pagination.$el; 20021 var paginationHTML = ''; 20022 if (params.type === 'bullets') { 20023 var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; 20024 if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) { 20025 numberOfBullets = slidesLength; 20026 } 20027 for (var i = 0; i < numberOfBullets; i += 1) { 20028 if (params.renderBullet) { 20029 paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); 20030 } else { 20031 paginationHTML += "<".concat(params.bulletElement, " class=\"").concat(params.bulletClass, "\"></").concat(params.bulletElement, ">"); 20032 } 20033 } 20034 $el.html(paginationHTML); 20035 swiper.pagination.bullets = $el.find((0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.bulletClass)); 20036 } 20037 if (params.type === 'fraction') { 20038 if (params.renderFraction) { 20039 paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); 20040 } else { 20041 paginationHTML = "<span class=\"".concat(params.currentClass, "\"></span>") + ' / ' + "<span class=\"".concat(params.totalClass, "\"></span>"); 20042 } 20043 $el.html(paginationHTML); 20044 } 20045 if (params.type === 'progressbar') { 20046 if (params.renderProgressbar) { 20047 paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); 20048 } else { 20049 paginationHTML = "<span class=\"".concat(params.progressbarFillClass, "\"></span>"); 20050 } 20051 $el.html(paginationHTML); 20052 } 20053 if (params.type !== 'custom') { 20054 emit('paginationRender', swiper.pagination.$el[0]); 20055 } 20056 } 20057 function init() { 20058 swiper.params.pagination = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_2__["default"])(swiper, swiper.originalParams.pagination, swiper.params.pagination, { 20059 el: 'swiper-pagination' 20060 }); 20061 var params = swiper.params.pagination; 20062 if (!params.el) return; 20063 var $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.el); 20064 if ($el.length === 0) return; 20065 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) { 20066 $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper 20067 20068 if ($el.length > 1) { 20069 $el = $el.filter(function (el) { 20070 if ((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(el).parents('.swiper')[0] !== swiper.el) return false; 20071 return true; 20072 }); 20073 } 20074 } 20075 if (params.type === 'bullets' && params.clickable) { 20076 $el.addClass(params.clickableClass); 20077 } 20078 $el.addClass(params.modifierClass + params.type); 20079 $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 20080 if (params.type === 'bullets' && params.dynamicBullets) { 20081 $el.addClass("".concat(params.modifierClass).concat(params.type, "-dynamic")); 20082 dynamicBulletIndex = 0; 20083 if (params.dynamicMainBullets < 1) { 20084 params.dynamicMainBullets = 1; 20085 } 20086 } 20087 if (params.type === 'progressbar' && params.progressbarOpposite) { 20088 $el.addClass(params.progressbarOppositeClass); 20089 } 20090 if (params.clickable) { 20091 $el.on('click', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.bulletClass), function onClick(e) { 20092 e.preventDefault(); 20093 var index = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(this).index() * swiper.params.slidesPerGroup; 20094 if (swiper.params.loop) index += swiper.loopedSlides; 20095 swiper.slideTo(index); 20096 }); 20097 } 20098 Object.assign(swiper.pagination, { 20099 $el: $el, 20100 el: $el[0] 20101 }); 20102 if (!swiper.enabled) { 20103 $el.addClass(params.lockClass); 20104 } 20105 } 20106 function destroy() { 20107 var params = swiper.params.pagination; 20108 if (isPaginationDisabled()) return; 20109 var $el = swiper.pagination.$el; 20110 $el.removeClass(params.hiddenClass); 20111 $el.removeClass(params.modifierClass + params.type); 20112 $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 20113 if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass); 20114 if (params.clickable) { 20115 $el.off('click', (0,_shared_classes_to_selector_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.bulletClass)); 20116 } 20117 } 20118 on('init', function () { 20119 if (swiper.params.pagination.enabled === false) { 20120 // eslint-disable-next-line 20121 disable(); 20122 } else { 20123 init(); 20124 render(); 20125 update(); 20126 } 20127 }); 20128 on('activeIndexChange', function () { 20129 if (swiper.params.loop) { 20130 update(); 20131 } else if (typeof swiper.snapIndex === 'undefined') { 20132 update(); 20133 } 20134 }); 20135 on('snapIndexChange', function () { 20136 if (!swiper.params.loop) { 20137 update(); 20138 } 20139 }); 20140 on('slidesLengthChange', function () { 20141 if (swiper.params.loop) { 20142 render(); 20143 update(); 20144 } 20145 }); 20146 on('snapGridLengthChange', function () { 20147 if (!swiper.params.loop) { 20148 render(); 20149 update(); 20150 } 20151 }); 20152 on('destroy', function () { 20153 destroy(); 20154 }); 20155 on('enable disable', function () { 20156 var $el = swiper.pagination.$el; 20157 if ($el) { 20158 $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass); 20159 } 20160 }); 20161 on('lock unlock', function () { 20162 update(); 20163 }); 20164 on('click', function (_s, e) { 20165 var targetEl = e.target; 20166 var $el = swiper.pagination.$el; 20167 if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !(0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(targetEl).hasClass(swiper.params.pagination.bulletClass)) { 20168 if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return; 20169 var isHidden = $el.hasClass(swiper.params.pagination.hiddenClass); 20170 if (isHidden === true) { 20171 emit('paginationShow'); 20172 } else { 20173 emit('paginationHide'); 20174 } 20175 $el.toggleClass(swiper.params.pagination.hiddenClass); 20176 } 20177 }); 20178 var enable = function enable() { 20179 swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass); 20180 if (swiper.pagination.$el) { 20181 swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass); 20182 } 20183 init(); 20184 render(); 20185 update(); 20186 }; 20187 var disable = function disable() { 20188 swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass); 20189 if (swiper.pagination.$el) { 20190 swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass); 20191 } 20192 destroy(); 20193 }; 20194 Object.assign(swiper.pagination, { 20195 enable: enable, 20196 disable: disable, 20197 render: render, 20198 update: update, 20199 init: init, 20200 destroy: destroy 20201 }); 20202} 20203 20204/***/ }), 20205
vendor: 4,650 bytes, lines 20206-20317
20206/***/ "./node_modules/swiper/modules/parallax/parallax.js": 20207/*!**********************************************************!*\ 20208 !*** ./node_modules/swiper/modules/parallax/parallax.js ***! 20209 \**********************************************************/ 20210/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 20211 20212"use strict"; 20213__webpack_require__.r(__webpack_exports__); 20214/* harmony export */ __webpack_require__.d(__webpack_exports__, { 20215/* harmony export */ "default": function() { return /* binding */ Parallax; } 20216/* harmony export */ }); 20217/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 20218 20219function Parallax(_ref) { 20220 var swiper = _ref.swiper, 20221 extendParams = _ref.extendParams, 20222 on = _ref.on; 20223 extendParams({ 20224 parallax: { 20225 enabled: false 20226 } 20227 }); 20228 var setTransform = function setTransform(el, progress) { 20229 var rtl = swiper.rtl; 20230 var $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(el); 20231 var rtlFactor = rtl ? -1 : 1; 20232 var p = $el.attr('data-swiper-parallax') || '0'; 20233 var x = $el.attr('data-swiper-parallax-x'); 20234 var y = $el.attr('data-swiper-parallax-y'); 20235 var scale = $el.attr('data-swiper-parallax-scale'); 20236 var opacity = $el.attr('data-swiper-parallax-opacity'); 20237 if (x || y) { 20238 x = x || '0'; 20239 y = y || '0'; 20240 } else if (swiper.isHorizontal()) { 20241 x = p; 20242 y = '0'; 20243 } else { 20244 y = p; 20245 x = '0'; 20246 } 20247 if (x.indexOf('%') >= 0) { 20248 x = "".concat(parseInt(x, 10) * progress * rtlFactor, "%"); 20249 } else { 20250 x = "".concat(x * progress * rtlFactor, "px"); 20251 } 20252 if (y.indexOf('%') >= 0) { 20253 y = "".concat(parseInt(y, 10) * progress, "%"); 20254 } else { 20255 y = "".concat(y * progress, "px"); 20256 } 20257 if (typeof opacity !== 'undefined' && opacity !== null) { 20258 var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress)); 20259 $el[0].style.opacity = currentOpacity; 20260 } 20261 if (typeof scale === 'undefined' || scale === null) { 20262 $el.transform("translate3d(".concat(x, ", ").concat(y, ", 0px)")); 20263 } else { 20264 var currentScale = scale - (scale - 1) * (1 - Math.abs(progress)); 20265 $el.transform("translate3d(".concat(x, ", ").concat(y, ", 0px) scale(").concat(currentScale, ")")); 20266 } 20267 }; 20268 var setTranslate = function setTranslate() { 20269 var $el = swiper.$el, 20270 slides = swiper.slides, 20271 progress = swiper.progress, 20272 snapGrid = swiper.snapGrid; 20273 $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) { 20274 setTransform(el, progress); 20275 }); 20276 slides.each(function (slideEl, slideIndex) { 20277 var slideProgress = slideEl.progress; 20278 if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { 20279 slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1); 20280 } 20281 slideProgress = Math.min(Math.max(slideProgress, -1), 1); 20282 (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) { 20283 setTransform(el, slideProgress); 20284 }); 20285 }); 20286 }; 20287 var setTransition = function setTransition() { 20288 var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : swiper.params.speed; 20289 var $el = swiper.$el; 20290 $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) { 20291 var $parallaxEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(parallaxEl); 20292 var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration; 20293 if (duration === 0) parallaxDuration = 0; 20294 $parallaxEl.transition(parallaxDuration); 20295 }); 20296 }; 20297 on('beforeInit', function () { 20298 if (!swiper.params.parallax.enabled) return; 20299 swiper.params.watchSlidesProgress = true; 20300 swiper.originalParams.watchSlidesProgress = true; 20301 }); 20302 on('init', function () { 20303 if (!swiper.params.parallax.enabled) return; 20304 setTranslate(); 20305 }); 20306 on('setTranslate', function () { 20307 if (!swiper.params.parallax.enabled) return; 20308 setTranslate(); 20309 }); 20310 on('setTransition', function (_swiper, duration) { 20311 if (!swiper.params.parallax.enabled) return; 20312 setTransition(duration); 20313 }); 20314} 20315 20316/***/ }), 20317
vendor: 12,134 bytes, lines 20318-20657
20318/***/ "./node_modules/swiper/modules/scrollbar/scrollbar.js": 20319/*!************************************************************!*\ 20320 !*** ./node_modules/swiper/modules/scrollbar/scrollbar.js ***! 20321 \************************************************************/ 20322/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 20323 20324"use strict"; 20325__webpack_require__.r(__webpack_exports__); 20326/* harmony export */ __webpack_require__.d(__webpack_exports__, { 20327/* harmony export */ "default": function() { return /* binding */ Scrollbar; } 20328/* harmony export */ }); 20329/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 20330/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 20331/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 20332/* harmony import */ var _shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../shared/create-element-if-not-defined.js */ "./node_modules/swiper/shared/create-element-if-not-defined.js"); 20333 20334 20335 20336 20337function Scrollbar(_ref) { 20338 var swiper = _ref.swiper, 20339 extendParams = _ref.extendParams, 20340 on = _ref.on, 20341 emit = _ref.emit; 20342 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 20343 var isTouched = false; 20344 var timeout = null; 20345 var dragTimeout = null; 20346 var dragStartPos; 20347 var dragSize; 20348 var trackSize; 20349 var divider; 20350 extendParams({ 20351 scrollbar: { 20352 el: null, 20353 dragSize: 'auto', 20354 hide: false, 20355 draggable: false, 20356 snapOnRelease: true, 20357 lockClass: 'swiper-scrollbar-lock', 20358 dragClass: 'swiper-scrollbar-drag', 20359 scrollbarDisabledClass: 'swiper-scrollbar-disabled', 20360 horizontalClass: "swiper-scrollbar-horizontal", 20361 verticalClass: "swiper-scrollbar-vertical" 20362 } 20363 }); 20364 swiper.scrollbar = { 20365 el: null, 20366 dragEl: null, 20367 $el: null, 20368 $dragEl: null 20369 }; 20370 function setTranslate() { 20371 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 20372 var scrollbar = swiper.scrollbar, 20373 rtl = swiper.rtlTranslate, 20374 progress = swiper.progress; 20375 var $dragEl = scrollbar.$dragEl, 20376 $el = scrollbar.$el; 20377 var params = swiper.params.scrollbar; 20378 var newSize = dragSize; 20379 var newPos = (trackSize - dragSize) * progress; 20380 if (rtl) { 20381 newPos = -newPos; 20382 if (newPos > 0) { 20383 newSize = dragSize - newPos; 20384 newPos = 0; 20385 } else if (-newPos + dragSize > trackSize) { 20386 newSize = trackSize + newPos; 20387 } 20388 } else if (newPos < 0) { 20389 newSize = dragSize + newPos; 20390 newPos = 0; 20391 } else if (newPos + dragSize > trackSize) { 20392 newSize = trackSize - newPos; 20393 } 20394 if (swiper.isHorizontal()) { 20395 $dragEl.transform("translate3d(".concat(newPos, "px, 0, 0)")); 20396 $dragEl[0].style.width = "".concat(newSize, "px"); 20397 } else { 20398 $dragEl.transform("translate3d(0px, ".concat(newPos, "px, 0)")); 20399 $dragEl[0].style.height = "".concat(newSize, "px"); 20400 } 20401 if (params.hide) { 20402 clearTimeout(timeout); 20403 $el[0].style.opacity = 1; 20404 timeout = setTimeout(function () { 20405 $el[0].style.opacity = 0; 20406 $el.transition(400); 20407 }, 1000); 20408 } 20409 } 20410 function setTransition(duration) { 20411 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 20412 swiper.scrollbar.$dragEl.transition(duration); 20413 } 20414 function updateSize() { 20415 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 20416 var scrollbar = swiper.scrollbar; 20417 var $dragEl = scrollbar.$dragEl, 20418 $el = scrollbar.$el; 20419 $dragEl[0].style.width = ''; 20420 $dragEl[0].style.height = ''; 20421 trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight; 20422 divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0)); 20423 if (swiper.params.scrollbar.dragSize === 'auto') { 20424 dragSize = trackSize * divider; 20425 } else { 20426 dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); 20427 } 20428 if (swiper.isHorizontal()) { 20429 $dragEl[0].style.width = "".concat(dragSize, "px"); 20430 } else { 20431 $dragEl[0].style.height = "".concat(dragSize, "px"); 20432 } 20433 if (divider >= 1) { 20434 $el[0].style.display = 'none'; 20435 } else { 20436 $el[0].style.display = ''; 20437 } 20438 if (swiper.params.scrollbar.hide) { 20439 $el[0].style.opacity = 0; 20440 } 20441 if (swiper.params.watchOverflow && swiper.enabled) { 20442 scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass); 20443 } 20444 } 20445 function getPointerPosition(e) { 20446 if (swiper.isHorizontal()) { 20447 return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX; 20448 } 20449 return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY; 20450 } 20451 function setDragPosition(e) { 20452 var scrollbar = swiper.scrollbar, 20453 rtl = swiper.rtlTranslate; 20454 var $el = scrollbar.$el; 20455 var positionRatio; 20456 positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize); 20457 positionRatio = Math.max(Math.min(positionRatio, 1), 0); 20458 if (rtl) { 20459 positionRatio = 1 - positionRatio; 20460 } 20461 var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio; 20462 swiper.updateProgress(position); 20463 swiper.setTranslate(position); 20464 swiper.updateActiveIndex(); 20465 swiper.updateSlidesClasses(); 20466 } 20467 function onDragStart(e) { 20468 var params = swiper.params.scrollbar; 20469 var scrollbar = swiper.scrollbar, 20470 $wrapperEl = swiper.$wrapperEl; 20471 var $el = scrollbar.$el, 20472 $dragEl = scrollbar.$dragEl; 20473 isTouched = true; 20474 dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null; 20475 e.preventDefault(); 20476 e.stopPropagation(); 20477 $wrapperEl.transition(100); 20478 $dragEl.transition(100); 20479 setDragPosition(e); 20480 clearTimeout(dragTimeout); 20481 $el.transition(0); 20482 if (params.hide) { 20483 $el.css('opacity', 1); 20484 } 20485 if (swiper.params.cssMode) { 20486 swiper.$wrapperEl.css('scroll-snap-type', 'none'); 20487 } 20488 emit('scrollbarDragStart', e); 20489 } 20490 function onDragMove(e) { 20491 var scrollbar = swiper.scrollbar, 20492 $wrapperEl = swiper.$wrapperEl; 20493 var $el = scrollbar.$el, 20494 $dragEl = scrollbar.$dragEl; 20495 if (!isTouched) return; 20496 if (e.preventDefault) e.preventDefault();else e.returnValue = false; 20497 setDragPosition(e); 20498 $wrapperEl.transition(0); 20499 $el.transition(0); 20500 $dragEl.transition(0); 20501 emit('scrollbarDragMove', e); 20502 } 20503 function onDragEnd(e) { 20504 var params = swiper.params.scrollbar; 20505 var scrollbar = swiper.scrollbar, 20506 $wrapperEl = swiper.$wrapperEl; 20507 var $el = scrollbar.$el; 20508 if (!isTouched) return; 20509 isTouched = false; 20510 if (swiper.params.cssMode) { 20511 swiper.$wrapperEl.css('scroll-snap-type', ''); 20512 $wrapperEl.transition(''); 20513 } 20514 if (params.hide) { 20515 clearTimeout(dragTimeout); 20516 dragTimeout = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.nextTick)(function () { 20517 $el.css('opacity', 0); 20518 $el.transition(400); 20519 }, 1000); 20520 } 20521 emit('scrollbarDragEnd', e); 20522 if (params.snapOnRelease) { 20523 swiper.slideToClosest(); 20524 } 20525 } 20526 function events(method) { 20527 var scrollbar = swiper.scrollbar, 20528 touchEventsTouch = swiper.touchEventsTouch, 20529 touchEventsDesktop = swiper.touchEventsDesktop, 20530 params = swiper.params, 20531 support = swiper.support; 20532 var $el = scrollbar.$el; 20533 if (!$el) return; 20534 var target = $el[0]; 20535 var activeListener = support.passiveListener && params.passiveListeners ? { 20536 passive: false, 20537 capture: false 20538 } : false; 20539 var passiveListener = support.passiveListener && params.passiveListeners ? { 20540 passive: true, 20541 capture: false 20542 } : false; 20543 if (!target) return; 20544 var eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener'; 20545 if (!support.touch) { 20546 target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener); 20547 document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener); 20548 document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener); 20549 } else { 20550 target[eventMethod](touchEventsTouch.start, onDragStart, activeListener); 20551 target[eventMethod](touchEventsTouch.move, onDragMove, activeListener); 20552 target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener); 20553 } 20554 } 20555 function enableDraggable() { 20556 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 20557 events('on'); 20558 } 20559 function disableDraggable() { 20560 if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return; 20561 events('off'); 20562 } 20563 function init() { 20564 var scrollbar = swiper.scrollbar, 20565 $swiperEl = swiper.$el; 20566 swiper.params.scrollbar = (0,_shared_create_element_if_not_defined_js__WEBPACK_IMPORTED_MODULE_3__["default"])(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, { 20567 el: 'swiper-scrollbar' 20568 }); 20569 var params = swiper.params.scrollbar; 20570 if (!params.el) return; 20571 var $el = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(params.el); 20572 if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) { 20573 $el = $swiperEl.find(params.el); 20574 } 20575 $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 20576 var $dragEl = $el.find(".".concat(swiper.params.scrollbar.dragClass)); 20577 if ($dragEl.length === 0) { 20578 $dragEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])("<div class=\"".concat(swiper.params.scrollbar.dragClass, "\"></div>")); 20579 $el.append($dragEl); 20580 } 20581 Object.assign(scrollbar, { 20582 $el: $el, 20583 el: $el[0], 20584 $dragEl: $dragEl, 20585 dragEl: $dragEl[0] 20586 }); 20587 if (params.draggable) { 20588 enableDraggable(); 20589 } 20590 if ($el) { 20591 $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass); 20592 } 20593 } 20594 function destroy() { 20595 var params = swiper.params.scrollbar; 20596 var $el = swiper.scrollbar.$el; 20597 if ($el) { 20598 $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass); 20599 } 20600 disableDraggable(); 20601 } 20602 on('init', function () { 20603 if (swiper.params.scrollbar.enabled === false) { 20604 // eslint-disable-next-line 20605 disable(); 20606 } else { 20607 init(); 20608 updateSize(); 20609 setTranslate(); 20610 } 20611 }); 20612 on('update resize observerUpdate lock unlock', function () { 20613 updateSize(); 20614 }); 20615 on('setTranslate', function () { 20616 setTranslate(); 20617 }); 20618 on('setTransition', function (_s, duration) { 20619 setTransition(duration); 20620 }); 20621 on('enable disable', function () { 20622 var $el = swiper.scrollbar.$el; 20623 if ($el) { 20624 $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass); 20625 } 20626 }); 20627 on('destroy', function () { 20628 destroy(); 20629 }); 20630 var enable = function enable() { 20631 swiper.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass); 20632 if (swiper.scrollbar.$el) { 20633 swiper.scrollbar.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass); 20634 } 20635 init(); 20636 updateSize(); 20637 setTranslate(); 20638 }; 20639 var disable = function disable() { 20640 swiper.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass); 20641 if (swiper.scrollbar.$el) { 20642 swiper.scrollbar.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass); 20643 } 20644 destroy(); 20645 }; 20646 Object.assign(swiper.scrollbar, { 20647 enable: enable, 20648 disable: disable, 20649 updateSize: updateSize, 20650 setTranslate: setTranslate, 20651 init: init, 20652 destroy: destroy 20653 }); 20654} 20655 20656/***/ }), 20657
vendor: 8,602 bytes, lines 20658-20846
20658/***/ "./node_modules/swiper/modules/thumbs/thumbs.js": 20659/*!******************************************************!*\ 20660 !*** ./node_modules/swiper/modules/thumbs/thumbs.js ***! 20661 \******************************************************/ 20662/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 20663 20664"use strict"; 20665__webpack_require__.r(__webpack_exports__); 20666/* harmony export */ __webpack_require__.d(__webpack_exports__, { 20667/* harmony export */ "default": function() { return /* binding */ Thumb; } 20668/* harmony export */ }); 20669/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 20670/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 20671 20672 20673function Thumb(_ref) { 20674 var swiper = _ref.swiper, 20675 extendParams = _ref.extendParams, 20676 on = _ref.on; 20677 extendParams({ 20678 thumbs: { 20679 swiper: null, 20680 multipleActiveThumbs: true, 20681 autoScrollOffset: 0, 20682 slideThumbActiveClass: 'swiper-slide-thumb-active', 20683 thumbsContainerClass: 'swiper-thumbs' 20684 } 20685 }); 20686 var initialized = false; 20687 var swiperCreated = false; 20688 swiper.thumbs = { 20689 swiper: null 20690 }; 20691 function onThumbClick() { 20692 var thumbsSwiper = swiper.thumbs.swiper; 20693 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 20694 var clickedIndex = thumbsSwiper.clickedIndex; 20695 var clickedSlide = thumbsSwiper.clickedSlide; 20696 if (clickedSlide && (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return; 20697 if (typeof clickedIndex === 'undefined' || clickedIndex === null) return; 20698 var slideToIndex; 20699 if (thumbsSwiper.params.loop) { 20700 slideToIndex = parseInt((0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10); 20701 } else { 20702 slideToIndex = clickedIndex; 20703 } 20704 if (swiper.params.loop) { 20705 var currentIndex = swiper.activeIndex; 20706 if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) { 20707 swiper.loopFix(); // eslint-disable-next-line 20708 20709 swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; 20710 currentIndex = swiper.activeIndex; 20711 } 20712 var prevIndex = swiper.slides.eq(currentIndex).prevAll("[data-swiper-slide-index=\"".concat(slideToIndex, "\"]")).eq(0).index(); 20713 var nextIndex = swiper.slides.eq(currentIndex).nextAll("[data-swiper-slide-index=\"".concat(slideToIndex, "\"]")).eq(0).index(); 20714 if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex; 20715 } 20716 swiper.slideTo(slideToIndex); 20717 } 20718 function init() { 20719 var thumbsParams = swiper.params.thumbs; 20720 if (initialized) return false; 20721 initialized = true; 20722 var SwiperClass = swiper.constructor; 20723 if (thumbsParams.swiper instanceof SwiperClass) { 20724 swiper.thumbs.swiper = thumbsParams.swiper; 20725 Object.assign(swiper.thumbs.swiper.originalParams, { 20726 watchSlidesProgress: true, 20727 slideToClickedSlide: false 20728 }); 20729 Object.assign(swiper.thumbs.swiper.params, { 20730 watchSlidesProgress: true, 20731 slideToClickedSlide: false 20732 }); 20733 } else if ((0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_0__.isObject)(thumbsParams.swiper)) { 20734 var thumbsSwiperParams = Object.assign({}, thumbsParams.swiper); 20735 Object.assign(thumbsSwiperParams, { 20736 watchSlidesProgress: true, 20737 slideToClickedSlide: false 20738 }); 20739 swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams); 20740 swiperCreated = true; 20741 } 20742 swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass); 20743 swiper.thumbs.swiper.on('tap', onThumbClick); 20744 return true; 20745 } 20746 function update(initial) { 20747 var thumbsSwiper = swiper.thumbs.swiper; 20748 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 20749 var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; // Activate thumbs 20750 20751 var thumbsToActivate = 1; 20752 var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass; 20753 if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) { 20754 thumbsToActivate = swiper.params.slidesPerView; 20755 } 20756 if (!swiper.params.thumbs.multipleActiveThumbs) { 20757 thumbsToActivate = 1; 20758 } 20759 thumbsToActivate = Math.floor(thumbsToActivate); 20760 thumbsSwiper.slides.removeClass(thumbActiveClass); 20761 if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) { 20762 for (var i = 0; i < thumbsToActivate; i += 1) { 20763 thumbsSwiper.$wrapperEl.children("[data-swiper-slide-index=\"".concat(swiper.realIndex + i, "\"]")).addClass(thumbActiveClass); 20764 } 20765 } else { 20766 for (var _i = 0; _i < thumbsToActivate; _i += 1) { 20767 thumbsSwiper.slides.eq(swiper.realIndex + _i).addClass(thumbActiveClass); 20768 } 20769 } 20770 var autoScrollOffset = swiper.params.thumbs.autoScrollOffset; 20771 var useOffset = autoScrollOffset && !thumbsSwiper.params.loop; 20772 if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) { 20773 var currentThumbsIndex = thumbsSwiper.activeIndex; 20774 var newThumbsIndex; 20775 var direction; 20776 if (thumbsSwiper.params.loop) { 20777 if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) { 20778 thumbsSwiper.loopFix(); // eslint-disable-next-line 20779 20780 thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft; 20781 currentThumbsIndex = thumbsSwiper.activeIndex; 20782 } // Find actual thumbs index to slide to 20783 20784 var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll("[data-swiper-slide-index=\"".concat(swiper.realIndex, "\"]")).eq(0).index(); 20785 var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll("[data-swiper-slide-index=\"".concat(swiper.realIndex, "\"]")).eq(0).index(); 20786 if (typeof prevThumbsIndex === 'undefined') { 20787 newThumbsIndex = nextThumbsIndex; 20788 } else if (typeof nextThumbsIndex === 'undefined') { 20789 newThumbsIndex = prevThumbsIndex; 20790 } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) { 20791 newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex; 20792 } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) { 20793 newThumbsIndex = nextThumbsIndex; 20794 } else { 20795 newThumbsIndex = prevThumbsIndex; 20796 } 20797 direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev'; 20798 } else { 20799 newThumbsIndex = swiper.realIndex; 20800 direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev'; 20801 } 20802 if (useOffset) { 20803 newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset; 20804 } 20805 if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) { 20806 if (thumbsSwiper.params.centeredSlides) { 20807 if (newThumbsIndex > currentThumbsIndex) { 20808 newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1; 20809 } else { 20810 newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1; 20811 } 20812 } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1; 20813 } 20814 thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined); 20815 } 20816 } 20817 } 20818 on('beforeInit', function () { 20819 var thumbs = swiper.params.thumbs; 20820 if (!thumbs || !thumbs.swiper) return; 20821 init(); 20822 update(true); 20823 }); 20824 on('slideChange update resize observerUpdate', function () { 20825 update(); 20826 }); 20827 on('setTransition', function (_s, duration) { 20828 var thumbsSwiper = swiper.thumbs.swiper; 20829 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 20830 thumbsSwiper.setTransition(duration); 20831 }); 20832 on('beforeDestroy', function () { 20833 var thumbsSwiper = swiper.thumbs.swiper; 20834 if (!thumbsSwiper || thumbsSwiper.destroyed) return; 20835 if (swiperCreated) { 20836 thumbsSwiper.destroy(); 20837 } 20838 }); 20839 Object.assign(swiper.thumbs, { 20840 init: init, 20841 update: update 20842 }); 20843} 20844 20845/***/ }), 20846
vendor: 9,987 bytes, lines 20847-21113
20847/***/ "./node_modules/swiper/modules/virtual/virtual.js": 20848/*!********************************************************!*\ 20849 !*** ./node_modules/swiper/modules/virtual/virtual.js ***! 20850 \********************************************************/ 20851/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 20852 20853"use strict"; 20854__webpack_require__.r(__webpack_exports__); 20855/* harmony export */ __webpack_require__.d(__webpack_exports__, { 20856/* harmony export */ "default": function() { return /* binding */ Virtual; } 20857/* harmony export */ }); 20858/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 20859/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 20860function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 20861 20862 20863function Virtual(_ref) { 20864 var swiper = _ref.swiper, 20865 extendParams = _ref.extendParams, 20866 on = _ref.on, 20867 emit = _ref.emit; 20868 extendParams({ 20869 virtual: { 20870 enabled: false, 20871 slides: [], 20872 cache: true, 20873 renderSlide: null, 20874 renderExternal: null, 20875 renderExternalUpdate: true, 20876 addSlidesBefore: 0, 20877 addSlidesAfter: 0 20878 } 20879 }); 20880 var cssModeTimeout; 20881 swiper.virtual = { 20882 cache: {}, 20883 from: undefined, 20884 to: undefined, 20885 slides: [], 20886 offset: 0, 20887 slidesGrid: [] 20888 }; 20889 function renderSlide(slide, index) { 20890 var params = swiper.params.virtual; 20891 if (params.cache && swiper.virtual.cache[index]) { 20892 return swiper.virtual.cache[index]; 20893 } 20894 var $slideEl = params.renderSlide ? (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])(params.renderSlide.call(swiper, slide, index)) : (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])("<div class=\"".concat(swiper.params.slideClass, "\" data-swiper-slide-index=\"").concat(index, "\">").concat(slide, "</div>")); 20895 if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index); 20896 if (params.cache) swiper.virtual.cache[index] = $slideEl; 20897 return $slideEl; 20898 } 20899 function update(force) { 20900 var _swiper$params = swiper.params, 20901 slidesPerView = _swiper$params.slidesPerView, 20902 slidesPerGroup = _swiper$params.slidesPerGroup, 20903 centeredSlides = _swiper$params.centeredSlides; 20904 var _swiper$params$virtua = swiper.params.virtual, 20905 addSlidesBefore = _swiper$params$virtua.addSlidesBefore, 20906 addSlidesAfter = _swiper$params$virtua.addSlidesAfter; 20907 var _swiper$virtual = swiper.virtual, 20908 previousFrom = _swiper$virtual.from, 20909 previousTo = _swiper$virtual.to, 20910 slides = _swiper$virtual.slides, 20911 previousSlidesGrid = _swiper$virtual.slidesGrid, 20912 previousOffset = _swiper$virtual.offset; 20913 if (!swiper.params.cssMode) { 20914 swiper.updateActiveIndex(); 20915 } 20916 var activeIndex = swiper.activeIndex || 0; 20917 var offsetProp; 20918 if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top'; 20919 var slidesAfter; 20920 var slidesBefore; 20921 if (centeredSlides) { 20922 slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter; 20923 slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore; 20924 } else { 20925 slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter; 20926 slidesBefore = slidesPerGroup + addSlidesBefore; 20927 } 20928 var from = Math.max((activeIndex || 0) - slidesBefore, 0); 20929 var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1); 20930 var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); 20931 Object.assign(swiper.virtual, { 20932 from: from, 20933 to: to, 20934 offset: offset, 20935 slidesGrid: swiper.slidesGrid 20936 }); 20937 function onRendered() { 20938 swiper.updateSlides(); 20939 swiper.updateProgress(); 20940 swiper.updateSlidesClasses(); 20941 if (swiper.lazy && swiper.params.lazy.enabled) { 20942 swiper.lazy.load(); 20943 } 20944 emit('virtualUpdate'); 20945 } 20946 if (previousFrom === from && previousTo === to && !force) { 20947 if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) { 20948 swiper.slides.css(offsetProp, "".concat(offset, "px")); 20949 } 20950 swiper.updateProgress(); 20951 emit('virtualUpdate'); 20952 return; 20953 } 20954 if (swiper.params.virtual.renderExternal) { 20955 swiper.params.virtual.renderExternal.call(swiper, { 20956 offset: offset, 20957 from: from, 20958 to: to, 20959 slides: function getSlides() { 20960 var slidesToRender = []; 20961 for (var i = from; i <= to; i += 1) { 20962 slidesToRender.push(slides[i]); 20963 } 20964 return slidesToRender; 20965 }() 20966 }); 20967 if (swiper.params.virtual.renderExternalUpdate) { 20968 onRendered(); 20969 } else { 20970 emit('virtualUpdate'); 20971 } 20972 return; 20973 } 20974 var prependIndexes = []; 20975 var appendIndexes = []; 20976 if (force) { 20977 swiper.$wrapperEl.find(".".concat(swiper.params.slideClass)).remove(); 20978 } else { 20979 for (var i = previousFrom; i <= previousTo; i += 1) { 20980 if (i < from || i > to) { 20981 swiper.$wrapperEl.find(".".concat(swiper.params.slideClass, "[data-swiper-slide-index=\"").concat(i, "\"]")).remove(); 20982 } 20983 } 20984 } 20985 for (var _i = 0; _i < slides.length; _i += 1) { 20986 if (_i >= from && _i <= to) { 20987 if (typeof previousTo === 'undefined' || force) { 20988 appendIndexes.push(_i); 20989 } else { 20990 if (_i > previousTo) appendIndexes.push(_i); 20991 if (_i < previousFrom) prependIndexes.push(_i); 20992 } 20993 } 20994 } 20995 appendIndexes.forEach(function (index) { 20996 swiper.$wrapperEl.append(renderSlide(slides[index], index)); 20997 }); 20998 prependIndexes.sort(function (a, b) { 20999 return b - a; 21000 }).forEach(function (index) { 21001 swiper.$wrapperEl.prepend(renderSlide(slides[index], index)); 21002 }); 21003 swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, "".concat(offset, "px")); 21004 onRendered(); 21005 } 21006 function appendSlide(slides) { 21007 if (_typeof(slides) === 'object' && 'length' in slides) { 21008 for (var i = 0; i < slides.length; i += 1) { 21009 if (slides[i]) swiper.virtual.slides.push(slides[i]); 21010 } 21011 } else { 21012 swiper.virtual.slides.push(slides); 21013 } 21014 update(true); 21015 } 21016 function prependSlide(slides) { 21017 var activeIndex = swiper.activeIndex; 21018 var newActiveIndex = activeIndex + 1; 21019 var numberOfNewSlides = 1; 21020 if (Array.isArray(slides)) { 21021 for (var i = 0; i < slides.length; i += 1) { 21022 if (slides[i]) swiper.virtual.slides.unshift(slides[i]); 21023 } 21024 newActiveIndex = activeIndex + slides.length; 21025 numberOfNewSlides = slides.length; 21026 } else { 21027 swiper.virtual.slides.unshift(slides); 21028 } 21029 if (swiper.params.virtual.cache) { 21030 var cache = swiper.virtual.cache; 21031 var newCache = {}; 21032 Object.keys(cache).forEach(function (cachedIndex) { 21033 var $cachedEl = cache[cachedIndex]; 21034 var cachedElIndex = $cachedEl.attr('data-swiper-slide-index'); 21035 if (cachedElIndex) { 21036 $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides); 21037 } 21038 newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl; 21039 }); 21040 swiper.virtual.cache = newCache; 21041 } 21042 update(true); 21043 swiper.slideTo(newActiveIndex, 0); 21044 } 21045 function removeSlide(slidesIndexes) { 21046 if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return; 21047 var activeIndex = swiper.activeIndex; 21048 if (Array.isArray(slidesIndexes)) { 21049 for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) { 21050 swiper.virtual.slides.splice(slidesIndexes[i], 1); 21051 if (swiper.params.virtual.cache) { 21052 delete swiper.virtual.cache[slidesIndexes[i]]; 21053 } 21054 if (slidesIndexes[i] < activeIndex) activeIndex -= 1; 21055 activeIndex = Math.max(activeIndex, 0); 21056 } 21057 } else { 21058 swiper.virtual.slides.splice(slidesIndexes, 1); 21059 if (swiper.params.virtual.cache) { 21060 delete swiper.virtual.cache[slidesIndexes]; 21061 } 21062 if (slidesIndexes < activeIndex) activeIndex -= 1; 21063 activeIndex = Math.max(activeIndex, 0); 21064 } 21065 update(true); 21066 swiper.slideTo(activeIndex, 0); 21067 } 21068 function removeAllSlides() { 21069 swiper.virtual.slides = []; 21070 if (swiper.params.virtual.cache) { 21071 swiper.virtual.cache = {}; 21072 } 21073 update(true); 21074 swiper.slideTo(0, 0); 21075 } 21076 on('beforeInit', function () { 21077 if (!swiper.params.virtual.enabled) return; 21078 swiper.virtual.slides = swiper.params.virtual.slides; 21079 swiper.classNames.push("".concat(swiper.params.containerModifierClass, "virtual")); 21080 swiper.params.watchSlidesProgress = true; 21081 swiper.originalParams.watchSlidesProgress = true; 21082 if (!swiper.params.initialSlide) { 21083 update(); 21084 } 21085 }); 21086 on('setTranslate', function () { 21087 if (!swiper.params.virtual.enabled) return; 21088 if (swiper.params.cssMode && !swiper._immediateVirtual) { 21089 clearTimeout(cssModeTimeout); 21090 cssModeTimeout = setTimeout(function () { 21091 update(); 21092 }, 100); 21093 } else { 21094 update(); 21095 } 21096 }); 21097 on('init update resize', function () { 21098 if (!swiper.params.virtual.enabled) return; 21099 if (swiper.params.cssMode) { 21100 (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_1__.setCSSProperty)(swiper.wrapperEl, '--swiper-virtual-size', "".concat(swiper.virtualSize, "px")); 21101 } 21102 }); 21103 Object.assign(swiper.virtual, { 21104 appendSlide: appendSlide, 21105 prependSlide: prependSlide, 21106 removeSlide: removeSlide, 21107 removeAllSlides: removeAllSlides, 21108 update: update 21109 }); 21110} 21111 21112/***/ }), 21113
vendor: 22,135 bytes, lines 21114-21659
21114/***/ "./node_modules/swiper/modules/zoom/zoom.js": 21115/*!**************************************************!*\ 21116 !*** ./node_modules/swiper/modules/zoom/zoom.js ***! 21117 \**************************************************/ 21118/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 21119 21120"use strict"; 21121__webpack_require__.r(__webpack_exports__); 21122/* harmony export */ __webpack_require__.d(__webpack_exports__, { 21123/* harmony export */ "default": function() { return /* binding */ Zoom; } 21124/* harmony export */ }); 21125/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 21126/* harmony import */ var _shared_dom_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../shared/dom.js */ "./node_modules/swiper/shared/dom.js"); 21127/* harmony import */ var _shared_utils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../shared/utils.js */ "./node_modules/swiper/shared/utils.js"); 21128 21129 21130 21131function Zoom(_ref) { 21132 var swiper = _ref.swiper, 21133 extendParams = _ref.extendParams, 21134 on = _ref.on, 21135 emit = _ref.emit; 21136 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 21137 extendParams({ 21138 zoom: { 21139 enabled: false, 21140 maxRatio: 3, 21141 minRatio: 1, 21142 toggle: true, 21143 containerClass: 'swiper-zoom-container', 21144 zoomedSlideClass: 'swiper-slide-zoomed' 21145 } 21146 }); 21147 swiper.zoom = { 21148 enabled: false 21149 }; 21150 var currentScale = 1; 21151 var isScaling = false; 21152 var gesturesEnabled; 21153 var fakeGestureTouched; 21154 var fakeGestureMoved; 21155 var gesture = { 21156 $slideEl: undefined, 21157 slideWidth: undefined, 21158 slideHeight: undefined, 21159 $imageEl: undefined, 21160 $imageWrapEl: undefined, 21161 maxRatio: 3 21162 }; 21163 var image = { 21164 isTouched: undefined, 21165 isMoved: undefined, 21166 currentX: undefined, 21167 currentY: undefined, 21168 minX: undefined, 21169 minY: undefined, 21170 maxX: undefined, 21171 maxY: undefined, 21172 width: undefined, 21173 height: undefined, 21174 startX: undefined, 21175 startY: undefined, 21176 touchesStart: {}, 21177 touchesCurrent: {} 21178 }; 21179 var velocity = { 21180 x: undefined, 21181 y: undefined, 21182 prevPositionX: undefined, 21183 prevPositionY: undefined, 21184 prevTime: undefined 21185 }; 21186 var scale = 1; 21187 Object.defineProperty(swiper.zoom, 'scale', { 21188 get: function get() { 21189 return scale; 21190 }, 21191 set: function set(value) { 21192 if (scale !== value) { 21193 var imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined; 21194 var slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined; 21195 emit('zoomChange', value, imageEl, slideEl); 21196 } 21197 scale = value; 21198 } 21199 }); 21200 function getDistanceBetweenTouches(e) { 21201 if (e.targetTouches.length < 2) return 1; 21202 var x1 = e.targetTouches[0].pageX; 21203 var y1 = e.targetTouches[0].pageY; 21204 var x2 = e.targetTouches[1].pageX; 21205 var y2 = e.targetTouches[1].pageY; 21206 var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2)); 21207 return distance; 21208 } // Events 21209 21210 function onGestureStart(e) { 21211 var support = swiper.support; 21212 var params = swiper.params.zoom; 21213 fakeGestureTouched = false; 21214 fakeGestureMoved = false; 21215 if (!support.gestures) { 21216 if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) { 21217 return; 21218 } 21219 fakeGestureTouched = true; 21220 gesture.scaleStart = getDistanceBetweenTouches(e); 21221 } 21222 if (!gesture.$slideEl || !gesture.$slideEl.length) { 21223 gesture.$slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target).closest(".".concat(swiper.params.slideClass)); 21224 if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); 21225 gesture.$imageEl = gesture.$slideEl.find(".".concat(params.containerClass)).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0); 21226 gesture.$imageWrapEl = gesture.$imageEl.parent(".".concat(params.containerClass)); 21227 gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; 21228 if (gesture.$imageWrapEl.length === 0) { 21229 gesture.$imageEl = undefined; 21230 return; 21231 } 21232 } 21233 if (gesture.$imageEl) { 21234 gesture.$imageEl.transition(0); 21235 } 21236 isScaling = true; 21237 } 21238 function onGestureChange(e) { 21239 var support = swiper.support; 21240 var params = swiper.params.zoom; 21241 var zoom = swiper.zoom; 21242 if (!support.gestures) { 21243 if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) { 21244 return; 21245 } 21246 fakeGestureMoved = true; 21247 gesture.scaleMove = getDistanceBetweenTouches(e); 21248 } 21249 if (!gesture.$imageEl || gesture.$imageEl.length === 0) { 21250 if (e.type === 'gesturechange') onGestureStart(e); 21251 return; 21252 } 21253 if (support.gestures) { 21254 zoom.scale = e.scale * currentScale; 21255 } else { 21256 zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale; 21257 } 21258 if (zoom.scale > gesture.maxRatio) { 21259 zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5); 21260 } 21261 if (zoom.scale < params.minRatio) { 21262 zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5); 21263 } 21264 gesture.$imageEl.transform("translate3d(0,0,0) scale(".concat(zoom.scale, ")")); 21265 } 21266 function onGestureEnd(e) { 21267 var device = swiper.device; 21268 var support = swiper.support; 21269 var params = swiper.params.zoom; 21270 var zoom = swiper.zoom; 21271 if (!support.gestures) { 21272 if (!fakeGestureTouched || !fakeGestureMoved) { 21273 return; 21274 } 21275 if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) { 21276 return; 21277 } 21278 fakeGestureTouched = false; 21279 fakeGestureMoved = false; 21280 } 21281 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 21282 zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); 21283 gesture.$imageEl.transition(swiper.params.speed).transform("translate3d(0,0,0) scale(".concat(zoom.scale, ")")); 21284 currentScale = zoom.scale; 21285 isScaling = false; 21286 if (zoom.scale === 1) gesture.$slideEl = undefined; 21287 } 21288 function onTouchStart(e) { 21289 var device = swiper.device; 21290 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 21291 if (image.isTouched) return; 21292 if (device.android && e.cancelable) e.preventDefault(); 21293 image.isTouched = true; 21294 image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; 21295 image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; 21296 } 21297 function onTouchMove(e) { 21298 var zoom = swiper.zoom; 21299 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 21300 swiper.allowClick = false; 21301 if (!image.isTouched || !gesture.$slideEl) return; 21302 if (!image.isMoved) { 21303 image.width = gesture.$imageEl[0].offsetWidth; 21304 image.height = gesture.$imageEl[0].offsetHeight; 21305 image.startX = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.getTranslate)(gesture.$imageWrapEl[0], 'x') || 0; 21306 image.startY = (0,_shared_utils_js__WEBPACK_IMPORTED_MODULE_2__.getTranslate)(gesture.$imageWrapEl[0], 'y') || 0; 21307 gesture.slideWidth = gesture.$slideEl[0].offsetWidth; 21308 gesture.slideHeight = gesture.$slideEl[0].offsetHeight; 21309 gesture.$imageWrapEl.transition(0); 21310 } // Define if we need image drag 21311 21312 var scaledWidth = image.width * zoom.scale; 21313 var scaledHeight = image.height * zoom.scale; 21314 if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return; 21315 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 21316 image.maxX = -image.minX; 21317 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 21318 image.maxY = -image.minY; 21319 image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; 21320 image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; 21321 if (!image.isMoved && !isScaling) { 21322 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)) { 21323 image.isTouched = false; 21324 return; 21325 } 21326 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)) { 21327 image.isTouched = false; 21328 return; 21329 } 21330 } 21331 if (e.cancelable) { 21332 e.preventDefault(); 21333 } 21334 e.stopPropagation(); 21335 image.isMoved = true; 21336 image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX; 21337 image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY; 21338 if (image.currentX < image.minX) { 21339 image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8); 21340 } 21341 if (image.currentX > image.maxX) { 21342 image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8); 21343 } 21344 if (image.currentY < image.minY) { 21345 image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8); 21346 } 21347 if (image.currentY > image.maxY) { 21348 image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8); 21349 } // Velocity 21350 21351 if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x; 21352 if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y; 21353 if (!velocity.prevTime) velocity.prevTime = Date.now(); 21354 velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; 21355 velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; 21356 if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0; 21357 if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0; 21358 velocity.prevPositionX = image.touchesCurrent.x; 21359 velocity.prevPositionY = image.touchesCurrent.y; 21360 velocity.prevTime = Date.now(); 21361 gesture.$imageWrapEl.transform("translate3d(".concat(image.currentX, "px, ").concat(image.currentY, "px,0)")); 21362 } 21363 function onTouchEnd() { 21364 var zoom = swiper.zoom; 21365 if (!gesture.$imageEl || gesture.$imageEl.length === 0) return; 21366 if (!image.isTouched || !image.isMoved) { 21367 image.isTouched = false; 21368 image.isMoved = false; 21369 return; 21370 } 21371 image.isTouched = false; 21372 image.isMoved = false; 21373 var momentumDurationX = 300; 21374 var momentumDurationY = 300; 21375 var momentumDistanceX = velocity.x * momentumDurationX; 21376 var newPositionX = image.currentX + momentumDistanceX; 21377 var momentumDistanceY = velocity.y * momentumDurationY; 21378 var newPositionY = image.currentY + momentumDistanceY; // Fix duration 21379 21380 if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); 21381 if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); 21382 var momentumDuration = Math.max(momentumDurationX, momentumDurationY); 21383 image.currentX = newPositionX; 21384 image.currentY = newPositionY; // Define if we need image drag 21385 21386 var scaledWidth = image.width * zoom.scale; 21387 var scaledHeight = image.height * zoom.scale; 21388 image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0); 21389 image.maxX = -image.minX; 21390 image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0); 21391 image.maxY = -image.minY; 21392 image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); 21393 image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); 21394 gesture.$imageWrapEl.transition(momentumDuration).transform("translate3d(".concat(image.currentX, "px, ").concat(image.currentY, "px,0)")); 21395 } 21396 function onTransitionEnd() { 21397 var zoom = swiper.zoom; 21398 if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) { 21399 if (gesture.$imageEl) { 21400 gesture.$imageEl.transform('translate3d(0,0,0) scale(1)'); 21401 } 21402 if (gesture.$imageWrapEl) { 21403 gesture.$imageWrapEl.transform('translate3d(0,0,0)'); 21404 } 21405 zoom.scale = 1; 21406 currentScale = 1; 21407 gesture.$slideEl = undefined; 21408 gesture.$imageEl = undefined; 21409 gesture.$imageWrapEl = undefined; 21410 } 21411 } 21412 function zoomIn(e) { 21413 var zoom = swiper.zoom; 21414 var params = swiper.params.zoom; 21415 if (!gesture.$slideEl) { 21416 if (e && e.target) { 21417 gesture.$slideEl = (0,_shared_dom_js__WEBPACK_IMPORTED_MODULE_1__["default"])(e.target).closest(".".concat(swiper.params.slideClass)); 21418 } 21419 if (!gesture.$slideEl) { 21420 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 21421 gesture.$slideEl = swiper.$wrapperEl.children(".".concat(swiper.params.slideActiveClass)); 21422 } else { 21423 gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); 21424 } 21425 } 21426 gesture.$imageEl = gesture.$slideEl.find(".".concat(params.containerClass)).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0); 21427 gesture.$imageWrapEl = gesture.$imageEl.parent(".".concat(params.containerClass)); 21428 } 21429 if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return; 21430 if (swiper.params.cssMode) { 21431 swiper.wrapperEl.style.overflow = 'hidden'; 21432 swiper.wrapperEl.style.touchAction = 'none'; 21433 } 21434 gesture.$slideEl.addClass("".concat(params.zoomedSlideClass)); 21435 var touchX; 21436 var touchY; 21437 var offsetX; 21438 var offsetY; 21439 var diffX; 21440 var diffY; 21441 var translateX; 21442 var translateY; 21443 var imageWidth; 21444 var imageHeight; 21445 var scaledWidth; 21446 var scaledHeight; 21447 var translateMinX; 21448 var translateMinY; 21449 var translateMaxX; 21450 var translateMaxY; 21451 var slideWidth; 21452 var slideHeight; 21453 if (typeof image.touchesStart.x === 'undefined' && e) { 21454 touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX; 21455 touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY; 21456 } else { 21457 touchX = image.touchesStart.x; 21458 touchY = image.touchesStart.y; 21459 } 21460 zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; 21461 currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; 21462 if (e) { 21463 slideWidth = gesture.$slideEl[0].offsetWidth; 21464 slideHeight = gesture.$slideEl[0].offsetHeight; 21465 offsetX = gesture.$slideEl.offset().left + window.scrollX; 21466 offsetY = gesture.$slideEl.offset().top + window.scrollY; 21467 diffX = offsetX + slideWidth / 2 - touchX; 21468 diffY = offsetY + slideHeight / 2 - touchY; 21469 imageWidth = gesture.$imageEl[0].offsetWidth; 21470 imageHeight = gesture.$imageEl[0].offsetHeight; 21471 scaledWidth = imageWidth * zoom.scale; 21472 scaledHeight = imageHeight * zoom.scale; 21473 translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0); 21474 translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0); 21475 translateMaxX = -translateMinX; 21476 translateMaxY = -translateMinY; 21477 translateX = diffX * zoom.scale; 21478 translateY = diffY * zoom.scale; 21479 if (translateX < translateMinX) { 21480 translateX = translateMinX; 21481 } 21482 if (translateX > translateMaxX) { 21483 translateX = translateMaxX; 21484 } 21485 if (translateY < translateMinY) { 21486 translateY = translateMinY; 21487 } 21488 if (translateY > translateMaxY) { 21489 translateY = translateMaxY; 21490 } 21491 } else { 21492 translateX = 0; 21493 translateY = 0; 21494 } 21495 gesture.$imageWrapEl.transition(300).transform("translate3d(".concat(translateX, "px, ").concat(translateY, "px,0)")); 21496 gesture.$imageEl.transition(300).transform("translate3d(0,0,0) scale(".concat(zoom.scale, ")")); 21497 } 21498 function zoomOut() { 21499 var zoom = swiper.zoom; 21500 var params = swiper.params.zoom; 21501 if (!gesture.$slideEl) { 21502 if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { 21503 gesture.$slideEl = swiper.$wrapperEl.children(".".concat(swiper.params.slideActiveClass)); 21504 } else { 21505 gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); 21506 } 21507 gesture.$imageEl = gesture.$slideEl.find(".".concat(params.containerClass)).eq(0).find('picture, img, svg, canvas, .swiper-zoom-target').eq(0); 21508 gesture.$imageWrapEl = gesture.$imageEl.parent(".".concat(params.containerClass)); 21509 } 21510 if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return; 21511 if (swiper.params.cssMode) { 21512 swiper.wrapperEl.style.overflow = ''; 21513 swiper.wrapperEl.style.touchAction = ''; 21514 } 21515 zoom.scale = 1; 21516 currentScale = 1; 21517 gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)'); 21518 gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)'); 21519 gesture.$slideEl.removeClass("".concat(params.zoomedSlideClass)); 21520 gesture.$slideEl = undefined; 21521 } // Toggle Zoom 21522 21523 function zoomToggle(e) { 21524 var zoom = swiper.zoom; 21525 if (zoom.scale && zoom.scale !== 1) { 21526 // Zoom Out 21527 zoomOut(); 21528 } else { 21529 // Zoom In 21530 zoomIn(e); 21531 } 21532 } 21533 function getListeners() { 21534 var support = swiper.support; 21535 var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? { 21536 passive: true, 21537 capture: false 21538 } : false; 21539 var activeListenerWithCapture = support.passiveListener ? { 21540 passive: false, 21541 capture: true 21542 } : true; 21543 return { 21544 passiveListener: passiveListener, 21545 activeListenerWithCapture: activeListenerWithCapture 21546 }; 21547 } 21548 function getSlideSelector() { 21549 return ".".concat(swiper.params.slideClass); 21550 } 21551 function toggleGestures(method) { 21552 var _getListeners = getListeners(), 21553 passiveListener = _getListeners.passiveListener; 21554 var slideSelector = getSlideSelector(); 21555 swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener); 21556 swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener); 21557 swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener); 21558 } 21559 function enableGestures() { 21560 if (gesturesEnabled) return; 21561 gesturesEnabled = true; 21562 toggleGestures('on'); 21563 } 21564 function disableGestures() { 21565 if (!gesturesEnabled) return; 21566 gesturesEnabled = false; 21567 toggleGestures('off'); 21568 } // Attach/Detach Events 21569 21570 function enable() { 21571 var zoom = swiper.zoom; 21572 if (zoom.enabled) return; 21573 zoom.enabled = true; 21574 var support = swiper.support; 21575 var _getListeners2 = getListeners(), 21576 passiveListener = _getListeners2.passiveListener, 21577 activeListenerWithCapture = _getListeners2.activeListenerWithCapture; 21578 var slideSelector = getSlideSelector(); // Scale image 21579 21580 if (support.gestures) { 21581 swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener); 21582 swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener); 21583 } else if (swiper.touchEvents.start === 'touchstart') { 21584 swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener); 21585 swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture); 21586 swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener); 21587 if (swiper.touchEvents.cancel) { 21588 swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener); 21589 } 21590 } // Move image 21591 21592 swiper.$wrapperEl.on(swiper.touchEvents.move, ".".concat(swiper.params.zoom.containerClass), onTouchMove, activeListenerWithCapture); 21593 } 21594 function disable() { 21595 var zoom = swiper.zoom; 21596 if (!zoom.enabled) return; 21597 var support = swiper.support; 21598 zoom.enabled = false; 21599 var _getListeners3 = getListeners(), 21600 passiveListener = _getListeners3.passiveListener, 21601 activeListenerWithCapture = _getListeners3.activeListenerWithCapture; 21602 var slideSelector = getSlideSelector(); // Scale image 21603 21604 if (support.gestures) { 21605 swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener); 21606 swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener); 21607 } else if (swiper.touchEvents.start === 'touchstart') { 21608 swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener); 21609 swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture); 21610 swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener); 21611 if (swiper.touchEvents.cancel) { 21612 swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener); 21613 } 21614 } // Move image 21615 21616 swiper.$wrapperEl.off(swiper.touchEvents.move, ".".concat(swiper.params.zoom.containerClass), onTouchMove, activeListenerWithCapture); 21617 } 21618 on('init', function () { 21619 if (swiper.params.zoom.enabled) { 21620 enable(); 21621 } 21622 }); 21623 on('destroy', function () { 21624 disable(); 21625 }); 21626 on('touchStart', function (_s, e) { 21627 if (!swiper.zoom.enabled) return; 21628 onTouchStart(e); 21629 }); 21630 on('touchEnd', function (_s, e) { 21631 if (!swiper.zoom.enabled) return; 21632 onTouchEnd(e); 21633 }); 21634 on('doubleTap', function (_s, e) { 21635 if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { 21636 zoomToggle(e); 21637 } 21638 }); 21639 on('transitionEnd', function () { 21640 if (swiper.zoom.enabled && swiper.params.zoom.enabled) { 21641 onTransitionEnd(); 21642 } 21643 }); 21644 on('slideChange', function () { 21645 if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) { 21646 onTransitionEnd(); 21647 } 21648 }); 21649 Object.assign(swiper.zoom, { 21650 enable: enable, 21651 disable: disable, 21652 in: zoomIn, 21653 out: zoomOut, 21654 toggle: zoomToggle 21655 }); 21656} 21657 21658/***/ }), 21659
vendor: 837 bytes, lines 21660-21678
21660/***/ "./node_modules/swiper/shared/classes-to-selector.js": 21661/*!***********************************************************!*\ 21662 !*** ./node_modules/swiper/shared/classes-to-selector.js ***! 21663 \***********************************************************/ 21664/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 21665 21666"use strict"; 21667__webpack_require__.r(__webpack_exports__); 21668/* harmony export */ __webpack_require__.d(__webpack_exports__, { 21669/* harmony export */ "default": function() { return /* binding */ classesToSelector; } 21670/* harmony export */ }); 21671function classesToSelector() { 21672 var classes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; 21673 return ".".concat(classes.trim().replace(/([\.:!\/])/g, '\\$1') // eslint-disable-line 21674 .replace(/ /g, '.')); 21675} 21676 21677/***/ }), 21678
vendor: 1,457 bytes, lines 21679-21712
21679/***/ "./node_modules/swiper/shared/create-element-if-not-defined.js": 21680/*!*********************************************************************!*\ 21681 !*** ./node_modules/swiper/shared/create-element-if-not-defined.js ***! 21682 \*********************************************************************/ 21683/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 21684 21685"use strict"; 21686__webpack_require__.r(__webpack_exports__); 21687/* harmony export */ __webpack_require__.d(__webpack_exports__, { 21688/* harmony export */ "default": function() { return /* binding */ createElementIfNotDefined; } 21689/* harmony export */ }); 21690/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 21691 21692function createElementIfNotDefined(swiper, originalParams, params, checkProps) { 21693 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 21694 if (swiper.params.createElements) { 21695 Object.keys(checkProps).forEach(function (key) { 21696 if (!params[key] && params.auto === true) { 21697 var element = swiper.$el.children(".".concat(checkProps[key]))[0]; 21698 if (!element) { 21699 element = document.createElement('div'); 21700 element.className = checkProps[key]; 21701 swiper.$el.append(element); 21702 } 21703 params[key] = element; 21704 originalParams[key] = element; 21705 } 21706 }); 21707 } 21708 return params; 21709} 21710 21711/***/ }), 21712
vendor: 1,253 bytes, lines 21713-21738
21713/***/ "./node_modules/swiper/shared/create-shadow.js": 21714/*!*****************************************************!*\ 21715 !*** ./node_modules/swiper/shared/create-shadow.js ***! 21716 \*****************************************************/ 21717/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 21718 21719"use strict"; 21720__webpack_require__.r(__webpack_exports__); 21721/* harmony export */ __webpack_require__.d(__webpack_exports__, { 21722/* harmony export */ "default": function() { return /* binding */ createShadow; } 21723/* harmony export */ }); 21724/* harmony import */ var _dom_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom.js */ "./node_modules/swiper/shared/dom.js"); 21725 21726function createShadow(params, $slideEl, side) { 21727 var shadowClass = "swiper-slide-shadow".concat(side ? "-".concat(side) : ''); 21728 var $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl; 21729 var $shadowEl = $shadowContainer.children(".".concat(shadowClass)); 21730 if (!$shadowEl.length) { 21731 $shadowEl = (0,_dom_js__WEBPACK_IMPORTED_MODULE_0__["default"])("<div class=\"swiper-slide-shadow".concat(side ? "-".concat(side) : '', "\"></div>")); 21732 $shadowContainer.append($shadowEl); 21733 } 21734 return $shadowEl; 21735} 21736 21737/***/ }), 21738
vendor: 2,704 bytes, lines 21739-21796
21739/***/ "./node_modules/swiper/shared/dom.js": 21740/*!*******************************************!*\ 21741 !*** ./node_modules/swiper/shared/dom.js ***! 21742 \*******************************************/ 21743/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 21744 21745"use strict"; 21746__webpack_require__.r(__webpack_exports__); 21747/* harmony import */ var dom7__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! dom7 */ "./node_modules/dom7/dom7.esm.js"); 21748 21749var Methods = { 21750 addClass: dom7__WEBPACK_IMPORTED_MODULE_0__.addClass, 21751 removeClass: dom7__WEBPACK_IMPORTED_MODULE_0__.removeClass, 21752 hasClass: dom7__WEBPACK_IMPORTED_MODULE_0__.hasClass, 21753 toggleClass: dom7__WEBPACK_IMPORTED_MODULE_0__.toggleClass, 21754 attr: dom7__WEBPACK_IMPORTED_MODULE_0__.attr, 21755 removeAttr: dom7__WEBPACK_IMPORTED_MODULE_0__.removeAttr, 21756 transform: dom7__WEBPACK_IMPORTED_MODULE_0__.transform, 21757 transition: dom7__WEBPACK_IMPORTED_MODULE_0__.transition, 21758 on: dom7__WEBPACK_IMPORTED_MODULE_0__.on, 21759 off: dom7__WEBPACK_IMPORTED_MODULE_0__.off, 21760 trigger: dom7__WEBPACK_IMPORTED_MODULE_0__.trigger, 21761 transitionEnd: dom7__WEBPACK_IMPORTED_MODULE_0__.transitionEnd, 21762 outerWidth: dom7__WEBPACK_IMPORTED_MODULE_0__.outerWidth, 21763 outerHeight: dom7__WEBPACK_IMPORTED_MODULE_0__.outerHeight, 21764 styles: dom7__WEBPACK_IMPORTED_MODULE_0__.styles, 21765 offset: dom7__WEBPACK_IMPORTED_MODULE_0__.offset, 21766 css: dom7__WEBPACK_IMPORTED_MODULE_0__.css, 21767 each: dom7__WEBPACK_IMPORTED_MODULE_0__.each, 21768 html: dom7__WEBPACK_IMPORTED_MODULE_0__.html, 21769 text: dom7__WEBPACK_IMPORTED_MODULE_0__.text, 21770 is: dom7__WEBPACK_IMPORTED_MODULE_0__.is, 21771 index: dom7__WEBPACK_IMPORTED_MODULE_0__.index, 21772 eq: dom7__WEBPACK_IMPORTED_MODULE_0__.eq, 21773 append: dom7__WEBPACK_IMPORTED_MODULE_0__.append, 21774 prepend: dom7__WEBPACK_IMPORTED_MODULE_0__.prepend, 21775 next: dom7__WEBPACK_IMPORTED_MODULE_0__.next, 21776 nextAll: dom7__WEBPACK_IMPORTED_MODULE_0__.nextAll, 21777 prev: dom7__WEBPACK_IMPORTED_MODULE_0__.prev, 21778 prevAll: dom7__WEBPACK_IMPORTED_MODULE_0__.prevAll, 21779 parent: dom7__WEBPACK_IMPORTED_MODULE_0__.parent, 21780 parents: dom7__WEBPACK_IMPORTED_MODULE_0__.parents, 21781 closest: dom7__WEBPACK_IMPORTED_MODULE_0__.closest, 21782 find: dom7__WEBPACK_IMPORTED_MODULE_0__.find, 21783 children: dom7__WEBPACK_IMPORTED_MODULE_0__.children, 21784 filter: dom7__WEBPACK_IMPORTED_MODULE_0__.filter, 21785 remove: dom7__WEBPACK_IMPORTED_MODULE_0__.remove 21786}; 21787Object.keys(Methods).forEach(function (methodName) { 21788 Object.defineProperty(dom7__WEBPACK_IMPORTED_MODULE_0__.$.fn, methodName, { 21789 value: Methods[methodName], 21790 writable: true 21791 }); 21792}); 21793/* harmony default export */ __webpack_exports__["default"] = (dom7__WEBPACK_IMPORTED_MODULE_0__.$); 21794 21795/***/ }), 21796
vendor: 2,575 bytes, lines 21797-21865
21797/***/ "./node_modules/swiper/shared/effect-init.js": 21798/*!***************************************************!*\ 21799 !*** ./node_modules/swiper/shared/effect-init.js ***! 21800 \***************************************************/ 21801/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 21802 21803"use strict"; 21804__webpack_require__.r(__webpack_exports__); 21805/* harmony export */ __webpack_require__.d(__webpack_exports__, { 21806/* harmony export */ "default": function() { return /* binding */ effectInit; } 21807/* harmony export */ }); 21808function effectInit(params) { 21809 var effect = params.effect, 21810 swiper = params.swiper, 21811 on = params.on, 21812 setTranslate = params.setTranslate, 21813 setTransition = params.setTransition, 21814 overwriteParams = params.overwriteParams, 21815 perspective = params.perspective, 21816 recreateShadows = params.recreateShadows, 21817 getEffectParams = params.getEffectParams; 21818 on('beforeInit', function () { 21819 if (swiper.params.effect !== effect) return; 21820 swiper.classNames.push("".concat(swiper.params.containerModifierClass).concat(effect)); 21821 if (perspective && perspective()) { 21822 swiper.classNames.push("".concat(swiper.params.containerModifierClass, "3d")); 21823 } 21824 var overwriteParamsResult = overwriteParams ? overwriteParams() : {}; 21825 Object.assign(swiper.params, overwriteParamsResult); 21826 Object.assign(swiper.originalParams, overwriteParamsResult); 21827 }); 21828 on('setTranslate', function () { 21829 if (swiper.params.effect !== effect) return; 21830 setTranslate(); 21831 }); 21832 on('setTransition', function (_s, duration) { 21833 if (swiper.params.effect !== effect) return; 21834 setTransition(duration); 21835 }); 21836 on('transitionEnd', function () { 21837 if (swiper.params.effect !== effect) return; 21838 if (recreateShadows) { 21839 if (!getEffectParams || !getEffectParams().slideShadows) return; // remove shadows 21840 21841 swiper.slides.each(function (slideEl) { 21842 var $slideEl = swiper.$(slideEl); 21843 $slideEl.find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').remove(); 21844 }); // create new one 21845 21846 recreateShadows(); 21847 } 21848 }); 21849 var requireUpdateOnVirtual; 21850 on('virtualUpdate', function () { 21851 if (swiper.params.effect !== effect) return; 21852 if (!swiper.slides.length) { 21853 requireUpdateOnVirtual = true; 21854 } 21855 requestAnimationFrame(function () { 21856 if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) { 21857 setTranslate(); 21858 requireUpdateOnVirtual = false; 21859 } 21860 }); 21861 }); 21862} 21863 21864/***/ }), 21865
vendor: 831 bytes, lines 21866-21888
21866/***/ "./node_modules/swiper/shared/effect-target.js": 21867/*!*****************************************************!*\ 21868 !*** ./node_modules/swiper/shared/effect-target.js ***! 21869 \*****************************************************/ 21870/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 21871 21872"use strict"; 21873__webpack_require__.r(__webpack_exports__); 21874/* harmony export */ __webpack_require__.d(__webpack_exports__, { 21875/* harmony export */ "default": function() { return /* binding */ effectTarget; } 21876/* harmony export */ }); 21877function effectTarget(effectParams, $slideEl) { 21878 if (effectParams.transformEl) { 21879 return $slideEl.find(effectParams.transformEl).css({ 21880 'backface-visibility': 'hidden', 21881 '-webkit-backface-visibility': 'hidden' 21882 }); 21883 } 21884 return $slideEl; 21885} 21886 21887/***/ }), 21888
vendor: 1,663 bytes, lines 21889-21930
21889/***/ "./node_modules/swiper/shared/effect-virtual-transition-end.js": 21890/*!*********************************************************************!*\ 21891 !*** ./node_modules/swiper/shared/effect-virtual-transition-end.js ***! 21892 \*********************************************************************/ 21893/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 21894 21895"use strict"; 21896__webpack_require__.r(__webpack_exports__); 21897/* harmony export */ __webpack_require__.d(__webpack_exports__, { 21898/* harmony export */ "default": function() { return /* binding */ effectVirtualTransitionEnd; } 21899/* harmony export */ }); 21900function effectVirtualTransitionEnd(_ref) { 21901 var swiper = _ref.swiper, 21902 duration = _ref.duration, 21903 transformEl = _ref.transformEl, 21904 allSlides = _ref.allSlides; 21905 var slides = swiper.slides, 21906 activeIndex = swiper.activeIndex, 21907 $wrapperEl = swiper.$wrapperEl; 21908 if (swiper.params.virtualTranslate && duration !== 0) { 21909 var eventTriggered = false; 21910 var $transitionEndTarget; 21911 if (allSlides) { 21912 $transitionEndTarget = transformEl ? slides.find(transformEl) : slides; 21913 } else { 21914 $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex); 21915 } 21916 $transitionEndTarget.transitionEnd(function () { 21917 if (eventTriggered) return; 21918 if (!swiper || swiper.destroyed) return; 21919 eventTriggered = true; 21920 swiper.animating = false; 21921 var triggerEvents = ['webkitTransitionEnd', 'transitionend']; 21922 for (var i = 0; i < triggerEvents.length; i += 1) { 21923 $wrapperEl.trigger(triggerEvents[i]); 21924 } 21925 }); 21926 } 21927} 21928 21929/***/ }), 21930
vendor: 1,242 bytes, lines 21931-21965
21931/***/ "./node_modules/swiper/shared/get-browser.js": 21932/*!***************************************************!*\ 21933 !*** ./node_modules/swiper/shared/get-browser.js ***! 21934 \***************************************************/ 21935/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 21936 21937"use strict"; 21938__webpack_require__.r(__webpack_exports__); 21939/* harmony export */ __webpack_require__.d(__webpack_exports__, { 21940/* harmony export */ getBrowser: function() { return /* binding */ getBrowser; } 21941/* harmony export */ }); 21942/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 21943 21944var browser; 21945function calcBrowser() { 21946 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 21947 function isSafari() { 21948 var ua = window.navigator.userAgent.toLowerCase(); 21949 return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0; 21950 } 21951 return { 21952 isSafari: isSafari(), 21953 isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent) 21954 }; 21955} 21956function getBrowser() { 21957 if (!browser) { 21958 browser = calcBrowser(); 21959 } 21960 return browser; 21961} 21962 21963 21964/***/ }), 21965
vendor: 2,582 bytes, lines 21966-22031
21966/***/ "./node_modules/swiper/shared/get-device.js": 21967/*!**************************************************!*\ 21968 !*** ./node_modules/swiper/shared/get-device.js ***! 21969 \**************************************************/ 21970/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 21971 21972"use strict"; 21973__webpack_require__.r(__webpack_exports__); 21974/* harmony export */ __webpack_require__.d(__webpack_exports__, { 21975/* harmony export */ getDevice: function() { return /* binding */ getDevice; } 21976/* harmony export */ }); 21977/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 21978/* harmony import */ var _get_support_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./get-support.js */ "./node_modules/swiper/shared/get-support.js"); 21979 21980 21981var deviceCached; 21982function calcDevice() { 21983 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 21984 userAgent = _ref.userAgent; 21985 var support = (0,_get_support_js__WEBPACK_IMPORTED_MODULE_1__.getSupport)(); 21986 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 21987 var platform = window.navigator.platform; 21988 var ua = userAgent || window.navigator.userAgent; 21989 var device = { 21990 ios: false, 21991 android: false 21992 }; 21993 var screenWidth = window.screen.width; 21994 var screenHeight = window.screen.height; 21995 var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line 21996 21997 var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); 21998 var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); 21999 var iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); 22000 var windows = platform === 'Win32'; 22001 var macos = platform === 'MacIntel'; // iPadOs 13 fix 22002 22003 var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810']; 22004 if (!ipad && macos && support.touch && iPadScreens.indexOf("".concat(screenWidth, "x").concat(screenHeight)) >= 0) { 22005 ipad = ua.match(/(Version)\/([\d.]+)/); 22006 if (!ipad) ipad = [0, 1, '13_0_0']; 22007 macos = false; 22008 } // Android 22009 22010 if (android && !windows) { 22011 device.os = 'android'; 22012 device.android = true; 22013 } 22014 if (ipad || iphone || ipod) { 22015 device.os = 'ios'; 22016 device.ios = true; 22017 } // Export object 22018 22019 return device; 22020} 22021function getDevice() { 22022 var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 22023 if (!deviceCached) { 22024 deviceCached = calcDevice(overrides); 22025 } 22026 return deviceCached; 22027} 22028 22029 22030/***/ }), 22031
vendor: 1,754 bytes, lines 22032-22080
22032/***/ "./node_modules/swiper/shared/get-support.js": 22033/*!***************************************************!*\ 22034 !*** ./node_modules/swiper/shared/get-support.js ***! 22035 \***************************************************/ 22036/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 22037 22038"use strict"; 22039__webpack_require__.r(__webpack_exports__); 22040/* harmony export */ __webpack_require__.d(__webpack_exports__, { 22041/* harmony export */ getSupport: function() { return /* binding */ getSupport; } 22042/* harmony export */ }); 22043/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 22044 22045var support; 22046function calcSupport() { 22047 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 22048 var document = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getDocument)(); 22049 return { 22050 smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style, 22051 touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch), 22052 passiveListener: function checkPassiveListener() { 22053 var supportsPassive = false; 22054 try { 22055 var opts = Object.defineProperty({}, 'passive', { 22056 // eslint-disable-next-line 22057 get: function get() { 22058 supportsPassive = true; 22059 } 22060 }); 22061 window.addEventListener('testPassiveListener', null, opts); 22062 } catch (e) {// No support 22063 } 22064 return supportsPassive; 22065 }(), 22066 gestures: function checkGestures() { 22067 return 'ongesturestart' in window; 22068 }() 22069 }; 22070} 22071function getSupport() { 22072 if (!support) { 22073 support = calcSupport(); 22074 } 22075 return support; 22076} 22077 22078 22079/***/ }), 22080
vendor: 8,365 bytes, lines 22081-22267
22081/***/ "./node_modules/swiper/shared/utils.js": 22082/*!*********************************************!*\ 22083 !*** ./node_modules/swiper/shared/utils.js ***! 22084 \*********************************************/ 22085/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 22086 22087"use strict"; 22088__webpack_require__.r(__webpack_exports__); 22089/* harmony export */ __webpack_require__.d(__webpack_exports__, { 22090/* harmony export */ animateCSSModeScroll: function() { return /* binding */ animateCSSModeScroll; }, 22091/* harmony export */ deleteProps: function() { return /* binding */ deleteProps; }, 22092/* harmony export */ extend: function() { return /* binding */ extend; }, 22093/* harmony export */ getComputedStyle: function() { return /* binding */ getComputedStyle; }, 22094/* harmony export */ getTranslate: function() { return /* binding */ getTranslate; }, 22095/* harmony export */ isObject: function() { return /* binding */ isObject; }, 22096/* harmony export */ nextTick: function() { return /* binding */ nextTick; }, 22097/* harmony export */ now: function() { return /* binding */ now; }, 22098/* harmony export */ setCSSProperty: function() { return /* binding */ setCSSProperty; } 22099/* harmony export */ }); 22100/* harmony import */ var ssr_window__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ssr-window */ "./node_modules/ssr-window/ssr-window.esm.js"); 22101function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } 22102function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } 22103function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } 22104function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 22105 22106function deleteProps(obj) { 22107 var object = obj; 22108 Object.keys(object).forEach(function (key) { 22109 try { 22110 object[key] = null; 22111 } catch (e) {// no getter for object 22112 } 22113 try { 22114 delete object[key]; 22115 } catch (e) {// something got wrong 22116 } 22117 }); 22118} 22119function nextTick(callback) { 22120 var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; 22121 return setTimeout(callback, delay); 22122} 22123function now() { 22124 return Date.now(); 22125} 22126function getComputedStyle(el) { 22127 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 22128 var style; 22129 if (window.getComputedStyle) { 22130 style = window.getComputedStyle(el, null); 22131 } 22132 if (!style && el.currentStyle) { 22133 style = el.currentStyle; 22134 } 22135 if (!style) { 22136 style = el.style; 22137 } 22138 return style; 22139} 22140function getTranslate(el) { 22141 var axis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x'; 22142 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 22143 var matrix; 22144 var curTransform; 22145 var transformMatrix; 22146 var curStyle = getComputedStyle(el, null); 22147 if (window.WebKitCSSMatrix) { 22148 curTransform = curStyle.transform || curStyle.webkitTransform; 22149 if (curTransform.split(',').length > 6) { 22150 curTransform = curTransform.split(', ').map(function (a) { 22151 return a.replace(',', '.'); 22152 }).join(', '); 22153 } // Some old versions of Webkit choke when 'none' is passed; pass 22154 // empty string instead in this case 22155 22156 transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); 22157 } else { 22158 transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); 22159 matrix = transformMatrix.toString().split(','); 22160 } 22161 if (axis === 'x') { 22162 // Latest Chrome and webkits Fix 22163 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix 22164 else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers 22165 else curTransform = parseFloat(matrix[4]); 22166 } 22167 if (axis === 'y') { 22168 // Latest Chrome and webkits Fix 22169 if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix 22170 else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers 22171 else curTransform = parseFloat(matrix[5]); 22172 } 22173 return curTransform || 0; 22174} 22175function isObject(o) { 22176 return _typeof(o) === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object'; 22177} 22178function isNode(node) { 22179 // eslint-disable-next-line 22180 if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') { 22181 return node instanceof HTMLElement; 22182 } 22183 return node && (node.nodeType === 1 || node.nodeType === 11); 22184} 22185function extend() { 22186 var to = Object(arguments.length <= 0 ? undefined : arguments[0]); 22187 var noExtend = ['__proto__', 'constructor', 'prototype']; 22188 for (var i = 1; i < arguments.length; i += 1) { 22189 var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i]; 22190 if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) { 22191 var keysArray = Object.keys(Object(nextSource)).filter(function (key) { 22192 return noExtend.indexOf(key) < 0; 22193 }); 22194 for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { 22195 var nextKey = keysArray[nextIndex]; 22196 var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); 22197 if (desc !== undefined && desc.enumerable) { 22198 if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) { 22199 if (nextSource[nextKey].__swiper__) { 22200 to[nextKey] = nextSource[nextKey]; 22201 } else { 22202 extend(to[nextKey], nextSource[nextKey]); 22203 } 22204 } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) { 22205 to[nextKey] = {}; 22206 if (nextSource[nextKey].__swiper__) { 22207 to[nextKey] = nextSource[nextKey]; 22208 } else { 22209 extend(to[nextKey], nextSource[nextKey]); 22210 } 22211 } else { 22212 to[nextKey] = nextSource[nextKey]; 22213 } 22214 } 22215 } 22216 } 22217 } 22218 return to; 22219} 22220function setCSSProperty(el, varName, varValue) { 22221 el.style.setProperty(varName, varValue); 22222} 22223function animateCSSModeScroll(_ref) { 22224 var swiper = _ref.swiper, 22225 targetPosition = _ref.targetPosition, 22226 side = _ref.side; 22227 var window = (0,ssr_window__WEBPACK_IMPORTED_MODULE_0__.getWindow)(); 22228 var startPosition = -swiper.translate; 22229 var startTime = null; 22230 var time; 22231 var duration = swiper.params.speed; 22232 swiper.wrapperEl.style.scrollSnapType = 'none'; 22233 window.cancelAnimationFrame(swiper.cssModeFrameID); 22234 var dir = targetPosition > startPosition ? 'next' : 'prev'; 22235 var isOutOfBound = function isOutOfBound(current, target) { 22236 return dir === 'next' && current >= target || dir === 'prev' && current <= target; 22237 }; 22238 var _animate = function animate() { 22239 time = new Date().getTime(); 22240 if (startTime === null) { 22241 startTime = time; 22242 } 22243 var progress = Math.max(Math.min((time - startTime) / duration, 1), 0); 22244 var easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2; 22245 var currentPosition = startPosition + easeProgress * (targetPosition - startPosition); 22246 if (isOutOfBound(currentPosition, targetPosition)) { 22247 currentPosition = targetPosition; 22248 } 22249 swiper.wrapperEl.scrollTo(_defineProperty({}, side, currentPosition)); 22250 if (isOutOfBound(currentPosition, targetPosition)) { 22251 swiper.wrapperEl.style.overflow = 'hidden'; 22252 swiper.wrapperEl.style.scrollSnapType = ''; 22253 setTimeout(function () { 22254 swiper.wrapperEl.style.overflow = ''; 22255 swiper.wrapperEl.scrollTo(_defineProperty({}, side, currentPosition)); 22256 }); 22257 window.cancelAnimationFrame(swiper.cssModeFrameID); 22258 return; 22259 } 22260 swiper.cssModeFrameID = window.requestAnimationFrame(_animate); 22261 }; 22262 _animate(); 22263} 22264 22265 22266/***/ }), 22267
vendor: 9,729 bytes, lines 22268-22368
22268/***/ "./node_modules/swiper/swiper.esm.js": 22269/*!*******************************************!*\ 22270 !*** ./node_modules/swiper/swiper.esm.js ***! 22271 \*******************************************/ 22272/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) { 22273 22274"use strict"; 22275__webpack_require__.r(__webpack_exports__); 22276/* harmony export */ __webpack_require__.d(__webpack_exports__, { 22277/* harmony export */ A11y: function() { return /* reexport safe */ _modules_a11y_a11y_js__WEBPACK_IMPORTED_MODULE_11__["default"]; }, 22278/* harmony export */ Autoplay: function() { return /* reexport safe */ _modules_autoplay_autoplay_js__WEBPACK_IMPORTED_MODULE_14__["default"]; }, 22279/* harmony export */ Controller: function() { return /* reexport safe */ _modules_controller_controller_js__WEBPACK_IMPORTED_MODULE_10__["default"]; }, 22280/* harmony export */ EffectCards: function() { return /* reexport safe */ _modules_effect_cards_effect_cards_js__WEBPACK_IMPORTED_MODULE_24__["default"]; }, 22281/* harmony export */ EffectCoverflow: function() { return /* reexport safe */ _modules_effect_coverflow_effect_coverflow_js__WEBPACK_IMPORTED_MODULE_22__["default"]; }, 22282/* harmony export */ EffectCreative: function() { return /* reexport safe */ _modules_effect_creative_effect_creative_js__WEBPACK_IMPORTED_MODULE_23__["default"]; }, 22283/* harmony export */ EffectCube: function() { return /* reexport safe */ _modules_effect_cube_effect_cube_js__WEBPACK_IMPORTED_MODULE_20__["default"]; }, 22284/* harmony export */ EffectFade: function() { return /* reexport safe */ _modules_effect_fade_effect_fade_js__WEBPACK_IMPORTED_MODULE_19__["default"]; }, 22285/* harmony export */ EffectFlip: function() { return /* reexport safe */ _modules_effect_flip_effect_flip_js__WEBPACK_IMPORTED_MODULE_21__["default"]; }, 22286/* harmony export */ FreeMode: function() { return /* reexport safe */ _modules_free_mode_free_mode_js__WEBPACK_IMPORTED_MODULE_16__["default"]; }, 22287/* harmony export */ Grid: function() { return /* reexport safe */ _modules_grid_grid_js__WEBPACK_IMPORTED_MODULE_17__["default"]; }, 22288/* harmony export */ HashNavigation: function() { return /* reexport safe */ _modules_hash_navigation_hash_navigation_js__WEBPACK_IMPORTED_MODULE_13__["default"]; }, 22289/* harmony export */ History: function() { return /* reexport safe */ _modules_history_history_js__WEBPACK_IMPORTED_MODULE_12__["default"]; }, 22290/* harmony export */ Keyboard: function() { return /* reexport safe */ _modules_keyboard_keyboard_js__WEBPACK_IMPORTED_MODULE_2__["default"]; }, 22291/* harmony export */ Lazy: function() { return /* reexport safe */ _modules_lazy_lazy_js__WEBPACK_IMPORTED_MODULE_9__["default"]; }, 22292/* harmony export */ Manipulation: function() { return /* reexport safe */ _modules_manipulation_manipulation_js__WEBPACK_IMPORTED_MODULE_18__["default"]; }, 22293/* harmony export */ Mousewheel: function() { return /* reexport safe */ _modules_mousewheel_mousewheel_js__WEBPACK_IMPORTED_MODULE_3__["default"]; }, 22294/* harmony export */ Navigation: function() { return /* reexport safe */ _modules_navigation_navigation_js__WEBPACK_IMPORTED_MODULE_4__["default"]; }, 22295/* harmony export */ Pagination: function() { return /* reexport safe */ _modules_pagination_pagination_js__WEBPACK_IMPORTED_MODULE_5__["default"]; }, 22296/* harmony export */ Parallax: function() { return /* reexport safe */ _modules_parallax_parallax_js__WEBPACK_IMPORTED_MODULE_7__["default"]; }, 22297/* harmony export */ Scrollbar: function() { return /* reexport safe */ _modules_scrollbar_scrollbar_js__WEBPACK_IMPORTED_MODULE_6__["default"]; }, 22298/* harmony export */ Swiper: function() { return /* reexport safe */ _core_core_js__WEBPACK_IMPORTED_MODULE_0__["default"]; }, 22299/* harmony export */ Thumbs: function() { return /* reexport safe */ _modules_thumbs_thumbs_js__WEBPACK_IMPORTED_MODULE_15__["default"]; }, 22300/* harmony export */ Virtual: function() { return /* reexport safe */ _modules_virtual_virtual_js__WEBPACK_IMPORTED_MODULE_1__["default"]; }, 22301/* harmony export */ Zoom: function() { return /* reexport safe */ _modules_zoom_zoom_js__WEBPACK_IMPORTED_MODULE_8__["default"]; }, 22302/* harmony export */ "default": function() { return /* reexport safe */ _core_core_js__WEBPACK_IMPORTED_MODULE_0__["default"]; } 22303/* harmony export */ }); 22304/* harmony import */ var _core_core_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./core/core.js */ "./node_modules/swiper/core/core.js"); 22305/* harmony import */ var _modules_virtual_virtual_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modules/virtual/virtual.js */ "./node_modules/swiper/modules/virtual/virtual.js"); 22306/* harmony import */ var _modules_keyboard_keyboard_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modules/keyboard/keyboard.js */ "./node_modules/swiper/modules/keyboard/keyboard.js"); 22307/* harmony import */ var _modules_mousewheel_mousewheel_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modules/mousewheel/mousewheel.js */ "./node_modules/swiper/modules/mousewheel/mousewheel.js"); 22308/* harmony import */ var _modules_navigation_navigation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modules/navigation/navigation.js */ "./node_modules/swiper/modules/navigation/navigation.js"); 22309/* harmony import */ var _modules_pagination_pagination_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modules/pagination/pagination.js */ "./node_modules/swiper/modules/pagination/pagination.js"); 22310/* harmony import */ var _modules_scrollbar_scrollbar_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modules/scrollbar/scrollbar.js */ "./node_modules/swiper/modules/scrollbar/scrollbar.js"); 22311/* harmony import */ var _modules_parallax_parallax_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modules/parallax/parallax.js */ "./node_modules/swiper/modules/parallax/parallax.js"); 22312/* harmony import */ var _modules_zoom_zoom_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modules/zoom/zoom.js */ "./node_modules/swiper/modules/zoom/zoom.js"); 22313/* harmony import */ var _modules_lazy_lazy_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./modules/lazy/lazy.js */ "./node_modules/swiper/modules/lazy/lazy.js"); 22314/* harmony import */ var _modules_controller_controller_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./modules/controller/controller.js */ "./node_modules/swiper/modules/controller/controller.js"); 22315/* harmony import */ var _modules_a11y_a11y_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./modules/a11y/a11y.js */ "./node_modules/swiper/modules/a11y/a11y.js"); 22316/* harmony import */ var _modules_history_history_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modules/history/history.js */ "./node_modules/swiper/modules/history/history.js"); 22317/* harmony import */ var _modules_hash_navigation_hash_navigation_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./modules/hash-navigation/hash-navigation.js */ "./node_modules/swiper/modules/hash-navigation/hash-navigation.js"); 22318/* harmony import */ var _modules_autoplay_autoplay_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./modules/autoplay/autoplay.js */ "./node_modules/swiper/modules/autoplay/autoplay.js"); 22319/* harmony import */ var _modules_thumbs_thumbs_js__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./modules/thumbs/thumbs.js */ "./node_modules/swiper/modules/thumbs/thumbs.js"); 22320/* harmony import */ var _modules_free_mode_free_mode_js__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./modules/free-mode/free-mode.js */ "./node_modules/swiper/modules/free-mode/free-mode.js"); 22321/* harmony import */ var _modules_grid_grid_js__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./modules/grid/grid.js */ "./node_modules/swiper/modules/grid/grid.js"); 22322/* harmony import */ var _modules_manipulation_manipulation_js__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./modules/manipulation/manipulation.js */ "./node_modules/swiper/modules/manipulation/manipulation.js"); 22323/* harmony import */ var _modules_effect_fade_effect_fade_js__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./modules/effect-fade/effect-fade.js */ "./node_modules/swiper/modules/effect-fade/effect-fade.js"); 22324/* harmony import */ var _modules_effect_cube_effect_cube_js__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./modules/effect-cube/effect-cube.js */ "./node_modules/swiper/modules/effect-cube/effect-cube.js"); 22325/* harmony import */ var _modules_effect_flip_effect_flip_js__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./modules/effect-flip/effect-flip.js */ "./node_modules/swiper/modules/effect-flip/effect-flip.js"); 22326/* harmony import */ var _modules_effect_coverflow_effect_coverflow_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./modules/effect-coverflow/effect-coverflow.js */ "./node_modules/swiper/modules/effect-coverflow/effect-coverflow.js"); 22327/* harmony import */ var _modules_effect_creative_effect_creative_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./modules/effect-creative/effect-creative.js */ "./node_modules/swiper/modules/effect-creative/effect-creative.js"); 22328/* harmony import */ var _modules_effect_cards_effect_cards_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./modules/effect-cards/effect-cards.js */ "./node_modules/swiper/modules/effect-cards/effect-cards.js"); 22329/** 22330 * Swiper 8.4.7 22331 * Most modern mobile touch slider and framework with hardware accelerated transitions 22332 * https://swiperjs.com 22333 * 22334 * Copyright 2014-2023 Vladimir Kharlampidi 22335 * 22336 * Released under the MIT License 22337 * 22338 * Released on: January 30, 2023 22339 */ 22340 22341 22342 22343 22344 22345 22346 22347 22348 22349 22350 22351 22352 22353 22354 22355 22356 22357 22358 22359 22360 22361 22362 22363 22364 22365 22366 22367/***/ }), 22368
vendor: 392 bytes, lines 22369-22381
22369/***/ "./node_modules/swiper/swiper.min.css": 22370/*!********************************************!*\ 22371 !*** ./node_modules/swiper/swiper.min.css ***! 22372 \********************************************/ 22373/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 22374 22375"use strict"; 22376__webpack_require__.r(__webpack_exports__); 22377// extracted by mini-css-extract-plugin 22378 22379 22380/***/ }), 22381
22382/***/ "./src/js/components/accordion.js": 22383/*!****************************************!*\ 22384 !*** ./src/js/components/accordion.js ***! 22385 \****************************************/ 22386/***/ (function() { 22387 22388var accordion = document.querySelectorAll('.accordion'); 22389accordion.forEach(function (accordion) { 22390 var triggers = accordion.querySelectorAll('.accordion__trigger-btn'); 22391 triggers.forEach(function (trigger, i) { 22392 trigger.addEventListener('click', function () { 22393 triggers.forEach(function (trigger) { 22394 trigger.parentElement.closest('.accordion__item').classList.remove('opened'); 22395 }); 22396 trigger.parentElement.closest('.accordion__item').classList.add('opened'); 22397 }); 22398 }); 22399}); 22400 22401/***/ }), 22402
22403/***/ "./src/js/components/header.js": 22404/*!*************************************!*\ 22405 !*** ./src/js/components/header.js ***! 22406 \*************************************/ 22407/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 22408 22409"use strict"; 22410__webpack_require__.r(__webpack_exports__); 22411/* harmony import */ var body_scroll_lock_lib_bodyScrollLock_es6__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! body-scroll-lock/lib/bodyScrollLock.es6 */ "./node_modules/body-scroll-lock/lib/bodyScrollLock.es6.js"); 22412 22413var header = document.querySelector('.header'); 22414var hamburger = document.querySelector('.header__hamburger'); 22415var menuScrollContent = document.querySelector('[data-menu-scoll-content]'); 22416var anchors = document.querySelectorAll('.menu__nav-anchor'); 22417var isMenuOpened = false; 22418function openMenu() { 22419 header.classList.add('menu-opened'); 22420 hamburger.classList.add('active'); 22421 (0,body_scroll_lock_lib_bodyScrollLock_es6__WEBPACK_IMPORTED_MODULE_0__.disableBodyScroll)(menuScrollContent); 22422 isMenuOpened = true; 22423} 22424function closeMenu() { 22425 header.classList.remove('menu-opened'); 22426 hamburger.classList.remove('active'); 22427 (0,body_scroll_lock_lib_bodyScrollLock_es6__WEBPACK_IMPORTED_MODULE_0__.enableBodyScroll)(menuScrollContent); 22428 isMenuOpened = false; 22429} 22430anchors.forEach(function (anchor) { 22431 return anchor.addEventListener('click', closeMenu); 22432}); 22433hamburger.addEventListener('click', function () { 22434 return isMenuOpened ? closeMenu() : openMenu(); 22435}); 22436 22437/** 22438 * ã¢ã³ã«ã¼ã¹ã¯ãã¼ã« 22439 */ 22440document.querySelectorAll('a[href^="#"]').forEach(function (anchor) { 22441 anchor.addEventListener('click', function (e) { 22442 e.preventDefault(); 22443 document.querySelector(this.getAttribute('href')).scrollIntoView({ 22444 behavior: 'smooth' 22445 }); 22446 }); 22447}); 22448 22449/***/ }), 22450
22451/***/ "./src/js/components/iframe-height.js": 22452/*!********************************************!*\ 22453 !*** ./src/js/components/iframe-height.js ***! 22454 \********************************************/ 22455/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 22456 22457"use strict"; 22458__webpack_require__.r(__webpack_exports__); 22459/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 22460/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 22461 22462jquery__WEBPACK_IMPORTED_MODULE_0___default()(window).on('message', function (event) { 22463 // if (event.originalEvent.origin != 'https://od.ignica.com') return; 22464 22465 jquery__WEBPACK_IMPORTED_MODULE_0___default()('.home-delivery__frame iframe').css({ 22466 width: '100%', 22467 height: event.originalEvent.data 22468 }); 22469 jquery__WEBPACK_IMPORTED_MODULE_0___default()('.single-store-info__advert iframe').css({ 22470 width: '100%', 22471 height: event.originalEvent.data 22472 }); 22473}); 22474 22475/***/ }), 22476
22477/***/ "./src/js/components/scroll-to-top.js": 22478/*!********************************************!*\ 22479 !*** ./src/js/components/scroll-to-top.js ***! 22480 \********************************************/ 22481/***/ (function() { 22482 22483var scrollToTop = document.querySelector('.scroll-to-top'); 22484function action() { 22485 if (window.scrollY > window.innerHeight) { 22486 scrollToTop.classList.add('visible'); 22487 } else { 22488 scrollToTop.classList.remove('visible'); 22489 } 22490} 22491document.addEventListener('scroll', action); 22492document.addEventListener('DOMContentLoaded', action); 22493 22494/***/ }), 22495
22496/***/ "./src/js/core/boot.js": 22497/*!*****************************!*\ 22498 !*** ./src/js/core/boot.js ***! 22499 \*****************************/ 22500/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 22501 22502"use strict"; 22503__webpack_require__.r(__webpack_exports__); 22504/* harmony export */ __webpack_require__.d(__webpack_exports__, { 22505/* harmony export */ boot: function() { return /* binding */ boot; } 22506/* harmony export */ }); 22507/* harmony import */ var _util_device__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./util/device */ "./src/js/core/util/device.js"); 22508function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } 22509function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } 22510function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } 22511function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } 22512function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } 22513function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } 22514 22515var ios = _util_device__WEBPACK_IMPORTED_MODULE_0__["default"].ios ? 'ios' : ''; 22516var android = _util_device__WEBPACK_IMPORTED_MODULE_0__["default"].android ? 'android' : ''; 22517var windows = _util_device__WEBPACK_IMPORTED_MODULE_0__["default"].windows ? 'windows' : ''; 22518var touch = _util_device__WEBPACK_IMPORTED_MODULE_0__["default"].desktop ? 'hover' : 'touch'; 22519var userAgent = [ios, android, windows, touch]; 22520document.documentElement.className = userAgent.filter(function (className) { 22521 return className !== ''; 22522}).join(' '); 22523var Bootstrap = /*#__PURE__*/function () { 22524 function Bootstrap() { 22525 _classCallCheck(this, Bootstrap); 22526 } 22527 return _createClass(Bootstrap, [{ 22528 key: "init", 22529 value: function init(modulesOption) { 22530 var _this = this; 22531 modulesOption.forEach(function (moduleOption) { 22532 return _this.install(moduleOption); 22533 }); 22534 } 22535 }, { 22536 key: "install", 22537 value: function install(_ref) { 22538 var module = _ref.module, 22539 _ref$dynamic = _ref.dynamic, 22540 dynamic = _ref$dynamic === void 0 ? false : _ref$dynamic; 22541 if (dynamic) { 22542 // load 22543 this.initDynamicModule(module); 22544 } else { 22545 // just init 22546 this.initModule(module); 22547 } 22548 } 22549 22550 //checkPathname( module, path, dynamic ) { 22551 // let parsedPathname = url.parse( window.location.href ).pathname.split('/'); 22552 // let parsedRoute = path.split('/'); 22553 // 22554 // if ( parsedPathname.every( (route, i) => route === parsedRoute[i] ) ) { 22555 // // load or 22556 // dynamic ? this.initDynamicModule( module ) : this.initModule( module ); 22557 // } 22558 //} 22559 }, { 22560 key: "initDynamicModule", 22561 value: function initDynamicModule(promise) { 22562 var _this2 = this; 22563 promise().then(function (_) { 22564 return _this2.initModule(_[Object.keys(_)[0]]); 22565 }); 22566 } 22567 }, { 22568 key: "initModule", 22569 value: function initModule(module) { 22570 module(); 22571 } 22572 }]); 22573}(); 22574var boot = new Bootstrap(); 22575 22576 22577/***/ }), 22578
22579/***/ "./src/js/core/polyfill/index.js": 22580/*!***************************************!*\ 22581 !*** ./src/js/core/polyfill/index.js ***! 22582 \***************************************/ 22583/***/ (function() { 22584 22585/* 22586* Polyfill for HTMLElement.closest 22587* */ 22588var ElementPrototype = window.Element.prototype; 22589if (typeof ElementPrototype.matches !== 'function') { 22590 ElementPrototype.matches = ElementPrototype.msMatchesSelector || ElementPrototype.mozMatchesSelector || ElementPrototype.webkitMatchesSelector || function matches(selector) { 22591 var elements = (element.document || element.ownerDocument).querySelectorAll(selector); 22592 var element = this; 22593 var index = 0; 22594 while (elements[index] && elements[index] !== element) { 22595 ++index; 22596 } 22597 return Boolean(elements[index]); 22598 }; 22599} 22600if (typeof ElementPrototype.closest !== 'function') { 22601 ElementPrototype.closest = function closest(selector) { 22602 var element = this; 22603 while (element && element.nodeType === 1) { 22604 if (element.matches(selector)) { 22605 return element; 22606 } 22607 element = element.parentNode; 22608 } 22609 return null; 22610 }; 22611} 22612/* 22613* Create hasAttr function 22614* */ 22615(function (prototype) { 22616 prototype.hasAttribute = prototype.hasAttribute || function (name) { 22617 return !!(this.attributes[name] && this.attributes[name].specified); 22618 }; 22619})(Element.prototype); 22620 22621/***/ }), 22622
22623/***/ "./src/js/core/util/device.js": 22624/*!************************************!*\ 22625 !*** ./src/js/core/util/device.js ***! 22626 \************************************/ 22627/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 22628 22629"use strict"; 22630__webpack_require__.r(__webpack_exports__); 22631/* harmony default export */ __webpack_exports__["default"] = ((function Device() { 22632 var ua = window.navigator.userAgent; 22633 var device = { 22634 ios: false, 22635 android: false, 22636 androidChrome: false, 22637 desktop: false, 22638 windows: false 22639 }; 22640 22641 //eslint-disable-next-line no-useless-escape 22642 var windows = ua.match(/(Windows Phone);?[\s\/]+([\d.]+)?/); 22643 //eslint-disable-next-line no-useless-escape 22644 var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); 22645 var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); 22646 var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); 22647 var iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); 22648 22649 // Windows 22650 if (windows) { 22651 device.os = 'windows'; 22652 device.osVersion = windows[2]; 22653 device.windows = true; 22654 } 22655 // Android 22656 if (android && !windows) { 22657 device.os = 'android'; 22658 device.osVersion = android[2]; 22659 device.android = true; 22660 device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0; 22661 } 22662 if (ipad || iphone || ipod) { 22663 device.os = 'ios'; 22664 device.ios = true; 22665 } 22666 22667 // Desktop 22668 device.desktop = !(device.os || device.android || device.webView); 22669 22670 // Webview 22671 device.webView = (iphone || ipad || ipod) && ua.match(/.*AppleWebKit(?!.*Safari)/i); 22672 22673 // Export object 22674 return device; 22675})()); 22676 22677/***/ }), 22678
22679/***/ "./src/js/layouts/contact.js": 22680/*!***********************************!*\ 22681 !*** ./src/js/layouts/contact.js ***! 22682 \***********************************/ 22683/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 22684 22685"use strict"; 22686__webpack_require__.r(__webpack_exports__); 22687/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 22688/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 22689/* harmony import */ var jquery_validation_dist_jquery_validate_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery-validation/dist/jquery.validate.js */ "./node_modules/jquery-validation/dist/jquery.validate.js"); 22690/* harmony import */ var jquery_validation_dist_jquery_validate_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery_validation_dist_jquery_validate_js__WEBPACK_IMPORTED_MODULE_1__); 22691 22692window.jQuery = window.$ = (jquery__WEBPACK_IMPORTED_MODULE_0___default()); 22693 22694(function ($) { 22695 $(function () { 22696 var $form = $('#b_confirm').closest('form'); 22697 var $wrapper = $('.fm_wrapper'); 22698 if (!$form.length) return; 22699 22700 // --- 1. ã«ã¹ã¿ã ã¡ã½ããå®ç¾© --- 22701 if ($.validator) { 22702 $.validator.addMethod("kana", function (value, element) { 22703 return this.optional(element) || /^([ã¡-ã¶ã¼\sã]+)$/.test(value); 22704 }, "å ¨è§ã«ã¿ã«ãã§å ¥åãã¦ãã ãã"); 22705 $.validator.addMethod("zenkaku", function (value, element) { 22706 return this.optional(element) || !/[ -~。-ï¾]/.test(value); 22707 }, "å ¨è§ã§å ¥åãã¦ãã ãã"); 22708 } 22709 22710 // --- 2. ããªãã¼ã·ã§ã³ã®è¨å® --- 22711 var validator = $form.validate({ 22712 onfocusout: false, 22713 onkeyup: false, 22714 onclick: false, 22715 rules: { 22716 'total_confirm[]': { 22717 required: true 22718 }, 22719 'store_pref': { 22720 required: true 22721 }, 22722 'store_city': { 22723 required: true 22724 }, 22725 'store_name': { 22726 required: true 22727 }, 22728 'your-name': { 22729 required: true, 22730 zenkaku: true 22731 }, 22732 'your-kana': { 22733 kana: true 22734 }, 22735 'henshin': { 22736 required: true 22737 }, 22738 'your-email': { 22739 required: function required() { 22740 return $('input[name="henshin"]:checked').val() === '叿ãã' && $('#your-tel').val() === ''; 22741 }, 22742 email: true 22743 }, 22744 'your-tel': { 22745 required: function required() { 22746 return $('input[name="henshin"]:checked').val() === '叿ãã' && $('#your-email').val() === ''; 22747 }, 22748 digits: true 22749 }, 22750 'your-msg': { 22751 required: true 22752 } 22753 }, 22754 messages: { 22755 'total_confirm[]': "åæãã¦ãã ãã", 22756 'store_pref': "鏿ãã¦ãã ãã", 22757 'store_city': "鏿ãã¦ãã ãã", 22758 'store_name': "鏿ãã¦ãã ãã", 22759 'your-name': { 22760 required: "ãååãå ¥åãã¦ãã ãã", 22761 zenkaku: "å ¨è§ã§å ¥åãã¦ãã ãã" 22762 }, 22763 'your-email': "ã¡ã¼ã«ã¢ãã¬ã¹ãå ¥åãã¦ãã ãã", 22764 'your-tel': "é»è©±çªå·ãå ¥åãã¦ãã ãã", 22765 'your-msg': "ãåãåããå 容ãå ¥åãã¦ãã ãã" 22766 }, 22767 errorElement: 'span', 22768 errorClass: 'error-msg-jquery', 22769 errorPlacement: function errorPlacement(error, element) { 22770 var $container = element.closest('.txt_flex, .totaly_confirm, .rd_flex, .renrakusaki'); 22771 if ($container.length) { 22772 error.appendTo($container); 22773 } else { 22774 error.insertAfter(element); 22775 } 22776 } 22777 }); 22778 22779 // --- 3. è¿ä¿¡å¸æã«ããåãæ¿ã --- 22780 $('input[name="henshin"]').on('change', function () { 22781 var val = $(this).val(); 22782 var $renrakuRow = $('.fm_tr--renrakusaki'); 22783 if (val === '叿ããªã') { 22784 $renrakuRow.hide(); 22785 // å¤ãã¯ãªã¢ããã¤disabledã«ã¯ããªãï¼ããªãã¼ã·ã§ã³é¢æ°å´ã§å¶å¾¡ï¼
22786 $('#your-email, #your-tel').val(''); 22787 $('.error-msg-jquery').filter('[for="your-email"], [for="your-tel"]').remove(); 22788 } else { 22789 $renrakuRow.show(); 22790 } 22791 }); 22792 $('input[name="henshin"]:checked').trigger('change'); 22793 22794 // --- 4. ã確èªããããã¿ã³ã¯ãªã㯠--- 22795 $('#b_confirm').on('click', function (e) { 22796 e.preventDefault(); 22797 $('.wpcf7-not-valid-tip').remove(); 22798 if ($form.valid()) { 22799 // 確èªç¨ã¯ã©ã¹ãä»ä¸ï¼æä½å¶éã¯CSSã§è¡ãï¼ 22800 $wrapper.addClass('confirm_page'); 22801 $('.contact__title').addClass('confirm_page'); 22802 $('.contact__desc').addClass('confirm_page'); 22803 $('._wrapper--input').hide(); 22804 $('._wrapper--confirm').show(); 22805 $('html, body').animate({ 22806 scrollTop: $wrapper.offset().top - 100 22807 }, 500); 22808 } else { 22809 var $firstError = $('.error-msg-jquery:visible').first(); 22810 if ($firstError.length) { 22811 $('html, body').animate({ 22812 scrollTop: $firstError.offset().top - 100 22813 }, 300); 22814 } 22815 } 22816 }); 22817 22818 // --- 5. ãä¿®æ£ããããã¿ã³ã¯ãªã㯠--- 22819 $('#b_back').on('click', function () { 22820 $wrapper.removeClass('confirm_page'); 22821 $('.contact__title').removeClass('confirm_page'); 22822 $('.contact__desc').removeClass('confirm_page'); 22823 $('._wrapper--confirm').hide(); 22824 $('._wrapper--input').show(); 22825 }); 22826 22827 // --- 6. ãéä¿¡ããããã¿ã³ã¯ãªã㯠--- 22828 $('#b_submit').on('click', function (e) { 22829 // e.preventDefault(); // ãããããã¦å¤ããã以ä¸ã®ããã«å¶å¾¡ãã¾ã 22830 22831 if ($form.valid()) { 22832 // éä¿¡åã«å¶éããã¹ã¦è§£é¤ 22833 $form.find(':disabled').prop('disabled', false); 22834 $wrapper.removeClass('confirm_page'); 22835 $('.fm_wrapper input, .fm_wrapper textarea, .fm_wrapper select').css('pointer-events', 'auto'); 22836 22837 // éè¦ï¼CF7ã®PHPå´ããªãã¼ã·ã§ã³ãééãããããã 22838 // submitãã¿ã³ã®name屿§ãç¶æããã¾ã¾ããã¤ãã£ãã®submitãå®è¡ 22839 return true; // preventDefaultãã¦ããªãã®ã§ããã®ã¾ã¾æ¬æ¥ã®submitãèµ°ãã¾ã 22840 } else { 22841 e.preventDefault(); 22842 return false; 22843 } 22844 }); 22845 }); 22846 $("#pd_store").on("change", function () { 22847 if ($(this).val() === "æ¬ç¤¾") { 22848 $("#pd_pref").rules("remove", "required"); 22849 $("#pd_city").rules("remove", "required"); 22850 } else { 22851 $("#pd_pref").rules("add", { 22852 required: true 22853 }); 22854 $("#pd_city").rules("add", { 22855 required: true 22856 }); 22857 } 22858 $("#pd_pref").valid(); 22859 }); 22860})(jQuery); 22861 22862/***/ }), 22863
22864/***/ "./src/js/layouts/home.js": 22865/*!********************************!*\ 22866 !*** ./src/js/layouts/home.js ***! 22867 \********************************/ 22868/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 22869 22870"use strict"; 22871__webpack_require__.r(__webpack_exports__); 22872/* harmony import */ var swiper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! swiper */ "./node_modules/swiper/swiper.esm.js"); 22873/* harmony import */ var swiper_swiper_min_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! swiper/swiper.min.css */ "./node_modules/swiper/swiper.min.css"); 22874 22875 22876new swiper__WEBPACK_IMPORTED_MODULE_0__.Swiper(".home-visual__slider .swiper", { 22877 modules: [swiper__WEBPACK_IMPORTED_MODULE_0__.Lazy, swiper__WEBPACK_IMPORTED_MODULE_0__.Navigation, swiper__WEBPACK_IMPORTED_MODULE_0__.Pagination, swiper__WEBPACK_IMPORTED_MODULE_0__.Autoplay], 22878 slidesPerView: 'auto', 22879 spaceBetween: 11, 22880 centeredSlides: true, 22881 loop: true, 22882 lazy: { 22883 loadPrevNext: true, 22884 loadPrevNextAmount: 6 22885 }, 22886 autoplay: { 22887 delay: 3000, 22888 disableOnInteraction: false 22889 }, 22890 navigation: { 22891 prevEl: ".home-visual__slider-prev", 22892 nextEl: ".home-visual__slider-next" 22893 }, 22894 pagination: { 22895 el: '.home-visual__slider-pagination' 22896 } 22897});
22898new swiper__WEBPACK_IMPORTED_MODULE_0__.Swiper(".home-carousel__slider .swiper", { 22899 modules: [swiper__WEBPACK_IMPORTED_MODULE_0__.Lazy, swiper__WEBPACK_IMPORTED_MODULE_0__.Navigation, swiper__WEBPACK_IMPORTED_MODULE_0__.Pagination, swiper__WEBPACK_IMPORTED_MODULE_0__.Autoplay], 22900 slidesPerView: 'auto', 22901 spaceBetween: 10, 22902 centeredSlides: true, 22903 loop: true, 22904 lazy: { 22905 loadPrevNext: true, 22906 loadPrevNextAmount: 6 22907 }, 22908 autoplay: { 22909 delay: 3000, 22910 disableOnInteraction: false 22911 }, 22912 navigation: { 22913 prevEl: ".home-carousel__slider-prev", 22914 nextEl: ".home-carousel__slider-next" 22915 }, 22916 pagination: { 22917 el: '.home-carousel__slider-pagination' 22918 }, 22919 breakpoints: { 22920 767: { 22921 spaceBetween: 24 22922 } 22923 } 22924}); 22925 22926/***/ }), 22927
22928/***/ "./src/js/layouts/stores.js": 22929/*!**********************************!*\ 22930 !*** ./src/js/layouts/stores.js ***! 22931 \**********************************/ 22932/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { 22933 22934"use strict"; 22935__webpack_require__.r(__webpack_exports__); 22936/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 22937/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_0__); 22938 // ãããä¸çªä¸ã«è¿½å 22939 22940var tabsTrigger = document.querySelectorAll('.store__tabs-button'); 22941var tabsContent = document.querySelectorAll('.store__tabs-content-item'); 22942if (tabsTrigger) { 22943 tabsTrigger.forEach(function (trigger, i) { 22944 trigger.addEventListener('click', function () { 22945 tabsTrigger.forEach(function (trigger) { 22946 return trigger.classList.remove('active'); 22947 }); 22948 tabsContent.forEach(function (content) { 22949 return content.classList.remove('active'); 22950 }); 22951 trigger.classList.add('active'); 22952 tabsContent[i].classList.add('active'); 22953 }); 22954 }); 22955} 22956 22957/* --------------------------------------------- 22958* Storeãã¼ã¸ã§ããã©ã·ã®ãªã³ã¯å¤æ´ 22959--------------------------------------------- */ 22960jquery__WEBPACK_IMPORTED_MODULE_0___default()(function () { 22961 // 親è¦ç´ ãæå®ãã¦ã«ã¼ã 22962 jquery__WEBPACK_IMPORTED_MODULE_0___default()('.leaflet_widget .leaflet').each(function () { 22963 var $this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this); 22964 var currentHref = $this.attr('href'); 22965 if (currentHref && currentHref.indexOf('http') !== 0) { 22966 $this.attr('href', 'https://widgets.tokubai.co.jp' + currentHref); 22967 } 22968 }); 22969}); 22970 22971/* --------------------------------------------- 22972* My Store 22973--------------------------------------------- */ 22974jquery__WEBPACK_IMPORTED_MODULE_0___default()(function () { 22975 console.log('0108msg'); 22976 'use strict'; 22977 var cookieKey = 'storeIds'; 22978 var maxAge = '2147483647'; 22979 var path = '/'; 22980 var trigger = '.js-mystore-trigger'; 22981 var $popup = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js-mystore-popup'); 22982 var $deleteBtn = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js-mystore-delete'); 22983 var $cancelBtn = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.js-mystore-cancel'); 22984 var confirmTrigger = 'js-confirm-trigger'; 22985 var keyword = 'checked'; 22986 if (cookieGet()) { 22987 var storeIds = cookieGet(); 22988 } else { 22989 var storeIds = []; 22990 } 22991 jquery__WEBPACK_IMPORTED_MODULE_0___default()(trigger).off().on('click', function () { 22992 var shopId = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).val(); 22993 if (~shopId.indexOf(keyword)) { 22994 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).next().fadeIn(); 22995 jquery__WEBPACK_IMPORTED_MODULE_0___default()($deleteBtn).off().on('click', function () { 22996 cookieRemove(shopId); 22997 location.reload(); 22998 }); 22999 jquery__WEBPACK_IMPORTED_MODULE_0___default()($cancelBtn).off().on('click', function () { 23000 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).closest($popup).fadeOut(); 23001 return false; 23002 }); 23003 } else { 23004 cookieAdd(shopId); 23005 location.reload(); 23006 } 23007 }); 23008 23009 // cookieåå¾ 23010 function cookieGet() { 23011 //localStorageããåãåºã 23012 var storeIds = document.cookie.indexOf(cookieKey); //åãåºããå¾ã«JSON.parseãããã¾ãã 23013 23014 if (storeIds !== -1) { 23015 var cookieValue = document.cookie.split('; ').find(function (row) { 23016 return row.startsWith(cookieKey); 23017 }).split('=')[1]; 23018 return cookieValue.split(','); 23019 } else { 23020 return false; 23021 } 23022 } 23023 23024 // cookieã«è¿½å 23025 function cookieAdd(val) { 23026 storeIds.push(val); 23027 var storeIdsStr = storeIds.join(','); 23028 document.cookie = cookieKey + '=' + storeIdsStr + '; max-age=' + maxAge + '; Path=' + path; 23029 } 23030 23031 // cookieããåé¤ 23032 function cookieRemove(val) { 23033 var val = val.replace(keyword, ''); 23034 var index = storeIds.indexOf(val); 23035 storeIds.splice(index, 1); 23036 var storeIdsStr = storeIds.join(','); 23037 document.cookie = cookieKey + '=' + storeIdsStr + '; max-age=' + maxAge + '; Path=' + path; 23038 } 23039 23040 // cookieããåé¤ 23041 function confirmDelete() { 23042 var result = window.confirm('æ¬å½ã«åé¤ãã¾ããï¼'); 23043 return result; 23044 } 23045 23046 /** 23047 * æ¤ç´¢çµæï¼ç©ºæ¬ã®å¸ã»åºã¯åé¤ 23048 */
23049 // 1. æåã«å¯¾è±¡ãä¸åº¦ã ã夿°ã«å ¥ããï¼é«éåï¼ 23050 var $cityWrappers = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.search_result .city_wrapper'); 23051 var total = $cityWrappers.length; 23052 $cityWrappers.each(function (idx, item) { 23053 var $this = jquery__WEBPACK_IMPORTED_MODULE_0___default()(item); 23054 23055 // ä¸èº«ï¼.store_list__itemï¼ããªããã°åé¤ 23056 if ($this.find('.store_list__item').length === 0) { 23057 $this.remove(); 23058 } 23059 23060 // æ£ç¢ºã«ãæå¾ï¼-1ï¼ãããã£ãã 23061 if (idx === total - 1) { 23062 console.log('å ¨ã¦ã®ãã§ãã¯ãçµäº'); 23063 // åé¤ãããã«æ®ã£ãè¦ç´ ã表示 23064 jquery__WEBPACK_IMPORTED_MODULE_0___default()('.search_result .pref_wrapper').fadeIn(); 23065 } 23066 }); 23067 23068 /** 23069 * æ¤ç´¢çµæï¼ã¹ã¯ãã¼ã« 23070 */ 23071 // 1. URLã®ãã©ã¡ã¼ã¿ãç¢ºèª 23072 var params = new URLSearchParams(window.location.search); 23073 var hasParam = params.has('kw') || params.has('pref') || params.has('yagou'); 23074 23075 // 2. ãã©ã¡ã¼ã¿ãããå ´åãã¹ã¯ãã¼ã«å®è¡ 23076 if (hasParam) { 23077 var $target = jquery__WEBPACK_IMPORTED_MODULE_0___default()('.search_result'); 23078 if ($target.length) { 23079 // ã¿ã¼ã²ããã®ä½ç½®ãåå¾ 23080 var position = $target.offset().top; 23081 var offset = 20; // å°ãä¸ã«ä½ç½ãæãããèª¿æ´ 23082 23083 // 3. ã¹ã ã¼ãºã¹ã¯ãã¼ã«ãå®è¡ 23084 jquery__WEBPACK_IMPORTED_MODULE_0___default()('html, body').animate({ 23085 scrollTop: position - offset 23086 }, 600, 'swing'); // 600ããªç§ï¼0.6ç§ï¼ããã¦ã¹ã¯ãã¼ã« 23087 } 23088 } 23089 23090 /*** 23091 * é½éåºçå¥ã®åºèæ°ã®è¡¨ç¤ºèª¿æ´ 23092 */ 23093 jquery__WEBPACK_IMPORTED_MODULE_0___default()('.pref_wrapper').each(function () { 23094 var pref_store_len = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).find('.store_list__item').length; 23095 jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).find('.pref_head .store_len').html(pref_store_len + '<span>åºè</span>'); 23096 }); 23097 23098 /*** 23099 * é½éåºçå¥ã®å¸åºçºæPDã®çµãè¾¼ã¿ã³ã¼ã 23100 */ 23101 jquery__WEBPACK_IMPORTED_MODULE_0___default()('select[name="pref_city_pd"]').on('change', function () { 23102 // 鏿ãããå¤ãåå¾ 23103 var value = jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).val(); 23104 if (value) { 23105 // ã¨ã³ã³ã¼ããã¦ãªãã¤ã¬ã¯ã 23106 var redirectUrl = '/stores/?pref=' + encodeURIComponent(value); 23107 if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('data-yagou')) { 23108 redirectUrl += '&yagou=' + jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('data-yagou'); 23109 } else if (jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('data-kw')) { 23110 redirectUrl += '&kw=' + encodeURIComponent(jquery__WEBPACK_IMPORTED_MODULE_0___default()(this).attr('data-kw')); 23111 } 23112 window.location.href = redirectUrl; 23113 } 23114 }); 23115}); 23116 23117/***/ })
vendor: 5,021 bytes, lines 23117-23222
23117 23118 23119/******/ }); 23120/************************************************************************/ 23121/******/ // The module cache 23122/******/ var __webpack_module_cache__ = {}; 23123/******/ 23124/******/ // The require function 23125/******/ function __webpack_require__(moduleId) { 23126/******/ // Check if module is in cache 23127/******/ var cachedModule = __webpack_module_cache__[moduleId]; 23128/******/ if (cachedModule !== undefined) { 23129/******/ return cachedModule.exports; 23130/******/ } 23131/******/ // Check if module exists (development only) 23132/******/ if (__webpack_modules__[moduleId] === undefined) { 23133/******/ var e = new Error("Cannot find module '" + moduleId + "'"); 23134/******/ e.code = 'MODULE_NOT_FOUND'; 23135/******/ throw e; 23136/******/ } 23137/******/ // Create a new module (and put it into the cache) 23138/******/ var module = __webpack_module_cache__[moduleId] = { 23139/******/ id: moduleId, 23140/******/ loaded: false, 23141/******/ exports: {} 23142/******/ }; 23143/******/ 23144/******/ // Execute the module function 23145/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); 23146/******/ 23147/******/ // Flag the module as loaded 23148/******/ module.loaded = true; 23149/******/ 23150/******/ // Return the exports of the module 23151/******/ return module.exports; 23152/******/ } 23153/******/ 23154/************************************************************************/ 23155/******/ /* webpack/runtime/compat get default export */ 23156/******/ !function() { 23157/******/ // getDefaultExport function for compatibility with non-harmony modules 23158/******/ __webpack_require__.n = function(module) { 23159/******/ var getter = module && module.__esModule ? 23160/******/ function() { return module['default']; } : 23161/******/ function() { return module; }; 23162/******/ __webpack_require__.d(getter, { a: getter }); 23163/******/ return getter; 23164/******/ }; 23165/******/ }(); 23166/******/ 23167/******/ /* webpack/runtime/define property getters */ 23168/******/ !function() { 23169/******/ // define getter functions for harmony exports 23170/******/ __webpack_require__.d = function(exports, definition) { 23171/******/ for(var key in definition) { 23172/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { 23173/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); 23174/******/ } 23175/******/ } 23176/******/ }; 23177/******/ }(); 23178/******/ 23179/******/ /* webpack/runtime/hasOwnProperty shorthand */ 23180/******/ !function() { 23181/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); } 23182/******/ }(); 23183/******/ 23184/******/ /* webpack/runtime/make namespace object */ 23185/******/ !function() { 23186/******/ // define __esModule on exports 23187/******/ __webpack_require__.r = function(exports) { 23188/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 23189/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 23190/******/ } 23191/******/ Object.defineProperty(exports, '__esModule', { value: true }); 23192/******/ }; 23193/******/ }(); 23194/******/ 23195/******/ /* webpack/runtime/node module decorator */ 23196/******/ !function() { 23197/******/ __webpack_require__.nmd = function(module) { 23198/******/ module.paths = []; 23199/******/ if (!module.children) module.children = []; 23200/******/ return module; 23201/******/ }; 23202/******/ }(); 23203/******/ 23204/************************************************************************/ 23205var __webpack_exports__ = {}; 23206// This entry needs to be wrapped in an IIFE because it needs to be in strict mode. 23207!function() { 23208"use strict"; 23209var __webpack_exports__ = {}; 23210/*!*************************!*\ 23211 !*** ./src/js/index.js ***! 23212 \*************************/ 23213__webpack_require__.r(__webpack_exports__); 23214/* harmony import */ var lozad__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lozad */ "./node_modules/lozad/dist/lozad.min.js"); 23215/* harmony import */ var lozad__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lozad__WEBPACK_IMPORTED_MODULE_0__); 23216/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! jquery */ "./node_modules/jquery/dist/jquery.js"); 23217/* harmony import */ var jquery__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jquery__WEBPACK_IMPORTED_MODULE_1__); 23218/* harmony import */ var _core_polyfill__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./core/polyfill */ "./src/js/core/polyfill/index.js"); 23219/* harmony import */ var _core_polyfill__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_core_polyfill__WEBPACK_IMPORTED_MODULE_2__); 23220/* harmony import */ var _core_boot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./core/boot */ "./src/js/core/boot.js"); 23221/* harmony import */ var _components_header__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./components/header */ "./src/js/components/header.js"); 23222/* harmony import */ var _components_accordion__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./components/
23222accordion */ "./src/js/components/accordion.js"); 23223/* harmony import */ var _components_accordion__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_components_accordion__WEBPACK_IMPORTED_MODULE_5__); 23224/* harmony import */ var _components_scroll_to_top__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./components/scroll-to-top */ "./src/js/components/scroll-to-top.js"); 23225/* harmony import */ var _components_scroll_to_top__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_components_scroll_to_top__WEBPACK_IMPORTED_MODULE_6__); 23226/* harmony import */ var _components_iframe_height__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/iframe-height */ "./src/js/components/iframe-height.js"); 23227/* harmony import */ var _layouts_home__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./layouts/home */ "./src/js/layouts/home.js"); 23228/* harmony import */ var _layouts_stores__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./layouts/stores */ "./src/js/layouts/stores.js"); 23229/* harmony import */ var _layouts_contact__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./layouts/contact */ "./src/js/layouts/contact.js"); 23230 23231 23232/** 23233 * 1. Lozad (ç»å表示) ãæåªå ã§å®è¡ 23234 * importæã®ç´å¾ã«ç½®ããã¨ã§ãä»ã®jsã¨ã©ã¼ã«å·»ãè¾¼ã¾ãã確çãæå°éã«ãã¾ãã 23235 */ 23236var initLozad = function initLozad() { 23237 try { 23238 var observer = lozad__WEBPACK_IMPORTED_MODULE_0___default()('.lozad', { 23239 rootMargin: '200px 0px', 23240 loaded: function loaded(el) { 23241 console.log('Lozad: Image loaded ->', el.getAttribute('data-src')); 23242 } 23243 }); 23244 observer.observe(); 23245 console.log('Lozad: Init Success'); 23246 } catch (e) { 23247 console.error('Lozad Error:', e); 23248 } 23249}; 23250 23251// å³åº§ã«å®è¡ 23252initLozad(); 23253 23254/** 23255 * 2. jQueryãWebpackã®å ¨ã¹ã³ã¼ãã«å¼·å¶é å¸ 23256 * ãããæ¸ããã¨ã§ stores.js å ã® $ ãèªèãããããã«ãªãã¾ãã 23257 */ 23258 23259window.$ = window.jQuery = (jquery__WEBPACK_IMPORTED_MODULE_1___default()); 23260 23261/** 23262 * 3. ä»ã®ãã¡ã¤ã«ã®ã¤ã³ãã¼ã 23263 */ 23264 23265 23266 23267 23268 23269 23270 23271// ããã§ã¨ã©ã¼ãèµ·ãã¦ã Lozad ã¯æ¢ã«çµãã£ã¦ããã®ã§ç»åã¯åºã¾ã 23272 23273 23274 23275/** 23276 * 4. å ¨ä½ã®åæå 23277 */ 23278try { 23279 _core_boot__WEBPACK_IMPORTED_MODULE_3__.boot.init([]); 23280} catch (e) { 23281 console.warn('Boot system warning:', e); 23282} 23283 23284/** 23285 * 5. 念ã®ããã®åå®è¡ 23286 */ 23287if (document.readyState === 'loading') { 23288 document.addEventListener('DOMContentLoaded', initLozad); 23289} 23290setTimeout(initLozad, 1000); 23291}(); 23292// This entry needs to be wrapped in an IIFE because it needs to be in strict mode. 23293!function() { 23294"use strict"; 23295/*!*******************************!*\ 23296 !*** ./src/styles/index.scss ***! 23297 \*******************************/ 23298__webpack_require__.r(__webpack_exports__); 23299// extracted by mini-css-extract-plugin 23300 23301}(); 23302/******/ })() 23303;
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.