{"version":3,"file":"js/429.1a1de1f3.js","mappings":"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","sources":["webpack://b_c_i18n/./node_modules/@didi/elvish-lib-javascript/config/index.js","webpack://b_c_i18n/./node_modules/deepmerge/dist/cjs.js","webpack://b_c_i18n/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://b_c_i18n/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://b_c_i18n/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://b_c_i18n/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://b_c_i18n/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://b_c_i18n/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://b_c_i18n/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://b_c_i18n/./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack://b_c_i18n/./node_modules/ssr-window/dist/ssr-window.esm.js","webpack://b_c_i18n/./node_modules/dom7/dist/dom7.modular.js","webpack://b_c_i18n/../src/utils/dom.js","webpack://b_c_i18n/../src/utils/utils.js","webpack://b_c_i18n/../src/utils/support.js","webpack://b_c_i18n/../src/utils/class.js","webpack://b_c_i18n/../src/components/core/update/updateSize.js","webpack://b_c_i18n/../src/components/core/update/updateSlides.js","webpack://b_c_i18n/../src/components/core/update/updateAutoHeight.js","webpack://b_c_i18n/../src/components/core/update/updateSlidesOffset.js","webpack://b_c_i18n/../src/components/core/update/updateSlidesProgress.js","webpack://b_c_i18n/../src/components/core/update/updateProgress.js","webpack://b_c_i18n/../src/components/core/update/updateSlidesClasses.js","webpack://b_c_i18n/../src/components/core/update/updateActiveIndex.js","webpack://b_c_i18n/../src/components/core/update/updateClickedSlide.js","webpack://b_c_i18n/../src/components/core/update/index.js","webpack://b_c_i18n/../src/components/core/translate/getTranslate.js","webpack://b_c_i18n/../src/components/core/translate/setTranslate.js","webpack://b_c_i18n/../src/components/core/translate/minTranslate.js","webpack://b_c_i18n/../src/components/core/translate/maxTranslate.js","webpack://b_c_i18n/../src/components/core/translate/translateTo.js","webpack://b_c_i18n/../src/components/core/translate/index.js","webpack://b_c_i18n/../src/components/core/transition/setTransition.js","webpack://b_c_i18n/../src/components/core/transition/transitionStart.js","webpack://b_c_i18n/../src/components/core/transition/transitionEnd.js","webpack://b_c_i18n/../src/components/core/transition/index.js","webpack://b_c_i18n/../src/components/core/slide/slideTo.js","webpack://b_c_i18n/../src/components/core/slide/slideToLoop.js","webpack://b_c_i18n/../src/components/core/slide/slideNext.js","webpack://b_c_i18n/../src/components/core/slide/slidePrev.js","webpack://b_c_i18n/../src/components/core/slide/slideReset.js","webpack://b_c_i18n/../src/components/core/slide/slideToClosest.js","webpack://b_c_i18n/../src/components/core/slide/slideToClickedSlide.js","webpack://b_c_i18n/../src/components/core/slide/index.js","webpack://b_c_i18n/../src/components/core/loop/loopCreate.js","webpack://b_c_i18n/../src/components/core/loop/loopFix.js","webpack://b_c_i18n/../src/components/core/loop/loopDestroy.js","webpack://b_c_i18n/../src/components/core/loop/index.js","webpack://b_c_i18n/../src/components/core/grab-cursor/setGrabCursor.js","webpack://b_c_i18n/../src/components/core/grab-cursor/unsetGrabCursor.js","webpack://b_c_i18n/../src/components/core/grab-cursor/index.js","webpack://b_c_i18n/../src/components/core/manipulation/appendSlide.js","webpack://b_c_i18n/../src/components/core/manipulation/prependSlide.js","webpack://b_c_i18n/../src/components/core/manipulation/addSlide.js","webpack://b_c_i18n/../src/components/core/manipulation/removeSlide.js","webpack://b_c_i18n/../src/components/core/manipulation/removeAllSlides.js","webpack://b_c_i18n/../src/components/core/manipulation/index.js","webpack://b_c_i18n/../src/utils/device.js","webpack://b_c_i18n/../src/components/core/events/onTouchStart.js","webpack://b_c_i18n/../src/components/core/events/onTouchMove.js","webpack://b_c_i18n/../src/components/core/events/onTouchEnd.js","webpack://b_c_i18n/../src/components/core/events/onResize.js","webpack://b_c_i18n/../src/components/core/events/onClick.js","webpack://b_c_i18n/../src/components/core/events/onScroll.js","webpack://b_c_i18n/../src/components/core/events/index.js","webpack://b_c_i18n/../src/components/core/breakpoints/setBreakpoint.js","webpack://b_c_i18n/../src/components/core/breakpoints/getBreakpoint.js","webpack://b_c_i18n/../src/components/core/breakpoints/index.js","webpack://b_c_i18n/../src/components/core/classes/addClasses.js","webpack://b_c_i18n/../src/components/core/classes/removeClasses.js","webpack://b_c_i18n/../src/components/core/classes/index.js","webpack://b_c_i18n/../src/components/core/images/loadImage.js","webpack://b_c_i18n/../src/components/core/images/preloadImages.js","webpack://b_c_i18n/../src/components/core/images/index.js","webpack://b_c_i18n/../src/components/core/check-overflow/index.js","webpack://b_c_i18n/../src/components/core/defaults.js","webpack://b_c_i18n/../src/components/core/core-class.js","webpack://b_c_i18n/../src/modules/device/device.js","webpack://b_c_i18n/../src/modules/support/support.js","webpack://b_c_i18n/../src/utils/browser.js","webpack://b_c_i18n/../src/modules/browser/browser.js","webpack://b_c_i18n/../src/modules/resize/resize.js","webpack://b_c_i18n/../src/modules/observer/observer.js","webpack://b_c_i18n/../src/components/mousewheel/mousewheel.js","webpack://b_c_i18n/../src/components/navigation/navigation.js","webpack://b_c_i18n/../src/components/pagination/pagination.js","webpack://b_c_i18n/../src/swiper.js","webpack://b_c_i18n/./node_modules/throttle-debounce/debounce.js","webpack://b_c_i18n/./node_modules/throttle-debounce/throttle.js","webpack://b_c_i18n/./node_modules/vue-awesome-swiper/dist/exporter.js","webpack://b_c_i18n/./node_modules/vue-lazyload/vue-lazyload.esm.js","webpack://b_c_i18n/./node_modules/core-js/internals/collection-weak.js","webpack://b_c_i18n/./node_modules/core-js/internals/math-sign.js","webpack://b_c_i18n/./node_modules/core-js/internals/number-parse-float.js","webpack://b_c_i18n/./node_modules/core-js/modules/es.array.every.js","webpack://b_c_i18n/./node_modules/core-js/modules/es.array.find-index.js","webpack://b_c_i18n/./node_modules/core-js/modules/es.array.some.js","webpack://b_c_i18n/./node_modules/core-js/modules/es.array.sort.js","webpack://b_c_i18n/./node_modules/core-js/modules/es.math.sign.js","webpack://b_c_i18n/./node_modules/core-js/modules/es.number.is-integer.js","webpack://b_c_i18n/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://b_c_i18n/./node_modules/core-js/modules/es.object.freeze.js","webpack://b_c_i18n/./node_modules/core-js/modules/es.parse-float.js","webpack://b_c_i18n/./node_modules/core-js/modules/es.reflect.construct.js","webpack://b_c_i18n/./node_modules/core-js/modules/es.reflect.to-string-tag.js","webpack://b_c_i18n/./node_modules/core-js/modules/es.weak-map.constructor.js","webpack://b_c_i18n/./node_modules/core-js/modules/es.weak-map.js","webpack://b_c_i18n/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://b_c_i18n/./node_modules/lodash-es/_nativeKeys.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseKeys.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseUnary.js","webpack://b_c_i18n/./node_modules/lodash-es/_DataView.js","webpack://b_c_i18n/./node_modules/lodash-es/_Promise.js","webpack://b_c_i18n/./node_modules/lodash-es/_Set.js","webpack://b_c_i18n/./node_modules/lodash-es/_WeakMap.js","webpack://b_c_i18n/./node_modules/lodash-es/_getTag.js","webpack://b_c_i18n/./node_modules/lodash-es/_isPrototype.js","webpack://b_c_i18n/./node_modules/lodash-es/_nodeUtil.js","webpack://b_c_i18n/./node_modules/lodash-es/_overArg.js","webpack://b_c_i18n/./node_modules/lodash-es/_stackClear.js","webpack://b_c_i18n/./node_modules/lodash-es/_stackDelete.js","webpack://b_c_i18n/./node_modules/lodash-es/_stackGet.js","webpack://b_c_i18n/./node_modules/lodash-es/_stackHas.js","webpack://b_c_i18n/./node_modules/lodash-es/_stackSet.js","webpack://b_c_i18n/./node_modules/lodash-es/_Stack.js","webpack://b_c_i18n/./node_modules/lodash-es/_arrayEach.js","webpack://b_c_i18n/./node_modules/lodash-es/_defineProperty.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseAssignValue.js","webpack://b_c_i18n/./node_modules/lodash-es/_assignValue.js","webpack://b_c_i18n/./node_modules/lodash-es/_copyObject.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseTimes.js","webpack://b_c_i18n/./node_modules/lodash-es/_isIndex.js","webpack://b_c_i18n/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://b_c_i18n/./node_modules/lodash-es/keys.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseAssign.js","webpack://b_c_i18n/./node_modules/lodash-es/_nativeKeysIn.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseKeysIn.js","webpack://b_c_i18n/./node_modules/lodash-es/keysIn.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseAssignIn.js","webpack://b_c_i18n/./node_modules/lodash-es/_cloneBuffer.js","webpack://b_c_i18n/./node_modules/lodash-es/_copyArray.js","webpack://b_c_i18n/./node_modules/lodash-es/_arrayFilter.js","webpack://b_c_i18n/./node_modules/lodash-es/stubArray.js","webpack://b_c_i18n/./node_modules/lodash-es/_getSymbols.js","webpack://b_c_i18n/./node_modules/lodash-es/_copySymbols.js","webpack://b_c_i18n/./node_modules/lodash-es/_arrayPush.js","webpack://b_c_i18n/./node_modules/lodash-es/_getPrototype.js","webpack://b_c_i18n/./node_modules/lodash-es/_getSymbolsIn.js","webpack://b_c_i18n/./node_modules/lodash-es/_copySymbolsIn.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://b_c_i18n/./node_modules/lodash-es/_getAllKeys.js","webpack://b_c_i18n/./node_modules/lodash-es/_getAllKeysIn.js","webpack://b_c_i18n/./node_modules/lodash-es/_initCloneArray.js","webpack://b_c_i18n/./node_modules/lodash-es/_Uint8Array.js","webpack://b_c_i18n/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://b_c_i18n/./node_modules/lodash-es/_cloneDataView.js","webpack://b_c_i18n/./node_modules/lodash-es/_cloneRegExp.js","webpack://b_c_i18n/./node_modules/lodash-es/_cloneSymbol.js","webpack://b_c_i18n/./node_modules/lodash-es/_cloneTypedArray.js","webpack://b_c_i18n/./node_modules/lodash-es/_initCloneByTag.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseCreate.js","webpack://b_c_i18n/./node_modules/lodash-es/_initCloneObject.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseIsMap.js","webpack://b_c_i18n/./node_modules/lodash-es/isMap.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseIsSet.js","webpack://b_c_i18n/./node_modules/lodash-es/isSet.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseClone.js","webpack://b_c_i18n/./node_modules/lodash-es/cloneDeep.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseIsArguments.js","webpack://b_c_i18n/./node_modules/lodash-es/isArguments.js","webpack://b_c_i18n/./node_modules/lodash-es/isArrayLike.js","webpack://b_c_i18n/./node_modules/lodash-es/stubFalse.js","webpack://b_c_i18n/./node_modules/lodash-es/isBuffer.js","webpack://b_c_i18n/./node_modules/lodash-es/isLength.js","webpack://b_c_i18n/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://b_c_i18n/./node_modules/lodash-es/isTypedArray.js"],"sourcesContent":["module.exports = {\n apollo: require(\"./apollo.json\"),\n cityMap: require(\"./cityMap.json\"),\n timezone: require(\"./timezone.json\"),\n countryTimezone: require(\"./countryTimezone.json\")\n}","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {}\n}\n\nfunction cloneIfNecessary(value, optionsArgument) {\n var clone = optionsArgument && optionsArgument.clone === true;\n return (clone && isMergeableObject(value)) ? deepmerge(emptyTarget(value), value, optionsArgument) : value\n}\n\nfunction defaultArrayMerge(target, source, optionsArgument) {\n var destination = target.slice();\n source.forEach(function(e, i) {\n if (typeof destination[i] === 'undefined') {\n destination[i] = cloneIfNecessary(e, optionsArgument);\n } else if (isMergeableObject(e)) {\n destination[i] = deepmerge(target[i], e, optionsArgument);\n } else if (target.indexOf(e) === -1) {\n destination.push(cloneIfNecessary(e, optionsArgument));\n }\n });\n return destination\n}\n\nfunction mergeObject(target, source, optionsArgument) {\n var destination = {};\n if (isMergeableObject(target)) {\n Object.keys(target).forEach(function(key) {\n destination[key] = cloneIfNecessary(target[key], optionsArgument);\n });\n }\n Object.keys(source).forEach(function(key) {\n if (!isMergeableObject(source[key]) || !target[key]) {\n destination[key] = cloneIfNecessary(source[key], optionsArgument);\n } else {\n destination[key] = deepmerge(target[key], source[key], optionsArgument);\n }\n });\n return destination\n}\n\nfunction deepmerge(target, source, optionsArgument) {\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneIfNecessary(source, optionsArgument)\n } else if (sourceIsArray) {\n var arrayMerge = options.arrayMerge || defaultArrayMerge;\n return arrayMerge(target, source, optionsArgument)\n } else {\n return mergeObject(target, source, optionsArgument)\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, optionsArgument) {\n if (!Array.isArray(array) || array.length < 2) {\n throw new Error('first argument should be an array with at least two elements')\n }\n\n // we are sure there are at least 2 values, so it is safe to have no initial value\n return array.reduce(function(prev, next) {\n return deepmerge(prev, next, optionsArgument)\n })\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","/**\n * SSR Window 2.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: May 12, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar doc = typeof document !== 'undefined' ? document : {};\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nextend(doc, ssrDocument);\n\nvar win = typeof window !== 'undefined' ? window : {};\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n};\nextend(win, ssrWindow);\n\nexport { doc as document, extend, win as window };\n","/**\n * Dom7 2.1.5\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * http://framework7.io/docs/dom.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n * The iDangero.us\n * http://www.idangero.us/\n *\n * Licensed under MIT\n *\n * Released on: May 15, 2020\n */\nimport { document, window } from 'ssr-window';\n\nclass Dom7 {\n constructor(arr) {\n const self = this;\n // Create array-like object\n for (let i = 0; i < arr.length; i += 1) {\n self[i] = arr[i];\n }\n self.length = arr.length;\n // Return collection with methods\n return this;\n }\n}\n\nfunction $(selector, context) {\n const arr = [];\n let i = 0;\n if (selector && !context) {\n if (selector instanceof Dom7) {\n return selector;\n }\n }\n if (selector) {\n // String\n if (typeof selector === 'string') {\n let els;\n let tempParent;\n const html = selector.trim();\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(':~]/)) {\n // Pure ID selector\n els = [document.getElementById(selector.trim().split('#')[1])];\n } else {\n // Other selectors\n els = (context || document).querySelectorAll(selector.trim());\n }\n for (i = 0; i < els.length; i += 1) {\n if (els[i]) arr.push(els[i]);\n }\n }\n } else if (selector.nodeType || selector === window || selector === document) {\n // Node/element\n arr.push(selector);\n } else if (selector.length > 0 && selector[0].nodeType) {\n // Array of elements or instance of Dom\n for (i = 0; i < selector.length; i += 1) {\n arr.push(selector[i]);\n }\n }\n }\n return new Dom7(arr);\n}\n\n$.fn = Dom7.prototype;\n$.Class = Dom7;\n$.Dom7 = Dom7;\n\nfunction unique(arr) {\n const uniqueArray = [];\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group1) => group1.toUpperCase());\n}\n\nfunction requestAnimationFrame(callback) {\n if (window.requestAnimationFrame) return window.requestAnimationFrame(callback);\n else if (window.webkitRequestAnimationFrame) return window.webkitRequestAnimationFrame(callback);\n return window.setTimeout(callback, 1000 / 60);\n}\nfunction cancelAnimationFrame(id) {\n if (window.cancelAnimationFrame) return window.cancelAnimationFrame(id);\n else if (window.webkitCancelAnimationFrame) return window.webkitCancelAnimationFrame(id);\n return window.clearTimeout(id);\n}\n\n// Classes and attributes\nfunction addClass(className) {\n if (typeof className === 'undefined') {\n return this;\n }\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.add(classes[i]);\n }\n }\n return this;\n}\nfunction removeClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.remove(classes[i]);\n }\n }\n return this;\n}\nfunction hasClass(className) {\n if (!this[0]) return false;\n return this[0].classList.contains(className);\n}\nfunction toggleClass(className) {\n const classes = className.split(' ');\n for (let i = 0; i < classes.length; i += 1) {\n for (let j = 0; j < this.length; j += 1) {\n if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') this[j].classList.toggle(classes[i]);\n }\n }\n return this;\n}\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n }\n\n // Set attrs\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n // eslint-disable-next-line\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n // eslint-disable-next-line\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n return this;\n }\n}\nfunction data(key, value) {\n let el;\n if (typeof value === 'undefined') {\n el = this[0];\n // Get value\n if (el) {\n if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n if (dataKey) {\n return dataKey;\n }\n return undefined;\n }\n return undefined;\n }\n\n // Set value\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n return this;\n}\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n if (el.dataset) {\n // eslint-disable-next-line\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n // eslint-disable-next-line\n const attr = el.attributes[i];\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n // eslint-disable-next-line\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;\n else if (dataset[key] === 'true') dataset[key] = true;\n else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n return dataset;\n}\nfunction val(value) {\n const dom = this;\n if (typeof value === 'undefined') {\n if (dom[0]) {\n if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') {\n const values = [];\n for (let i = 0; i < dom[0].selectedOptions.length; i += 1) {\n values.push(dom[0].selectedOptions[i].value);\n }\n return values;\n }\n return dom[0].value;\n }\n return undefined;\n }\n\n for (let i = 0; i < dom.length; i += 1) {\n const el = dom[i];\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n return dom;\n}\n// Transforms\n// eslint-disable-next-line\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransform = transform;\n elStyle.transform = transform;\n }\n return this;\n}\nfunction transition(duration) {\n if (typeof duration !== 'string') {\n duration = `${duration}ms`; // eslint-disable-line\n }\n for (let i = 0; i < this.length; i += 1) {\n const elStyle = this[i].style;\n elStyle.webkitTransitionDuration = duration;\n elStyle.transitionDuration = duration;\n }\n return this;\n}\n// Events\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n if ($(target).is(targetSelector)) listener.apply(target, eventData);\n else {\n const parents = $(target).parents(); // eslint-disable-line\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n listener.apply(this, eventData);\n }\n const events = eventType.split(' ');\n let j;\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent,\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent,\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n return this;\n}\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n if (!capture) capture = false;\n\n const events = eventType.split(' ');\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n return this;\n}\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\nfunction trigger(...args) {\n const events = args[0].split(' ');\n const eventData = args[1];\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let evt;\n try {\n evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true,\n });\n } catch (e) {\n evt = document.createEvent('Event');\n evt.initEvent(event, true, true);\n evt.detail = eventData;\n }\n // eslint-disable-next-line\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n return this;\n}\nfunction transitionEnd(callback) {\n const events = ['webkitTransitionEnd', 'transitionend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n /* jshint validthis:true */\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\nfunction animationEnd(callback) {\n const events = ['webkitAnimationEnd', 'animationend'];\n const dom = this;\n let i;\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n for (i = 0; i < events.length; i += 1) {\n dom.off(events[i], fireCallBack);\n }\n }\n if (callback) {\n for (i = 0; i < events.length; i += 1) {\n dom.on(events[i], fireCallBack);\n }\n }\n return this;\n}\n// Sizing/Styles\nfunction width() {\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n return this[0].offsetWidth;\n }\n return null;\n}\nfunction height() {\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n // eslint-disable-next-line\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n return this[0].offsetHeight;\n }\n return null;\n}\nfunction offset() {\n if (this.length > 0) {\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: (box.top + scrollTop) - clientTop,\n left: (box.left + scrollLeft) - clientLeft,\n };\n }\n\n return null;\n}\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n return this;\n}\nfunction show() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n return this;\n}\nfunction styles() {\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\nfunction css(props, value) {\n let i;\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n for (i = 0; i < this.length; i += 1) {\n // eslint-disable-next-line\n for (let prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n return this;\n }\n }\n if (arguments.length === 2 && typeof props === 'string') {\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n return this;\n }\n return this;\n}\n\n// Dom manipulation\nfunction toArray() {\n const arr = [];\n for (let i = 0; i < this.length; i += 1) {\n arr.push(this[i]);\n }\n return arr;\n}\n// Iterate over the collection passing elements to `callback`\nfunction each(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], i, this[i]) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction forEach(callback) {\n // Don't bother continuing without a callback\n if (!callback) return this;\n // Iterate over the current collection\n for (let i = 0; i < this.length; i += 1) {\n // If the callback returns false\n if (callback.call(this[i], this[i], i) === false) {\n // End the loop early\n return this;\n }\n }\n // Return `this` to allow chained DOM operations\n return this;\n}\nfunction filter(callback) {\n const matchedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n if (callback.call(dom[i], i, dom[i])) matchedItems.push(dom[i]);\n }\n return new Dom7(matchedItems);\n}\nfunction map(callback) {\n const modifiedItems = [];\n const dom = this;\n for (let i = 0; i < dom.length; i += 1) {\n modifiedItems.push(callback.call(dom[i], i, dom[i]));\n }\n return new Dom7(modifiedItems);\n}\n// eslint-disable-next-line\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : undefined;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n return this;\n}\n// eslint-disable-next-line\nfunction text(text) {\n if (typeof text === 'undefined') {\n if (this[0]) {\n return this[0].textContent.trim();\n }\n return null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n return this;\n}\nfunction is(selector) {\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n else if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n else if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n\n compareWith = $(selector);\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n } else if (selector === document) return el === document;\n else if (selector === window) return el === window;\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n return false;\n }\n return false;\n}\nfunction indexOf(el) {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i] === el) return i;\n }\n return -1;\n}\nfunction index() {\n let child = this[0];\n let i;\n if (child) {\n i = 0;\n // eslint-disable-next-line\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n return i;\n }\n return undefined;\n}\n// eslint-disable-next-line\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n let returnIndex;\n if (index > length - 1) {\n return new Dom7([]);\n }\n if (index < 0) {\n returnIndex = length + index;\n if (returnIndex < 0) return new Dom7([]);\n return new Dom7([this[returnIndex]]);\n }\n return new Dom7([this[index]]);\n}\nfunction append(...args) {\n let newChild;\n\n for (let k = 0; k < args.length; k += 1) {\n newChild = args[k];\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n// eslint-disable-next-line\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\nfunction prepend(newChild) {\n let i;\n let j;\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n return this;\n}\n// eslint-disable-next-line\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\nfunction insertBefore(selector) {\n const before = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\nfunction insertAfter(selector) {\n const after = $(selector);\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return new Dom7([this[0].nextElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (this[0].nextElementSibling) return new Dom7([this[0].nextElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n el = next;\n }\n return new Dom7(nextEls);\n}\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return new Dom7([el.previousElementSibling]);\n }\n return new Dom7([]);\n }\n\n if (el.previousElementSibling) return new Dom7([el.previousElementSibling]);\n return new Dom7([]);\n }\n return new Dom7([]);\n}\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return new Dom7([]);\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n el = prev;\n }\n return new Dom7(prevEls);\n}\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n return $(unique(parents));\n}\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n parent = parent.parentNode;\n }\n }\n return $(unique(parents));\n}\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n if (typeof selector === 'undefined') {\n return new Dom7([]);\n }\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n return closest;\n}\nfunction find(selector) {\n const foundElements = [];\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n return new Dom7(foundElements);\n}\nfunction children(selector) {\n const children = []; // eslint-disable-line\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].childNodes;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector) {\n if (childNodes[j].nodeType === 1) children.push(childNodes[j]);\n } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n return new Dom7(unique(children));\n}\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n return this;\n}\nfunction detach() {\n return this.remove();\n}\nfunction add(...args) {\n const dom = this;\n let i;\n let j;\n for (i = 0; i < args.length; i += 1) {\n const toAdd = $(args[i]);\n for (j = 0; j < toAdd.length; j += 1) {\n dom[dom.length] = toAdd[j];\n dom.length += 1;\n }\n }\n return dom;\n}\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n el.textContent = '';\n }\n }\n return this;\n}\n\nfunction scrollTo(...args) {\n let [left, top, duration, easing, callback] = args;\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n if (typeof easing === 'undefined') easing = 'swing';\n\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n let scrollLeft; // eslint-disable-line\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n if (animateTop) {\n currentTop = el.scrollTop;\n if (!duration) {\n el.scrollTop = top;\n }\n }\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n if (!duration) return;\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : (0.5 - (Math.cos(progress * Math.PI) / 2));\n let done;\n if (animateTop) scrollTop = currentTop + (easeProgress * (newTop - currentTop));\n if (animateLeft) scrollLeft = currentLeft + (easeProgress * (newLeft - currentLeft));\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n requestAnimationFrame(render);\n }\n requestAnimationFrame(render);\n });\n}\n// scrollTop(top, duration, easing, callback) {\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n const dom = this;\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing', // or 'linear'\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n }, initialParams),\n\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - (Math.cos(progress * Math.PI) / 2);\n }\n if (typeof easing === 'function') {\n return easing(progress);\n }\n return progress;\n },\n stop() {\n if (a.frameId) {\n cancelAnimationFrame(a.frameId);\n }\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done(complete) {\n a.animating = false;\n a.elements.each((index, el) => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n const elements = [];\n\n // Define & Cache Initials & Units\n a.elements.each((index, el) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n\n elements[index] = {\n container: el,\n };\n Object.keys(props).forEach((prop) => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue,\n };\n });\n });\n\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress;\n // let el;\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n if (startTime === null) {\n startTime = time;\n }\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), ((startTime + params.duration) - time < 0 ? 0 : (startTime + params.duration) - time), startTime);\n }\n\n elements.forEach((element) => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach((prop) => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const { initialValue, finalValue, unit } = el[prop];\n el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue));\n const currentValue = el[prop].currentValue;\n\n if (\n (finalValue > initialValue && currentValue >= finalValue) ||\n (finalValue < initialValue && currentValue <= finalValue)) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n if (done) {\n a.done(params.complete);\n return;\n }\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return;\n // Then call\n a.frameId = requestAnimationFrame(render);\n }\n a.frameId = requestAnimationFrame(render);\n return a;\n },\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = ('resize scroll').split(' ');\nfunction eventShortcut(name, ...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();\n else {\n $(this[i]).trigger(name);\n }\n }\n }\n return this;\n }\n return this.on(name, ...args);\n}\n\nfunction click(...args) {\n return eventShortcut.bind(this)('click', ...args);\n}\nfunction blur(...args) {\n return eventShortcut.bind(this)('blur', ...args);\n}\nfunction focus(...args) {\n return eventShortcut.bind(this)('focus', ...args);\n}\nfunction focusin(...args) {\n return eventShortcut.bind(this)('focusin', ...args);\n}\nfunction focusout(...args) {\n return eventShortcut.bind(this)('focusout', ...args);\n}\nfunction keyup(...args) {\n return eventShortcut.bind(this)('keyup', ...args);\n}\nfunction keydown(...args) {\n return eventShortcut.bind(this)('keydown', ...args);\n}\nfunction keypress(...args) {\n return eventShortcut.bind(this)('keypress', ...args);\n}\nfunction submit(...args) {\n return eventShortcut.bind(this)('submit', ...args);\n}\nfunction change(...args) {\n return eventShortcut.bind(this)('change', ...args);\n}\nfunction mousedown(...args) {\n return eventShortcut.bind(this)('mousedown', ...args);\n}\nfunction mousemove(...args) {\n return eventShortcut.bind(this)('mousemove', ...args);\n}\nfunction mouseup(...args) {\n return eventShortcut.bind(this)('mouseup', ...args);\n}\nfunction mouseenter(...args) {\n return eventShortcut.bind(this)('mouseenter', ...args);\n}\nfunction mouseleave(...args) {\n return eventShortcut.bind(this)('mouseleave', ...args);\n}\nfunction mouseout(...args) {\n return eventShortcut.bind(this)('mouseout', ...args);\n}\nfunction mouseover(...args) {\n return eventShortcut.bind(this)('mouseover', ...args);\n}\nfunction touchstart(...args) {\n return eventShortcut.bind(this)('touchstart', ...args);\n}\nfunction touchend(...args) {\n return eventShortcut.bind(this)('touchend', ...args);\n}\nfunction touchmove(...args) {\n return eventShortcut.bind(this)('touchmove', ...args);\n}\nfunction resize(...args) {\n return eventShortcut.bind(this)('resize', ...args);\n}\nfunction scroll(...args) {\n return eventShortcut.bind(this)('scroll', ...args);\n}\n\nexport { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, prop, data, removeData, dataset, val, transform, transition, on, off, once, trigger, transitionEnd, animationEnd, width, outerWidth, height, outerHeight, offset, hide, show, styles, css, toArray, each, forEach, filter, map, html, text, is, indexOf, index, eq, append, appendTo, prepend, prependTo, insertBefore, insertAfter, next, nextAll, prev, prevAll, siblings, parent, parents, closest, find, children, remove, detach, add, empty, scrollTo, scrollTop, scrollLeft, animate, stop, click, blur, focus, focusin, focusout, keyup, keydown, keypress, submit, change, mousedown, mousemove, mouseup, mouseenter, mouseleave, mouseout, mouseover, touchstart, touchend, touchmove, resize, scroll };\n","import {\n $,\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n data,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove,\n add,\n styles,\n} from 'dom7/dist/dom7.modular';\n\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n data,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove,\n add,\n styles,\n};\n\nObject.keys(Methods).forEach((methodName) => {\n $.fn[methodName] = $.fn[methodName] || Methods[methodName];\n});\n\nexport default $;\n","import { window } from 'ssr-window';\n\nconst Utils = {\n deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach((key) => {\n try {\n object[key] = null;\n } catch (e) {\n // no getter for object\n }\n try {\n delete object[key];\n } catch (e) {\n // something got wrong\n }\n });\n },\n nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n },\n now() {\n return Date.now();\n },\n getTranslate(el, axis = 'x') {\n let matrix;\n let curTransform;\n let transformMatrix;\n\n const curStyle = window.getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map((a) => a.replace(',', '.')).join(', ');\n }\n // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n return curTransform || 0;\n },\n parseUrlQuery(url) {\n const query = {};\n let urlToParse = url || window.location.href;\n let i;\n let params;\n let param;\n let length;\n if (typeof urlToParse === 'string' && urlToParse.length) {\n urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\\S*\\?/, '') : '';\n params = urlToParse.split('&').filter((paramsPart) => paramsPart !== '');\n length = params.length;\n\n for (i = 0; i < length; i += 1) {\n param = params[i].replace(/#\\S+/g, '').split('=');\n query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param[1]) || '';\n }\n }\n return query;\n },\n isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;\n },\n extend(...args) {\n const to = Object(args[0]);\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n if (nextSource !== undefined && nextSource !== null) {\n const keysArray = Object.keys(Object(nextSource));\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n Utils.extend(to[nextKey], nextSource[nextKey]);\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n return to;\n },\n};\nexport default Utils;\n","import { window, document } from 'ssr-window';\n\nconst Support = (function Support() {\n return {\n touch: !!(('ontouchstart' in window) || (window.DocumentTouch && document instanceof window.DocumentTouch)),\n\n pointerEvents: !!window.PointerEvent && ('maxTouchPoints' in window.navigator) && window.navigator.maxTouchPoints >= 0,\n\n observer: (function checkObserver() {\n return ('MutationObserver' in window || 'WebkitMutationObserver' in window);\n }()),\n\n passiveListener: (function checkPassiveListener() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n },\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {\n // No support\n }\n return supportsPassive;\n }()),\n\n gestures: (function checkGestures() {\n return 'ongesturestart' in window;\n }()),\n };\n}());\n\nexport default Support;\n","import Utils from './utils';\n\nclass SwiperClass {\n constructor(params = {}) {\n const self = this;\n self.params = params;\n\n // Events\n self.eventsListeners = {};\n\n if (self.params && self.params.on) {\n Object.keys(self.params.on).forEach((eventName) => {\n self.on(eventName, self.params.on[eventName]);\n });\n }\n }\n\n on(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach((event) => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n }\n\n once(events, handler, priority) {\n const self = this;\n if (typeof handler !== 'function') return self;\n function onceHandler(...args) {\n self.off(events, onceHandler);\n if (onceHandler.f7proxy) {\n delete onceHandler.f7proxy;\n }\n handler.apply(self, args);\n }\n onceHandler.f7proxy = handler;\n return self.on(events, onceHandler, priority);\n }\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach((event) => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event] && self.eventsListeners[event].length) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n }\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach((event) => {\n if (self.eventsListeners && self.eventsListeners[event]) {\n const handlers = [];\n self.eventsListeners[event].forEach((eventHandler) => {\n handlers.push(eventHandler);\n });\n handlers.forEach((eventHandler) => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n useModulesParams(instanceParams) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n // Extend params\n if (module.params) {\n Utils.extend(instanceParams, module.params);\n }\n });\n }\n\n useModules(modulesParams = {}) {\n const instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach((moduleName) => {\n const module = instance.modules[moduleName];\n const moduleParams = modulesParams[moduleName] || {};\n // Extend instance methods and props\n if (module.instance) {\n Object.keys(module.instance).forEach((modulePropName) => {\n const moduleProp = module.instance[modulePropName];\n if (typeof moduleProp === 'function') {\n instance[modulePropName] = moduleProp.bind(instance);\n } else {\n instance[modulePropName] = moduleProp;\n }\n });\n }\n // Add event listeners\n if (module.on && instance.on) {\n Object.keys(module.on).forEach((moduleEventName) => {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n }\n\n // Module create callback\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n\n static set components(components) {\n const Class = this;\n if (!Class.use) return;\n Class.use(components);\n }\n\n static installModule(module, ...params) {\n const Class = this;\n if (!Class.prototype.modules) Class.prototype.modules = {};\n const name = module.name || (`${Object.keys(Class.prototype.modules).length}_${Utils.now()}`);\n Class.prototype.modules[name] = module;\n // Prototype\n if (module.proto) {\n Object.keys(module.proto).forEach((key) => {\n Class.prototype[key] = module.proto[key];\n });\n }\n // Class\n if (module.static) {\n Object.keys(module.static).forEach((key) => {\n Class[key] = module.static[key];\n });\n }\n // Callback\n if (module.install) {\n module.install.apply(Class, params);\n }\n return Class;\n }\n\n static use(module, ...params) {\n const Class = this;\n if (Array.isArray(module)) {\n module.forEach((m) => Class.installModule(m));\n return Class;\n }\n return Class.installModule(module, ...params);\n }\n}\n\nexport default SwiperClass;\n","import Utils from '../../../utils/utils';\n\nexport default function () {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n if (typeof swiper.params.width !== 'undefined') {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n if (typeof swiper.params.height !== 'undefined') {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\n return;\n }\n\n // Subtract paddings\n width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10);\n height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10);\n\n Utils.extend(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height,\n });\n}\n","import { window } from 'ssr-window';\nimport Utils from '../../../utils/utils';\n\nexport default function () {\n const swiper = this;\n const params = swiper.params;\n\n const {\n $wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n\n function slidesForMargin(slideIndex) {\n if (!params.cssMode) return true;\n if (slideIndex === slides.length - 1) {\n return false;\n }\n return true;\n }\n\n let offsetBefore = params.slidesOffsetBefore;\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.snapGrid.length;\n\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n if (typeof swiperSize === 'undefined') {\n return;\n }\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween;\n\n // reset margins\n if (rtl) slides.css({ marginLeft: '', marginTop: '' });\n else slides.css({ marginRight: '', marginBottom: '' });\n\n let slidesNumberEvenToRows;\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n }\n\n // Calc slides\n let slideSize;\n const slidesPerColumn = params.slidesPerColumn;\n const slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n const numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n if (params.slidesPerColumn > 1) {\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n const slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0\n ? params.slidesPerGroup\n : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = (slideIndexInGroup - row * columnsInGroup) + groupIndex * params.slidesPerGroup;\n\n newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn);\n slide\n .css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex,\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - (column * slidesPerColumn);\n if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) {\n row += 1;\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - (row * slidesPerRow);\n }\n slide.css(\n `margin-${swiper.isHorizontal() ? 'top' : 'left'}`,\n (row !== 0 && params.spaceBetween) && (`${params.spaceBetween}px`)\n );\n }\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n const slideStyles = window.getComputedStyle(slide[0], null);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal()\n ? slide.outerWidth(true)\n : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n if (swiper.isHorizontal()) {\n const width = parseFloat(slideStyles.getPropertyValue('width'));\n const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left'));\n const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right'));\n const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left'));\n const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight;\n }\n } else {\n const height = parseFloat(slideStyles.getPropertyValue('height'));\n const paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top'));\n const paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom'));\n const marginTop = parseFloat(slideStyles.getPropertyValue('margin-top'));\n const marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom'));\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = height + marginTop + marginBottom;\n } else {\n slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom;\n }\n }\n }\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n if (swiper.isHorizontal()) {\n slides[i].style.width = `${slideSize}px`;\n } else {\n slides[i].style.height = `${slideSize}px`;\n }\n }\n }\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n slidesSizesGrid.push(slideSize);\n\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (i === 0) slidePosition = slidePosition - (swiperSize / 2) - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index) % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n\n prevSlideSize = slideSize;\n\n index += 1;\n }\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n let newSlidesGrid;\n\n if (\n rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n if (params.setWrapperSize) {\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n }\n\n if (params.slidesPerColumn > 1) {\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n if (swiper.isHorizontal()) $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\n else $wrapperEl.css({ height: `${swiper.virtualSize + params.spaceBetween}px` });\n if (params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid = newSlidesGrid;\n }\n }\n\n // Remove last grid elements depending on width\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n snapGrid = newSlidesGrid;\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n if (swiper.isHorizontal()) {\n if (rtl) slides.filter(slidesForMargin).css({ marginLeft: `${spaceBetween}px` });\n else slides.filter(slidesForMargin).css({ marginRight: `${spaceBetween}px` });\n } else slides.filter(slidesForMargin).css({ marginBottom: `${spaceBetween}px` });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map((snap) => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach((slideSizeValue) => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Utils.extend(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid,\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}\n","export default function (speed) {\n const swiper = this;\n const activeSlides = [];\n let newHeight = 0;\n let i;\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n // Find slides currently in view\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each((index, slide) => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\n }\n\n // Find new height from highest slide in view\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n }\n\n // Update Height\n if (newHeight) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}\n","export default function () {\n const swiper = this;\n const slides = swiper.slides;\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}\n","import $ from '../../../utils/dom';\n\nexport default function (translate = (this && this.translate) || 0) {\n const swiper = this;\n const params = swiper.params;\n\n const { slides, rtlTranslate: rtl } = swiper;\n\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate;\n\n // Visible Slides\n slides.removeClass(params.slideVisibleClass);\n\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n const slideProgress = (\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset\n ) / (slide.swiperSlideSize + params.spaceBetween);\n if (params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) {\n const slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1)\n || (slideAfter > 1 && slideAfter <= swiper.size)\n || (slideBefore <= 0 && slideAfter >= swiper.size);\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n swiper.visibleSlides = $(swiper.visibleSlides);\n}\n","import Utils from '../../../utils/utils';\n\nexport default function (translate) {\n const swiper = this;\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1;\n // eslint-disable-next-line\n translate = (swiper && swiper.translate && (swiper.translate * multiplier)) || 0;\n }\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let { progress, isBeginning, isEnd } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / (translatesDiff);\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n Utils.extend(swiper, {\n progress,\n isBeginning,\n isEnd,\n });\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}\n","export default function () {\n const swiper = this;\n\n const {\n slides, params, $wrapperEl, activeIndex, realIndex,\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n\n let activeSlide;\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n }\n\n // Active classes\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`)\n .addClass(params.slideDuplicateActiveClass);\n }\n }\n // Next Slide\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n }\n // Prev Slide\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicateNextClass);\n }\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl\n .children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl\n .children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`)\n .addClass(params.slideDuplicatePrevClass);\n }\n }\n}\n","import Utils from '../../../utils/utils';\n\nexport default function (newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid, snapGrid, params, activeIndex: previousIndex, realIndex: previousRealIndex, snapIndex: previousSnapIndex,\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n }\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n return;\n }\n\n // Get real index\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n\n Utils.extend(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex,\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}\n","import $ from '../../../utils/dom';\n\nexport default function (e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e.target).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) slideFound = true;\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = $(slide).index();\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}\n","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\n\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide,\n};\n","import Utils from '../../../utils/utils';\n\nexport default function (axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n\n const {\n params, rtlTranslate: rtl, translate, $wrapperEl,\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = Utils.getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n\n return currentTranslate || 0;\n}\n","export default function (translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl, params, $wrapperEl, wrapperEl, progress,\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y;\n\n // Check if we need to update progress\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}\n","export default function () {\n return (-this.snapGrid[0]);\n}\n","export default function () {\n return (-this.snapGrid[this.snapGrid.length - 1]);\n}\n","export default function (translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n\n const {\n params,\n wrapperEl,\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;\n else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\n else newTranslate = translate;\n\n // Update progress\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\n\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo,\n};\n","export default function (duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}\n","export default function (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, params, previousIndex } = swiper;\n if (params.cssMode) return;\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n swiper.emit('slideChangeTransitionStart');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}\n","export default function (runCallbacks = true, direction) {\n const swiper = this;\n const { activeIndex, previousIndex, params } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n\n let dir = direction;\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';\n else if (activeIndex < previousIndex) dir = 'prev';\n else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n swiper.emit('slideChangeTransitionEnd');\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}\n","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\n\nexport default {\n setTransition,\n transitionStart,\n transitionEnd,\n};\n","export default function (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n\n const {\n params, snapGrid, slidesGrid, previousIndex, activeIndex, rtlTranslate: rtl, wrapperEl,\n } = swiper;\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n const translate = -snapGrid[snapIndex];\n\n // Update progress\n swiper.updateProgress(translate);\n\n // Normalize slideIndex\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) {\n slideIndex = i;\n }\n }\n }\n // Directions locks\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n let direction;\n if (slideIndex > activeIndex) direction = 'next';\n else if (slideIndex < activeIndex) direction = 'prev';\n else direction = 'reset';\n\n\n // Update Index\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\n swiper.updateActiveIndex(slideIndex);\n // Update Height\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n swiper.updateSlidesClasses();\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n return false;\n }\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n let t = -translate;\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth',\n });\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n if (!swiper.animating) {\n swiper.animating = true;\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}\n","export default function (index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n let newIndex = index;\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const { params, animating } = swiper;\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params, animating, snapGrid, slidesGrid, rtlTranslate,\n } = swiper;\n\n if (params.loop) {\n if (animating) return false;\n swiper.loopFix();\n // eslint-disable-next-line\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\n const normalizedSlidesGrid = slidesGrid.map((val) => normalize(val));\n\n const currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach((snap) => {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n let prevIndex;\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function (speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n","/* eslint no-unused-vars: \"off\" */\nexport default function (speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n if ((translate - currentSnap) > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n if ((translate - prevSnap) <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n","import $ from '../../../utils/dom';\nimport Utils from '../../../utils/utils';\n\nexport default function () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n if (params.centeredSlides) {\n if (\n (slideToIndex < swiper.loopedSlides - (slidesPerView / 2))\n || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2))\n ) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl\n .children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`)\n .eq(0)\n .index();\n\n Utils.nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}\n","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\n\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide,\n};\n","import { document } from 'ssr-window';\nimport $ from '../../../utils/dom';\n\nexport default function () {\n const swiper = this;\n const { params, $wrapperEl } = swiper;\n // Remove duplicated slides\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n\n let slides = $wrapperEl.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $wrapperEl.append(blankNode);\n }\n slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((index, el) => {\n const slide = $(el);\n if (index < swiper.loopedSlides) appendSlides.push(el);\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) prependSlides.push(el);\n slide.attr('data-swiper-slide-index', index);\n });\n for (let i = 0; i < appendSlides.length; i += 1) {\n $wrapperEl.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $wrapperEl.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}\n","export default function () {\n const swiper = this;\n\n swiper.emit('beforeLoopFix');\n\n const {\n activeIndex, slides, loopedSlides, allowSlidePrev, allowSlideNext, snapGrid, rtlTranslate: rtl,\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate();\n\n // Fix For Negative Oversliding\n if (activeIndex < loopedSlides) {\n newIndex = (slides.length - (loopedSlides * 3)) + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n swiper.emit('loopFix');\n}\n","export default function () {\n const swiper = this;\n const { $wrapperEl, params, slides } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}\n","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\n\nexport default {\n loopCreate,\n loopFix,\n loopDestroy,\n};\n","import Support from '../../../utils/support';\n\nexport default function (moving) {\n const swiper = this;\n if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\n const el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}\n","import Support from '../../../utils/support';\n\nexport default function () {\n const swiper = this;\n if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) return;\n swiper.el.style.cursor = '';\n}\n","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\n\nexport default {\n setGrabCursor,\n unsetGrabCursor,\n};\n","import Support from '../../../utils/support';\n\nexport default function (slides) {\n const swiper = this;\n const { $wrapperEl, params } = swiper;\n if (params.loop) {\n swiper.loopDestroy();\n }\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n}\n","import Support from '../../../utils/support';\n\nexport default function (slides) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n let newActiveIndex = activeIndex + 1;\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n swiper.slideTo(newActiveIndex, 0, false);\n}\n","import Support from '../../../utils/support';\n\nexport default function (index, slides) {\n const swiper = this;\n const { $wrapperEl, params, activeIndex } = swiper;\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n const baseLength = swiper.slides.length;\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n\n const slidesBuffer = [];\n for (let i = baseLength - 1; i >= index; i -= 1) {\n const currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (let i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (let i = 0; i < slidesBuffer.length; i += 1) {\n $wrapperEl.append(slidesBuffer[i]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n","import Support from '../../../utils/support';\n\nexport default function (slidesIndexes) {\n const swiper = this;\n const { params, $wrapperEl, activeIndex } = swiper;\n\n let activeIndexBuffer = activeIndex;\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\n }\n let newActiveIndex = activeIndexBuffer;\n let indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (let i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && Support.observer)) {\n swiper.update();\n }\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}\n","export default function () {\n const swiper = this;\n\n const slidesIndexes = [];\n for (let i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n swiper.removeSlide(slidesIndexes);\n}\n","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\n\nexport default {\n appendSlide,\n prependSlide,\n addSlide,\n removeSlide,\n removeAllSlides,\n};\n","import { window } from 'ssr-window';\nimport Support from './support';\n\nconst Device = (function Device() {\n const platform = window.navigator.platform;\n const ua = window.navigator.userAgent;\n\n const device = {\n ios: false,\n android: false,\n androidChrome: false,\n desktop: false,\n iphone: false,\n ipod: false,\n ipad: false,\n edge: false,\n ie: false,\n firefox: false,\n macos: false,\n windows: false,\n cordova: !!(window.cordova || window.phonegap),\n phonegap: !!(window.cordova || window.phonegap),\n electron: false,\n };\n\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0;\n const edge = ua.indexOf('Edge/') >= 0;\n const firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0;\n const windows = platform === 'Win32';\n const electron = ua.toLowerCase().indexOf('electron') >= 0;\n let macos = platform === 'MacIntel';\n\n // iPadOs 13 fix\n if (!ipad\n && macos\n && Support.touch\n && (\n (screenWidth === 1024 && screenHeight === 1366) // Pro 12.9\n || (screenWidth === 834 && screenHeight === 1194) // Pro 11\n || (screenWidth === 834 && screenHeight === 1112) // Pro 10.5\n || (screenWidth === 768 && screenHeight === 1024) // other\n )\n ) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n macos = false;\n }\n\n device.ie = ie;\n device.edge = edge;\n device.firefox = firefox;\n\n // Android\n if (android && !windows) {\n device.os = 'android';\n device.osVersion = android[2];\n device.android = true;\n device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0;\n }\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n }\n // iOS\n if (iphone && !ipod) {\n device.osVersion = iphone[2].replace(/_/g, '.');\n device.iphone = true;\n }\n if (ipad) {\n device.osVersion = ipad[2].replace(/_/g, '.');\n device.ipad = true;\n }\n if (ipod) {\n device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null;\n device.ipod = true;\n }\n // iOS 8+ changed UA\n if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) {\n if (device.osVersion.split('.')[0] === '10') {\n device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0];\n }\n }\n\n // Webview\n device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || window.navigator.standalone))\n || (window.matchMedia && window.matchMedia('(display-mode: standalone)').matches);\n device.webview = device.webView;\n device.standalone = device.webView;\n\n // Desktop\n device.desktop = !(device.ios || device.android) || electron;\n if (device.desktop) {\n device.electron = electron;\n device.macos = macos;\n device.windows = windows;\n if (device.macos) {\n device.os = 'macos';\n }\n if (device.windows) {\n device.os = 'windows';\n }\n }\n\n // Pixel Ratio\n device.pixelRatio = window.devicePixelRatio || 1;\n\n // Export object\n return device;\n}());\n\nexport default Device;\n","import { window, document } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport Utils from '../../../utils/utils';\n\nexport default function (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n const $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return;\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`)[0]) {\n swiper.allowClick = true;\n return;\n }\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY;\n\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n if (\n edgeSwipeDetection\n && ((startX <= edgeSwipeThreshold)\n || (startX >= window.screen.width - edgeSwipeThreshold))\n ) {\n return;\n }\n\n Utils.extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined,\n });\n\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = Utils.now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n if (\n document.activeElement\n && $(document.activeElement).is(data.formElements)\n && document.activeElement !== $targetEl[0]\n ) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n if (params.touchStartForcePreventDefault || shouldPreventDefault) {\n e.preventDefault();\n }\n }\n swiper.emit('touchStart', e);\n}\n","import { document } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport Utils from '../../../utils/utils';\n\nexport default function (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const { params, touches, rtlTranslate: rtl } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n return;\n }\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n if (!swiper.allowTouchMove) {\n // isMoved = true;\n swiper.allowClick = false;\n if (data.isTouched) {\n Utils.extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY,\n });\n data.touchStartTime = Utils.now();\n }\n return;\n }\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate())\n || (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\n ) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate())\n || (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\n ) {\n return;\n }\n }\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.formElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n if (e.targetTouches && e.targetTouches.length > 1) return;\n\n touches.currentX = pageX;\n touches.currentY = pageY;\n\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt((diffX ** 2) + (diffY ** 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if ((diffX * diffX) + (diffY * diffY) >= 25) {\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle);\n }\n }\n }\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n if (!data.startMoving) {\n return;\n }\n swiper.allowClick = false;\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop) {\n swiper.loopFix();\n }\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n data.allowMomentumBounce = false;\n // Grab Cursor\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n swiper.emit('sliderFirstMove', e);\n }\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = (swiper.minTranslate() - 1) + ((-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = (swiper.maxTranslate() + 1) - ((swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n }\n\n // Directions locks\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n\n // Threshold\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return;\n\n // Update active index in free mode\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime,\n });\n }\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: Utils.now(),\n });\n }\n // Update progress\n swiper.updateProgress(data.currentTranslate);\n // Update translate\n swiper.setTranslate(data.currentTranslate);\n}\n","import Utils from '../../../utils/utils';\n\nexport default function (event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n\n const {\n params, touches, rtlTranslate: rtl, $wrapperEl, slidesGrid, snapGrid,\n } = swiper;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n data.allowTouchCallbacks = false;\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n // Return Grab Cursor\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n }\n\n // Time diff\n const touchEndTime = Utils.now();\n const timeDiff = touchEndTime - data.touchStartTime;\n\n // Tap, doubleTap, Click\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\n swiper.emit('tap click', e);\n if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = Utils.now();\n Utils.nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n\n let currentPos;\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n const lastMoveEvent = data.velocities.pop();\n const velocityEvent = data.velocities.pop();\n\n const distance = lastMoveEvent.position - velocityEvent.position;\n const time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n }\n // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n\n data.velocities.length = 0;\n let momentumDuration = 1000 * params.freeModeMomentumRatio;\n const momentumDistance = swiper.velocity * momentumDuration;\n\n let newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n\n let doBounce = false;\n let afterBouncePosition;\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n let needsLoopFix;\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n let nextSlide;\n for (let j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n newPosition = -newPosition;\n }\n if (needsLoopFix) {\n swiper.once('transitionEnd', () => {\n swiper.loopFix();\n });\n }\n // Fix duration\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(() => {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(() => {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n return;\n }\n\n // Find current slide\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n for (let i = 0; i < slidesGrid.length; i += (i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup)) {\n const increment = (i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n // Find current slide size\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = (stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup);\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n if (swiper.swipeDirection === 'prev') {\n if (ratio > (1 - params.longSwipesRatio)) swiper.slideTo(stopIndex + increment);\n else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}\n","export default function () {\n const swiper = this;\n\n const { params, el } = swiper;\n\n if (el && el.offsetWidth === 0) return;\n\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Save locks\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\n\n // Disable locks on resize\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n\n swiper.updateSize();\n swiper.updateSlides();\n\n swiper.updateSlidesClasses();\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n }\n // Return locks after resize\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}\n","export default function (e) {\n const swiper = this;\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}\n","export default function () {\n const swiper = this;\n const { wrapperEl, rtlTranslate } = swiper;\n swiper.previousTranslate = swiper.translate;\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = ((wrapperEl.scrollWidth - wrapperEl.offsetWidth) - wrapperEl.scrollLeft);\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n }\n // eslint-disable-next-line\n if (swiper.translate === -0) swiper.translate = 0;\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / (translatesDiff);\n }\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}\n","import { document } from 'ssr-window';\nimport Device from '../../../utils/device';\nimport Support from '../../../utils/support';\n\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\n\nlet dummyEventAttached = false;\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n const swiper = this;\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n if (params.updateOnWindowResize) {\n swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n const swiper = this;\n\n const {\n params, touchEvents, el, wrapperEl,\n } = swiper;\n\n const capture = !!params.nested;\n\n // Touch Events\n if (!Support.touch && Support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (Support.touch) {\n const passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n }\n // Prevent Links Clicks\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n }\n\n // Resize handler\n swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize);\n}\n\nexport default {\n attachEvents,\n detachEvents,\n};\n","import Utils from '../../../utils/utils';\n\nexport default function () {\n const swiper = this;\n const {\n activeIndex, initialized, loopedSlides = 0, params, $el,\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\n\n // Get breakpoint for window width and update parameters\n const breakpoint = swiper.getBreakpoint(breakpoints);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach((param) => {\n const paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = params.slidesPerColumn > 1;\n const isMultiRow = breakpointParams.slidesPerColumn > 1;\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}multirow ${params.containerModifierClass}multirow-column`);\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}multirow`);\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(`${params.containerModifierClass}multirow-column`);\n }\n }\n\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n Utils.extend(swiper.params, breakpointParams);\n\n Utils.extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n });\n\n swiper.currentBreakpoint = breakpoint;\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n}\n","import { window } from 'ssr-window';\n\nexport default function (breakpoints) {\n // Get breakpoint for window width\n if (!breakpoints) return undefined;\n let breakpoint = false;\n\n const points = Object.keys(breakpoints).map((point) => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = window.innerHeight * minRatio;\n return { value, point };\n }\n return { value: point, point };\n });\n\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n for (let i = 0; i < points.length; i += 1) {\n const { point, value } = points[i];\n if (value <= window.innerWidth) {\n breakpoint = point;\n }\n }\n return breakpoint || 'max';\n}\n","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\n\nexport default { setBreakpoint, getBreakpoint };\n","import Device from '../../../utils/device';\n\nexport default function () {\n const swiper = this;\n const {\n classNames, params, rtl, $el,\n } = swiper;\n const suffixes = [];\n\n suffixes.push('initialized');\n suffixes.push(params.direction);\n\n if (params.freeMode) {\n suffixes.push('free-mode');\n }\n if (params.autoHeight) {\n suffixes.push('autoheight');\n }\n if (rtl) {\n suffixes.push('rtl');\n }\n if (params.slidesPerColumn > 1) {\n suffixes.push('multirow');\n if (params.slidesPerColumnFill === 'column') {\n suffixes.push('multirow-column');\n }\n }\n if (Device.android) {\n suffixes.push('android');\n }\n if (Device.ios) {\n suffixes.push('ios');\n }\n\n if (params.cssMode) {\n suffixes.push('css-mode');\n }\n\n suffixes.forEach((suffix) => {\n classNames.push(params.containerModifierClass + suffix);\n });\n\n $el.addClass(classNames.join(' '));\n}\n","export default function () {\n const swiper = this;\n const { $el, classNames } = swiper;\n\n $el.removeClass(classNames.join(' '));\n}\n","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\n\nexport default { addClasses, removeClasses };\n","import { window } from 'ssr-window';\nimport $ from '../../../utils/dom';\n\nexport default function (imageEl, src, srcset, sizes, checkForComplete, callback) {\n let image;\n function onReady() {\n if (callback) callback();\n }\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n if (sizes) {\n image.sizes = sizes;\n }\n if (srcset) {\n image.srcset = srcset;\n }\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}\n","export default function () {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(\n imageEl,\n imageEl.currentSrc || imageEl.getAttribute('src'),\n imageEl.srcset || imageEl.getAttribute('srcset'),\n imageEl.sizes || imageEl.getAttribute('sizes'),\n true,\n onReady\n );\n }\n}\n","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\n\nexport default {\n loadImage,\n preloadImages,\n};\n","\nfunction checkOverflow() {\n const swiper = this;\n const params = swiper.params;\n const wasLocked = swiper.isLocked;\n const lastSlidePosition = swiper.slides.length > 0 && (params.slidesOffsetBefore + (params.spaceBetween * (swiper.slides.length - 1)) + ((swiper.slides[0]).offsetWidth) * swiper.slides.length);\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked;\n\n // events\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default { checkOverflow };\n","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n //\n preventInteractionOnTransition: false,\n\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n\n // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n\n // Autoheight\n autoHeight: false,\n\n // Set wrapper width\n setWrapperSize: false,\n\n // Virtual Translate\n virtualTranslate: false,\n\n // Effects\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n // Breakpoints\n breakpoints: undefined,\n\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0, // in px\n slidesOffsetAfter: 0, // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n\n // Round length\n roundLengths: false,\n\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n\n // Unique Navigation Elements\n uniqueNavElements: true,\n\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n\n // Cursor\n grabCursor: false,\n\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null, // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n\n // Passive Listeners\n passiveListeners: true,\n\n // NS\n containerModifierClass: 'swiper-container-', // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n\n // Callbacks\n runCallbacksOnInit: true,\n};\n","/* eslint no-param-reassign: \"off\" */\nimport $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\nimport Support from '../../utils/support';\n\nimport SwiperClass from '../../utils/class';\n\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\n\nimport defaults from './defaults';\n\nconst prototypes = {\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n manipulation,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images,\n};\n\nconst extendedDefaults = {};\n\nclass Swiper extends SwiperClass {\n constructor(...args) {\n let el;\n let params;\n if (args.length === 1 && args[0].constructor && args[0].constructor === Object) {\n params = args[0];\n } else {\n [el, params] = args;\n }\n if (!params) params = {};\n\n params = Utils.extend({}, params);\n if (el && !params.el) params.el = el;\n\n super(params);\n\n Object.keys(prototypes).forEach((prototypeGroup) => {\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\n if (!Swiper.prototype[protoMethod]) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n }\n });\n });\n\n // Swiper Instance\n const swiper = this;\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n Object.keys(swiper.modules).forEach((moduleName) => {\n const module = swiper.modules[moduleName];\n if (module.params) {\n const moduleParamName = Object.keys(module.params)[0];\n const moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\n if (params[moduleParamName] === true) {\n params[moduleParamName] = { enabled: true };\n }\n if (\n typeof params[moduleParamName] === 'object'\n && !('enabled' in params[moduleParamName])\n ) {\n params[moduleParamName].enabled = true;\n }\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\n }\n });\n\n // Extend defaults with modules params\n const swiperParams = Utils.extend({}, defaults);\n swiper.useModulesParams(swiperParams);\n\n // Extend defaults with passed params\n swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = Utils.extend({}, swiper.params);\n swiper.passedParams = Utils.extend({}, params);\n\n // Save Dom lib\n swiper.$ = $;\n\n // Find el\n const $el = $(swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return undefined;\n }\n\n if ($el.length > 1) {\n const swipers = [];\n $el.each((index, containerEl) => {\n const newParams = Utils.extend({}, params, { el: containerEl });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n }\n\n el.swiper = swiper;\n $el.data('swiper', swiper);\n\n // Find Wrapper\n let $wrapperEl;\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(`.${swiper.params.wrapperClass}`));\n // Children needs to return slot items\n $wrapperEl.children = (options) => $el.children(options);\n } else {\n $wrapperEl = $el.children(`.${swiper.params.wrapperClass}`);\n }\n // Extend Swiper\n Utils.extend(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n\n // Classes\n classNames: [],\n\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n // RTL\n rtl: (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n\n //\n isBeginning: true,\n isEnd: false,\n\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n\n // Touch Events\n touchEvents: (function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n let desktop = ['mousedown', 'mousemove', 'mouseup'];\n if (Support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3],\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2],\n };\n return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }()),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n formElements: 'input, select, option, textarea, button, video, label',\n // Last click time\n lastClickTime: Utils.now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined,\n },\n\n // Clicks\n allowClick: true,\n\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0,\n },\n\n // Images\n imagesToLoad: [],\n imagesLoaded: 0,\n\n });\n\n // Install Modules\n swiper.useModules();\n\n // Init\n if (swiper.params.init) {\n swiper.init();\n }\n\n // Return app instance\n return swiper;\n }\n\n slidesPerViewDynamic() {\n const swiper = this;\n const {\n params, slides, slidesGrid, size: swiperSize, activeIndex,\n } = swiper;\n let spv = 1;\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slidesGrid[i] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const { snapGrid, params } = swiper;\n // Breakpoints\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n let translated;\n if (swiper.params.freeMode) {\n setTranslate();\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n if (!translated) {\n setTranslate();\n }\n }\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) {\n return swiper;\n }\n\n swiper.$el\n .removeClass(`${swiper.params.containerModifierClass}${currentDirection}`)\n .addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n\n swiper.params.direction = newDirection;\n\n swiper.slides.each((slideIndex, slideEl) => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n\n return swiper;\n }\n\n init() {\n const swiper = this;\n if (swiper.initialized) return;\n\n swiper.emit('beforeInit');\n\n // Set breakpoint\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n // Add Classes\n swiper.addClasses();\n\n // Create loop\n if (swiper.params.loop) {\n swiper.loopCreate();\n }\n\n // Update size\n swiper.updateSize();\n\n // Update slides\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n }\n\n // Set Grab Cursor\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n }\n\n // Slide To Initial Slide\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\n }\n\n // Attach events\n swiper.attachEvents();\n\n // Init Flag\n swiper.initialized = true;\n\n // Emit\n swiper.emit('init');\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params, $el, $wrapperEl, slides,\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy');\n\n // Init Flag\n swiper.initialized = false;\n\n // Detach events\n swiper.detachEvents();\n\n // Destroy loop\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n // Cleanup styles\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n if (slides && slides.length) {\n slides\n .removeClass([\n params.slideVisibleClass,\n params.slideActiveClass,\n params.slideNextClass,\n params.slidePrevClass,\n ].join(' '))\n .removeAttr('style')\n .removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy');\n\n // Detach emitter events\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n swiper.$el.data('swiper', null);\n Utils.deleteProps(swiper);\n }\n swiper.destroyed = true;\n\n return null;\n }\n\n static extendDefaults(newDefaults) {\n Utils.extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static get Class() {\n return SwiperClass;\n }\n\n static get $() {\n return $;\n }\n}\n\nexport default Swiper;\n","import Device from '../../utils/device';\n\nexport default {\n name: 'device',\n proto: {\n device: Device,\n },\n static: {\n device: Device,\n },\n};\n","import Support from '../../utils/support';\n\nexport default {\n name: 'support',\n proto: {\n support: Support,\n },\n static: {\n support: Support,\n },\n};\n","import { window } from 'ssr-window';\n\nconst Browser = (function Browser() {\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0);\n }\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\n };\n}());\n\nexport default Browser;\n","import Browser from '../../utils/browser';\n\nexport default {\n name: 'browser',\n proto: {\n browser: Browser,\n },\n static: {\n browser: Browser,\n },\n};\n","import { window } from 'ssr-window';\nimport Utils from '../../utils/utils';\n\nexport default {\n name: 'resize',\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n resize: {\n resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n },\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n // Emit resize\n window.addEventListener('resize', swiper.resize.resizeHandler);\n\n // Emit orientationchange\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy() {\n const swiper = this;\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n },\n};\n","import { window } from 'ssr-window';\nimport Utils from '../../utils/utils';\nimport Support from '../../utils/support';\n\nconst Observer = {\n func: window.MutationObserver || window.WebkitMutationObserver,\n attach(target, options = {}) {\n const swiper = this;\n\n const ObserverFunc = Observer.func;\n const observer = new ObserverFunc((mutations) => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n const observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\n });\n\n swiper.observer.observers.push(observer);\n },\n init() {\n const swiper = this;\n if (!Support.observer || !swiper.params.observer) return;\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n for (let i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n }\n // Observe container\n swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren });\n\n // Observe wrapper\n swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false });\n },\n destroy() {\n const swiper = this;\n swiper.observer.observers.forEach((observer) => {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n },\n};\n\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false,\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n observer: {\n init: Observer.init.bind(swiper),\n attach: Observer.attach.bind(swiper),\n destroy: Observer.destroy.bind(swiper),\n observers: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.observer.init();\n },\n destroy() {\n const swiper = this;\n swiper.observer.destroy();\n },\n },\n};\n","import { window, document } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\n\nfunction isEventSupported() {\n const eventName = 'onwheel';\n let isSupported = eventName in document;\n\n if (!isSupported) {\n const element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported\n && document.implementation\n && document.implementation.hasFeature\n // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n && document.implementation.hasFeature('', '') !== true\n ) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\nconst Mousewheel = {\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event() {\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize(e) {\n // Reasonable defaults\n const PIXEL_STEP = 10;\n const LINE_HEIGHT = 40;\n const PAGE_HEIGHT = 800;\n\n let sX = 0;\n let sY = 0; // spinX, spinY\n let pX = 0;\n let pY = 0; // pixelX, pixelY\n\n // Legacy\n if ('detail' in e) {\n sY = e.detail;\n }\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n }\n\n // side scrolling on FF with DOMMouseScroll\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) { // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) { // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else { // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n }\n\n // Fall-back if spin cannot be determined\n if (pX && !sX) {\n sX = (pX < 1) ? -1 : 1;\n }\n if (pY && !sY) {\n sY = (pY < 1) ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY,\n };\n },\n handleMouseEnter() {\n const swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave() {\n const swiper = this;\n swiper.mouseEntered = false;\n },\n handle(event) {\n let e = event;\n const swiper = this;\n const params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n let delta = 0;\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n\n const data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;\n else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\n else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n\n if (params.invert) delta = -delta;\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n const newEvent = {\n time: Utils.now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event,\n };\n\n // Keep the most recent events\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent);\n\n // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n }\n\n // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n const newEvent = { time: Utils.now(), delta: Math.abs(delta), direction: Math.sign(delta) };\n const { lastEventBeforeSnap } = swiper.mousewheel;\n const ignoreWheelEvents = lastEventBeforeSnap\n && newEvent.time < lastEventBeforeSnap.time + 500\n && newEvent.delta <= lastEventBeforeSnap.delta\n && newEvent.direction === lastEventBeforeSnap.direction;\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n let position = swiper.getTranslate() + (delta * params.sensitivity);\n const wasBeginning = swiper.isBeginning;\n const wasEnd = swiper.isEnd;\n\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momuntum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n const recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n const firstEvent = recentWheelEvents[0];\n recentWheelEvents.push(newEvent);\n if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n recentWheelEvents.splice(0);\n } else if (recentWheelEvents.length >= 15\n && newEvent.time - firstEvent.time < 500\n && firstEvent.delta - newEvent.delta >= 1\n && newEvent.delta <= 6\n ) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = Utils.nextTick(() => {\n const snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n }\n\n // Emit event\n if (!ignoreWheelEvents) swiper.emit('scroll', e);\n\n // Stop autoplay\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop();\n // Return page scroll on edge positions\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();\n else e.returnValue = false;\n return false;\n },\n animateSlider(newEvent) {\n const swiper = this;\n // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n if (newEvent.delta >= 6 && Utils.now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n }\n // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n }\n // If you got here is because an animation has been triggered so store the current time\n swiper.mousewheel.lastScrollTime = (new window.Date()).getTime();\n // Return false as a default\n return false;\n },\n releaseScroll(newEvent) {\n const swiper = this;\n const params = swiper.params.mousewheel;\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n return false;\n },\n enable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable() {\n const swiper = this;\n const event = Mousewheel.event();\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n let target = swiper.$el;\n if (swiper.params.mousewheel.eventsTarged !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarged);\n }\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n },\n};\n\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarged: 'container',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n mousewheel: {\n enabled: false,\n enable: Mousewheel.enable.bind(swiper),\n disable: Mousewheel.disable.bind(swiper),\n handle: Mousewheel.handle.bind(swiper),\n handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper),\n handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper),\n animateSlider: Mousewheel.animateSlider.bind(swiper),\n releaseScroll: Mousewheel.releaseScroll.bind(swiper),\n lastScrollTime: Utils.now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy() {\n const swiper = this;\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n },\n },\n};\n","import $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\n\nconst Navigation = {\n update() {\n // Update Navigation Buttons\n const swiper = this;\n const params = swiper.params.navigation;\n\n if (swiper.params.loop) return;\n const { $nextEl, $prevEl } = swiper.navigation;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n $prevEl.addClass(params.disabledClass);\n } else {\n $prevEl.removeClass(params.disabledClass);\n }\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n $nextEl.addClass(params.disabledClass);\n } else {\n $nextEl.removeClass(params.disabledClass);\n }\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick(e) {\n const swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init() {\n const swiper = this;\n const params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n\n let $nextEl;\n let $prevEl;\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.nextEl === 'string'\n && $nextEl.length > 1\n && swiper.$el.find(params.nextEl).length === 1\n ) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n if (\n swiper.params.uniqueNavElements\n && typeof params.prevEl === 'string'\n && $prevEl.length > 1\n && swiper.$el.find(params.prevEl).length === 1\n ) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n Utils.extend(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0],\n });\n },\n destroy() {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n },\n};\n\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n navigation: {\n init: Navigation.init.bind(swiper),\n update: Navigation.update.bind(swiper),\n destroy: Navigation.destroy.bind(swiper),\n onNextClick: Navigation.onNextClick.bind(swiper),\n onPrevClick: Navigation.onPrevClick.bind(swiper),\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n fromEdge() {\n const swiper = this;\n swiper.navigation.update();\n },\n destroy() {\n const swiper = this;\n swiper.navigation.destroy();\n },\n click(e) {\n const swiper = this;\n const { $nextEl, $prevEl } = swiper.navigation;\n if (\n swiper.params.navigation.hideOnClick\n && !$(e.target).is($prevEl)\n && !$(e.target).is($nextEl)\n ) {\n let isHidden;\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n if (isHidden === true) {\n swiper.emit('navigationShow', swiper);\n } else {\n swiper.emit('navigationHide', swiper);\n }\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n },\n },\n};\n","import $ from '../../utils/dom';\nimport Utils from '../../utils/utils';\n\nconst Pagination = {\n update() {\n // Render || Update Pagination bullets/items\n const swiper = this;\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n // Current/Total\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) {\n current -= (slidesLength - (swiper.loopedSlides * 2));\n }\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n }\n // Types\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n const bullets = swiper.pagination.bullets;\n let firstIndex;\n let lastIndex;\n let midIndex;\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)}px`);\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex);\n if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n bullets.removeClass(`${params.bulletActiveClass} ${params.bulletActiveClass}-next ${params.bulletActiveClass}-next-next ${params.bulletActiveClass}-prev ${params.bulletActiveClass}-prev-prev ${params.bulletActiveClass}-main`);\n if ($el.length > 1) {\n bullets.each((index, bullet) => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n if (bulletIndex === firstIndex) {\n $bullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n }\n if (bulletIndex === lastIndex) {\n $bullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n } else {\n $firstDisplayedBullet\n .prev()\n .addClass(`${params.bulletActiveClass}-prev`)\n .prev()\n .addClass(`${params.bulletActiveClass}-prev-prev`);\n $lastDisplayedBullet\n .next()\n .addClass(`${params.bulletActiveClass}-next`)\n .next()\n .addClass(`${params.bulletActiveClass}-next-next`);\n }\n }\n }\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize);\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n if (params.type === 'fraction') {\n $el.find(`.${params.currentClass}`).text(params.formatFractionCurrent(current + 1));\n $el.find(`.${params.totalClass}`).text(params.formatFractionTotal(total));\n }\n if (params.type === 'progressbar') {\n let progressbarDirection;\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n $el.find(`.${params.progressbarFillClass}`).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', swiper, $el[0]);\n } else {\n swiper.emit('paginationUpdate', swiper, $el[0]);\n }\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render() {\n // Render Container\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n if (params.type === 'bullets') {\n const numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n for (let i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\n }\n }\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(`.${params.bulletClass}`);\n }\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = ``\n + ' / '\n + ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n $el.html(paginationHTML);\n }\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el) return;\n\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (\n swiper.params.uniqueNavElements\n && typeof params.el === 'string'\n && $el.length > 1\n ) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n swiper.pagination.dynamicBulletIndex = 0;\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', `.${params.bulletClass}`, function onClick(e) {\n e.preventDefault();\n let index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n Utils.extend(swiper.pagination, {\n $el,\n el: $el[0],\n });\n },\n destroy() {\n const swiper = this;\n const params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n const $el = swiper.pagination.$el;\n\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n if (params.clickable) {\n $el.off('click', `.${params.bulletClass}`);\n }\n },\n};\n\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: (number) => number,\n formatFractionTotal: (number) => number,\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-', // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable', // NEW\n lockClass: 'swiper-pagination-lock',\n },\n },\n create() {\n const swiper = this;\n Utils.extend(swiper, {\n pagination: {\n init: Pagination.init.bind(swiper),\n render: Pagination.render.bind(swiper),\n update: Pagination.update.bind(swiper),\n destroy: Pagination.destroy.bind(swiper),\n dynamicBulletIndex: 0,\n },\n });\n },\n on: {\n init() {\n const swiper = this;\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange() {\n const swiper = this;\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange() {\n const swiper = this;\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy() {\n const swiper = this;\n swiper.pagination.destroy();\n },\n click(e) {\n const swiper = this;\n if (\n swiper.params.pagination.el\n && swiper.params.pagination.hideOnClick\n && swiper.pagination.$el.length > 0\n && !$(e.target).hasClass(swiper.params.pagination.bulletClass)\n ) {\n const isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n if (isHidden === true) {\n swiper.emit('paginationShow', swiper);\n } else {\n swiper.emit('paginationHide', swiper);\n }\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n },\n },\n};\n","// Swiper Class\nimport Swiper from './components/core/core-class';\n\n// Core Modules\nimport Device from './modules/device/device';\nimport Support from './modules/support/support';\nimport Browser from './modules/browser/browser';\nimport Resize from './modules/resize/resize';\nimport Observer from './modules/observer/observer';\n\n//IMPORT_COMPONENTS\n\nconst components = [\n Device,\n Support,\n Browser,\n Resize,\n Observer,\n //INSTALL_COMPONENTS\n];\n\nif (typeof Swiper.use === 'undefined') {\n Swiper.use = Swiper.Class.use;\n Swiper.installModule = Swiper.Class.installModule;\n}\n\nSwiper.use(components);\n\n//EXPORT\n","/* eslint-disable no-undefined */\n\nvar throttle = require('./throttle');\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [atBegin] Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @return {Function} A new, debounced function.\n */\nmodule.exports = function ( delay, atBegin, callback ) {\n\treturn callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n};\n","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {Number} delay A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {Boolean} [noTrailing] Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset)\n * @param {Function} callback A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {Boolean} [debounceMode] If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @return {Function} A new, throttled, function.\n */\nmodule.exports = function ( delay, noTrailing, callback, debounceMode ) {\n\n\t// After wrapper has stopped being called, this timeout ensures that\n\t// `callback` is executed at the proper times in `throttle` and `end`\n\t// debounce modes.\n\tvar timeoutID;\n\n\t// Keep track of the last time `callback` was executed.\n\tvar lastExec = 0;\n\n\t// `noTrailing` defaults to falsy.\n\tif ( typeof noTrailing !== 'boolean' ) {\n\t\tdebounceMode = callback;\n\t\tcallback = noTrailing;\n\t\tnoTrailing = undefined;\n\t}\n\n\t// The `wrapper` function encapsulates all of the throttling / debouncing\n\t// functionality and when executed will limit the rate at which `callback`\n\t// is executed.\n\tfunction wrapper () {\n\n\t\tvar self = this;\n\t\tvar elapsed = Number(new Date()) - lastExec;\n\t\tvar args = arguments;\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec () {\n\t\t\tlastExec = Number(new Date());\n\t\t\tcallback.apply(self, args);\n\t\t}\n\n\t\t// If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t// to allow future `callback` executions.\n\t\tfunction clear () {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif ( debounceMode && !timeoutID ) {\n\t\t\t// Since `wrapper` is being called for the first time and\n\t\t\t// `debounceMode` is true (at begin), execute `callback`.\n\t\t\texec();\n\t\t}\n\n\t\t// Clear any existing timeout.\n\t\tif ( timeoutID ) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\n\t\tif ( debounceMode === undefined && elapsed > delay ) {\n\t\t\t// In throttle mode, if `delay` time has been exceeded, execute\n\t\t\t// `callback`.\n\t\t\texec();\n\n\t\t} else if ( noTrailing !== true ) {\n\t\t\t// In trailing throttle mode, since `delay` time has not been\n\t\t\t// exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t// recent execution.\n\t\t\t//\n\t\t\t// If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t// after `delay` ms.\n\t\t\t//\n\t\t\t// If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t// execute after `delay` ms.\n\t\t\ttimeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n\t\t}\n\n\t}\n\n\t// Return the wrapper function.\n\treturn wrapper;\n\n};\n","\n/*!\n * vue-awesome-swiper v4.1.1\n * Copyright (c) Surmon. All rights reserved.\n * Released under the MIT License.\n * Surmon \n */\n\n(function(g,f){typeof exports==='object'&&typeof module!=='undefined'?module.exports=f(require('vue')):typeof define==='function'&&define.amd?define(['vue'],f):(g=g||self,g.VueAwesomeSwiper=f(g.Vue));}(this,(function(Vue){'use strict';Vue=Vue&&Object.prototype.hasOwnProperty.call(Vue,'default')?Vue['default']:Vue;/**\r\n * @file vue-awesome-swiper\r\n * @module constants\r\n * @author Surmon \r\n */\r\nvar CoreNames;\r\n(function (CoreNames) {\r\n CoreNames[\"SwiperComponent\"] = \"Swiper\";\r\n CoreNames[\"SwiperSlideComponent\"] = \"SwiperSlide\";\r\n CoreNames[\"SwiperDirective\"] = \"swiper\";\r\n CoreNames[\"SwiperInstance\"] = \"$swiper\";\r\n})(CoreNames || (CoreNames = {}));\r\nvar DEFAULT_CLASSES = Object.freeze({\r\n containerClass: 'swiper-container',\r\n wrapperClass: 'swiper-wrapper',\r\n slideClass: 'swiper-slide'\r\n});\r\nvar ComponentEvents;\r\n(function (ComponentEvents) {\r\n ComponentEvents[\"Ready\"] = \"ready\";\r\n ComponentEvents[\"ClickSlide\"] = \"clickSlide\";\r\n})(ComponentEvents || (ComponentEvents = {}));\r\nvar ComponentPropNames;\r\n(function (ComponentPropNames) {\r\n ComponentPropNames[\"AutoUpdate\"] = \"autoUpdate\";\r\n ComponentPropNames[\"AutoDestroy\"] = \"autoDestroy\";\r\n ComponentPropNames[\"DeleteInstanceOnDestroy\"] = \"deleteInstanceOnDestroy\";\r\n ComponentPropNames[\"CleanupStylesOnDestroy\"] = \"cleanupStylesOnDestroy\";\r\n})(ComponentPropNames || (ComponentPropNames = {}));\r\n// https://swiperjs.com/api/#events\r\nvar SWIPER_EVENTS = [\r\n 'init',\r\n 'beforeDestroy',\r\n 'slideChange',\r\n 'slideChangeTransitionStart',\r\n 'slideChangeTransitionEnd',\r\n 'slideNextTransitionStart',\r\n 'slideNextTransitionEnd',\r\n 'slidePrevTransitionStart',\r\n 'slidePrevTransitionEnd',\r\n 'transitionStart',\r\n 'transitionEnd',\r\n 'touchStart',\r\n 'touchMove',\r\n 'touchMoveOpposite',\r\n 'sliderMove',\r\n 'touchEnd',\r\n 'click',\r\n 'tap',\r\n 'doubleTap',\r\n 'imagesReady',\r\n 'progress',\r\n 'reachBeginning',\r\n 'reachEnd',\r\n 'fromEdge',\r\n 'setTranslate',\r\n 'setTransition',\r\n 'resize',\r\n 'observerUpdate',\r\n 'beforeLoopFix',\r\n 'loopFix'\r\n];/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module utils\r\n * @author Surmon \r\n */\r\nvar kebabcase = function (string) {\r\n return string\r\n .replace(/([a-z])([A-Z])/g, '$1-$2')\r\n .replace(/\\s+/g, '-')\r\n .toLowerCase();\r\n};/**\r\n * @file vue-awesome-swiper\r\n * @module event\r\n * @author Surmon \r\n */\r\nvar handleClickSlideEvent = function (swiper, event, emit) {\r\n var _a, _b, _c;\r\n if (swiper && !(swiper.destroyed)) {\r\n var eventPath = ((_a = event.composedPath) === null || _a === void 0 ? void 0 : _a.call(event)) || event.path;\r\n if ((event === null || event === void 0 ? void 0 : event.target) && eventPath) {\r\n var slides_1 = Array.from(swiper.slides);\r\n var paths = Array.from(eventPath);\r\n // Click slide || slide[children]\r\n if (slides_1.includes(event.target) || paths.some(function (item) { return slides_1.includes(item); })) {\r\n var clickedIndex = swiper.clickedIndex;\r\n var reallyIndex = Number((_c = (_b = swiper.clickedSlide) === null || _b === void 0 ? void 0 : _b.dataset) === null || _c === void 0 ? void 0 : _c.swiperSlideIndex);\r\n var reallyIndexValue = Number.isInteger(reallyIndex) ? reallyIndex : null;\r\n emit(ComponentEvents.ClickSlide, clickedIndex, reallyIndexValue);\r\n emit(kebabcase(ComponentEvents.ClickSlide), clickedIndex, reallyIndexValue);\r\n }\r\n }\r\n }\r\n};\r\nvar bindSwiperEvents = function (swiper, emit) {\r\n SWIPER_EVENTS.forEach(function (eventName) {\r\n swiper.on(eventName, function () {\n var arguments$1 = arguments;\n\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments$1[_i];\r\n }\r\n emit.apply(void 0, __spreadArrays([eventName], args));\r\n var kebabcaseName = kebabcase(eventName);\r\n if (kebabcaseName !== eventName) {\r\n emit.apply(void 0, __spreadArrays([kebabcaseName], args));\r\n }\r\n });\r\n });\r\n};/**\r\n * @file vue-awesome-swiper\r\n * @module directive\r\n * @author Surmon \r\n */\r\nvar INSTANCE_NAME_KEY = 'instanceName';\r\nfunction getDirective(SwiperClass, globalOptions) {\r\n var getStandardisedOptionByAttrs = function (vnode, key) {\r\n var _a, _b, _c, _d;\r\n var value = (_b = (_a = vnode.data) === null || _a === void 0 ? void 0 : _a.attrs) === null || _b === void 0 ? void 0 : _b[key];\r\n return value !== undefined\r\n ? value\r\n : (_d = (_c = vnode.data) === null || _c === void 0 ? void 0 : _c.attrs) === null || _d === void 0 ? void 0 : _d[kebabcase(key)];\r\n };\r\n // Get swiper instace name in directive\r\n var getSwiperInstanceName = function (element, binding, vnode) {\r\n return (binding.arg ||\r\n getStandardisedOptionByAttrs(vnode, INSTANCE_NAME_KEY) ||\r\n element.id ||\r\n CoreNames.SwiperInstance);\r\n };\r\n var getSwiperInstance = function (element, binding, vnode) {\r\n var instanceName = getSwiperInstanceName(element, binding, vnode);\r\n return vnode.context[instanceName] || null;\r\n };\r\n var getSwipeOptions = function (binding) {\r\n return binding.value || globalOptions;\r\n };\r\n var getBooleanValueByInput = function (input) {\r\n return [true, undefined, null, ''].includes(input);\r\n };\r\n // Emit event in Vue directive\r\n var getEventEmiter = function (vnode) {\r\n var _a, _b;\r\n var handlers = ((_a = vnode.data) === null || _a === void 0 ? void 0 : _a.on) || ((_b = vnode.componentOptions) === null || _b === void 0 ? void 0 : _b.listeners);\r\n return function (name) {\n var arguments$1 = arguments;\n\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments$1[_i];\r\n }\r\n var _a;\r\n var handle = (_a = handlers) === null || _a === void 0 ? void 0 : _a[name];\r\n if (handle) {\r\n handle.fns.apply(handle, args);\r\n }\r\n };\r\n };\r\n return {\r\n // Init\r\n bind: function (element, binding, vnode) {\r\n // auto class name\r\n if (element.className.indexOf(DEFAULT_CLASSES.containerClass) === -1) {\r\n element.className += ((element.className ? ' ' : '') + DEFAULT_CLASSES.containerClass);\r\n }\r\n // bind click event\r\n element.addEventListener('click', function (event) {\r\n var emitEvent = getEventEmiter(vnode);\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n handleClickSlideEvent(swiper, event, emitEvent);\r\n });\r\n },\r\n // DOM inserted\r\n inserted: function (element, binding, vnode) {\r\n var context = vnode.context;\r\n var swiperOptions = getSwipeOptions(binding);\r\n var instanceName = getSwiperInstanceName(element, binding, vnode);\r\n var emitEvent = getEventEmiter(vnode);\r\n var vueContext = context;\r\n var swiper = vueContext === null || vueContext === void 0 ? void 0 : vueContext[instanceName];\r\n // Swiper will destroy but not delete instance, when used \r\n if (!swiper || swiper.destroyed) {\r\n swiper = new SwiperClass(element, swiperOptions);\r\n vueContext[instanceName] = swiper;\r\n bindSwiperEvents(swiper, emitEvent);\r\n emitEvent(ComponentEvents.Ready, swiper);\r\n // MARK: Reinstance when the nexttick with \r\n // Vue.nextTick(instancing) | setTimeout(instancing)\r\n }\r\n },\r\n // On options changed or DOM updated\r\n componentUpdated: function (element, binding, vnode) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\r\n var autoUpdate = getStandardisedOptionByAttrs(vnode, ComponentPropNames.AutoUpdate);\r\n if (getBooleanValueByInput(autoUpdate)) {\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n if (swiper) {\r\n var swiperOptions = getSwipeOptions(binding);\r\n var isLoop = swiperOptions.loop;\r\n if (isLoop) {\r\n (_b = (_a = swiper) === null || _a === void 0 ? void 0 : _a.loopDestroy) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n }\r\n (_c = swiper === null || swiper === void 0 ? void 0 : swiper.update) === null || _c === void 0 ? void 0 : _c.call(swiper);\r\n (_e = (_d = swiper.navigation) === null || _d === void 0 ? void 0 : _d.update) === null || _e === void 0 ? void 0 : _e.call(_d);\r\n (_g = (_f = swiper.pagination) === null || _f === void 0 ? void 0 : _f.render) === null || _g === void 0 ? void 0 : _g.call(_f);\r\n (_j = (_h = swiper.pagination) === null || _h === void 0 ? void 0 : _h.update) === null || _j === void 0 ? void 0 : _j.call(_h);\r\n if (isLoop) {\r\n (_l = (_k = swiper) === null || _k === void 0 ? void 0 : _k.loopCreate) === null || _l === void 0 ? void 0 : _l.call(_k);\r\n (_m = swiper === null || swiper === void 0 ? void 0 : swiper.update) === null || _m === void 0 ? void 0 : _m.call(swiper);\r\n }\r\n }\r\n }\r\n },\r\n // Destroy this directive\r\n unbind: function (element, binding, vnode) {\r\n var _a;\r\n var autoDestroy = getStandardisedOptionByAttrs(vnode, ComponentPropNames.AutoDestroy);\r\n if (getBooleanValueByInput(autoDestroy)) {\r\n var swiper = getSwiperInstance(element, binding, vnode);\r\n if (swiper && swiper.initialized) {\r\n (_a = swiper === null || swiper === void 0 ? void 0 : swiper.destroy) === null || _a === void 0 ? void 0 : _a.call(swiper, getBooleanValueByInput(getStandardisedOptionByAttrs(vnode, ComponentPropNames.DeleteInstanceOnDestroy)), getBooleanValueByInput(getStandardisedOptionByAttrs(vnode, ComponentPropNames.CleanupStylesOnDestroy)));\r\n }\r\n }\r\n }\r\n };\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module SwiperComponent\r\n * @author Surmon \r\n */\r\nvar SlotNames;\r\n(function (SlotNames) {\r\n SlotNames[\"ParallaxBg\"] = \"parallax-bg\";\r\n SlotNames[\"Pagination\"] = \"pagination\";\r\n SlotNames[\"Scrollbar\"] = \"scrollbar\";\r\n SlotNames[\"PrevButton\"] = \"button-prev\";\r\n SlotNames[\"NextButton\"] = \"button-next\";\r\n})(SlotNames || (SlotNames = {}));\r\nfunction getSwiperComponent(SwiperClass) {\r\n var _a;\r\n return Vue.extend({\r\n name: CoreNames.SwiperComponent,\r\n props: (_a = {\r\n defaultOptions: {\r\n type: Object,\r\n required: false,\r\n default: function () { return ({}); }\r\n },\r\n // eslint-disable-next-line vue/require-default-prop\r\n options: {\r\n type: Object,\r\n required: false\r\n }\r\n },\r\n _a[ComponentPropNames.AutoUpdate] = {\r\n type: Boolean,\r\n default: true\r\n },\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/550/files\r\n _a[ComponentPropNames.AutoDestroy] = {\r\n type: Boolean,\r\n default: true\r\n },\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/388\r\n _a[ComponentPropNames.DeleteInstanceOnDestroy] = {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n _a[ComponentPropNames.CleanupStylesOnDestroy] = {\r\n type: Boolean,\r\n required: false,\r\n default: true\r\n },\r\n _a),\r\n data: function () {\r\n var _a;\r\n return _a = {},\r\n _a[CoreNames.SwiperInstance] = null,\r\n _a;\r\n },\r\n computed: {\r\n swiperInstance: {\r\n cache: false,\r\n set: function (swiper) {\r\n this[CoreNames.SwiperInstance] = swiper;\r\n },\r\n get: function () {\r\n return this[CoreNames.SwiperInstance];\r\n }\r\n },\r\n swiperOptions: function () {\r\n return this.options || this.defaultOptions;\r\n },\r\n wrapperClass: function () {\r\n return this.swiperOptions.wrapperClass || DEFAULT_CLASSES.wrapperClass;\r\n }\r\n },\r\n methods: {\r\n // Feature: click event\r\n handleSwiperClick: function (event) {\r\n handleClickSlideEvent(this.swiperInstance, event, this.$emit.bind(this));\r\n },\r\n autoReLoopSwiper: function () {\r\n var _a, _b;\r\n if (this.swiperInstance && this.swiperOptions.loop) {\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/593\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/544\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/545/files\r\n var swiper = this.swiperInstance;\r\n (_a = swiper === null || swiper === void 0 ? void 0 : swiper.loopDestroy) === null || _a === void 0 ? void 0 : _a.call(swiper);\r\n (_b = swiper === null || swiper === void 0 ? void 0 : swiper.loopCreate) === null || _b === void 0 ? void 0 : _b.call(swiper);\r\n }\r\n },\r\n updateSwiper: function () {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n if (this[ComponentPropNames.AutoUpdate] && this.swiperInstance) {\r\n this.autoReLoopSwiper();\r\n (_b = (_a = this.swiperInstance) === null || _a === void 0 ? void 0 : _a.update) === null || _b === void 0 ? void 0 : _b.call(_a);\r\n (_d = (_c = this.swiperInstance.navigation) === null || _c === void 0 ? void 0 : _c.update) === null || _d === void 0 ? void 0 : _d.call(_c);\r\n (_f = (_e = this.swiperInstance.pagination) === null || _e === void 0 ? void 0 : _e.render) === null || _f === void 0 ? void 0 : _f.call(_e);\r\n (_h = (_g = this.swiperInstance.pagination) === null || _g === void 0 ? void 0 : _g.update) === null || _h === void 0 ? void 0 : _h.call(_g);\r\n }\r\n },\r\n destroySwiper: function () {\r\n var _a, _b;\r\n if (this[ComponentPropNames.AutoDestroy] && this.swiperInstance) {\r\n // https://github.com/surmon-china/vue-awesome-swiper/pull/341\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/340\r\n if (this.swiperInstance.initialized) {\r\n (_b = (_a = this.swiperInstance) === null || _a === void 0 ? void 0 : _a.destroy) === null || _b === void 0 ? void 0 : _b.call(_a, this[ComponentPropNames.DeleteInstanceOnDestroy], this[ComponentPropNames.CleanupStylesOnDestroy]);\r\n }\r\n }\r\n },\r\n initSwiper: function () {\r\n this.swiperInstance = new SwiperClass(this.$el, this.swiperOptions);\r\n bindSwiperEvents(this.swiperInstance, this.$emit.bind(this));\r\n this.$emit(ComponentEvents.Ready, this.swiperInstance);\r\n }\r\n },\r\n mounted: function () {\r\n if (!this.swiperInstance) {\r\n this.initSwiper();\r\n }\r\n },\r\n // Update swiper when the parent component activated with `keep-alive`.\r\n activated: function () {\r\n this.updateSwiper();\r\n },\r\n updated: function () {\r\n this.updateSwiper();\r\n },\r\n beforeDestroy: function () {\r\n // https://github.com/surmon-china/vue-awesome-swiper/commit/2924a9d4d3d1cf51c0d46076410b1f804b2b8a43#diff-7f4e0261ac562c0f354cb91a1ca8864f\r\n this.$nextTick(this.destroySwiper);\r\n },\r\n render: function (createElement) {\r\n return createElement('div', {\r\n staticClass: DEFAULT_CLASSES.containerClass,\r\n on: {\r\n click: this.handleSwiperClick\r\n }\r\n }, [\r\n this.$slots[SlotNames.ParallaxBg],\r\n createElement('div', {\r\n class: this.wrapperClass\r\n }, this.$slots.default),\r\n this.$slots[SlotNames.Pagination],\r\n this.$slots[SlotNames.PrevButton],\r\n this.$slots[SlotNames.NextButton],\r\n this.$slots[SlotNames.Scrollbar]\r\n ]);\r\n }\r\n });\r\n}/**\r\n * @file vue-awesome-swiper\r\n * @module SwiperSlideComponent\r\n * @author Surmon \r\n */\r\nvar SwiperSlideComponent = Vue.extend({\r\n name: CoreNames.SwiperSlideComponent,\r\n computed: {\r\n slideClass: function () {\r\n var _a, _b;\r\n return ((_b = (_a = this.$parent) === null || _a === void 0 ? void 0 : _a.swiperOptions) === null || _b === void 0 ? void 0 : _b.slideClass) || DEFAULT_CLASSES.slideClass;\r\n }\r\n },\r\n methods: {\r\n update: function () {\r\n var _a;\r\n var parent = this.$parent;\r\n // https://github.com/surmon-china/vue-awesome-swiper/issues/632\r\n if (parent[ComponentPropNames.AutoUpdate]) {\r\n (_a = parent === null || parent === void 0 ? void 0 : parent.swiperInstance) === null || _a === void 0 ? void 0 : _a.update();\r\n }\r\n }\r\n },\r\n mounted: function () {\r\n this.update();\r\n },\r\n updated: function () {\r\n this.update();\r\n },\r\n render: function (createElement) {\r\n return createElement('div', {\r\n class: this.slideClass\r\n }, this.$slots.default);\r\n }\r\n});/**\r\n * @file vue-awesome-swiper\r\n * @module exporter\r\n * @author Surmon \r\n */\r\nvar getInstaller = function (SwiperClass) {\r\n var install = function (Vue, globalOptions) {\r\n if (install.installed)\r\n { return; }\r\n var SwiperComponent = getSwiperComponent(SwiperClass);\r\n if (globalOptions) {\r\n SwiperComponent.options.props.defaultOptions.default = function () { return globalOptions; };\r\n }\r\n Vue.component(CoreNames.SwiperComponent, SwiperComponent);\r\n Vue.component(CoreNames.SwiperSlideComponent, SwiperSlideComponent);\r\n Vue.directive(CoreNames.SwiperDirective, getDirective(SwiperClass, globalOptions));\r\n install.installed = true;\r\n };\r\n return install;\r\n};\r\nfunction exporter(SwiperClass) {\r\n var _a;\r\n return _a = {\r\n version: '4.1.1',\r\n install: getInstaller(SwiperClass),\r\n directive: getDirective(SwiperClass)\r\n },\r\n _a[CoreNames.SwiperComponent] = getSwiperComponent(SwiperClass),\r\n _a[CoreNames.SwiperSlideComponent] = SwiperSlideComponent,\r\n _a;\r\n}return exporter;})));","/*!\n * Vue-Lazyload.js v1.3.3\n * (c) 2019 Awe \n * Released under the MIT License.\n */\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\n\n\n\n\n\n\n\n\n\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n/*!\n * is-primitive \n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\n// see http://jsperf.com/testing-value-is-primitive/7\n\nvar isPrimitive = function isPrimitive(value) {\n return value == null || typeof value !== 'function' && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object';\n};\n\n/*!\n * assign-symbols \n *\n * Copyright (c) 2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n\nvar assignSymbols = function assignSymbols(receiver, objects) {\n if (receiver === null || typeof receiver === 'undefined') {\n throw new TypeError('expected first argument to be an object.');\n }\n\n if (typeof objects === 'undefined' || typeof Symbol === 'undefined') {\n return receiver;\n }\n\n if (typeof Object.getOwnPropertySymbols !== 'function') {\n return receiver;\n }\n\n var isEnumerable = Object.prototype.propertyIsEnumerable;\n var target = Object(receiver);\n var len = arguments.length,\n i = 0;\n\n while (++i < len) {\n var provider = Object(arguments[i]);\n var names = Object.getOwnPropertySymbols(provider);\n\n for (var j = 0; j < names.length; j++) {\n var key = names[j];\n\n if (isEnumerable.call(provider, key)) {\n target[key] = provider[key];\n }\n }\n }\n return target;\n};\n\nvar toString = Object.prototype.toString;\n\n/**\n * Get the native `typeof` a value.\n *\n * @param {*} `val`\n * @return {*} Native javascript type\n */\n\nvar kindOf = function kindOf(val) {\n var type = typeof val === 'undefined' ? 'undefined' : _typeof(val);\n\n // primitivies\n if (type === 'undefined') {\n return 'undefined';\n }\n if (val === null) {\n return 'null';\n }\n if (val === true || val === false || val instanceof Boolean) {\n return 'boolean';\n }\n if (type === 'string' || val instanceof String) {\n return 'string';\n }\n if (type === 'number' || val instanceof Number) {\n return 'number';\n }\n\n // functions\n if (type === 'function' || val instanceof Function) {\n if (typeof val.constructor.name !== 'undefined' && val.constructor.name.slice(0, 9) === 'Generator') {\n return 'generatorfunction';\n }\n return 'function';\n }\n\n // array\n if (typeof Array.isArray !== 'undefined' && Array.isArray(val)) {\n return 'array';\n }\n\n // check for instances of RegExp and Date before calling `toString`\n if (val instanceof RegExp) {\n return 'regexp';\n }\n if (val instanceof Date) {\n return 'date';\n }\n\n // other objects\n type = toString.call(val);\n\n if (type === '[object RegExp]') {\n return 'regexp';\n }\n if (type === '[object Date]') {\n return 'date';\n }\n if (type === '[object Arguments]') {\n return 'arguments';\n }\n if (type === '[object Error]') {\n return 'error';\n }\n if (type === '[object Promise]') {\n return 'promise';\n }\n\n // buffer\n if (isBuffer(val)) {\n return 'buffer';\n }\n\n // es6: Map, WeakMap, Set, WeakSet\n if (type === '[object Set]') {\n return 'set';\n }\n if (type === '[object WeakSet]') {\n return 'weakset';\n }\n if (type === '[object Map]') {\n return 'map';\n }\n if (type === '[object WeakMap]') {\n return 'weakmap';\n }\n if (type === '[object Symbol]') {\n return 'symbol';\n }\n\n if (type === '[object Map Iterator]') {\n return 'mapiterator';\n }\n if (type === '[object Set Iterator]') {\n return 'setiterator';\n }\n if (type === '[object String Iterator]') {\n return 'stringiterator';\n }\n if (type === '[object Array Iterator]') {\n return 'arrayiterator';\n }\n\n // typed arrays\n if (type === '[object Int8Array]') {\n return 'int8array';\n }\n if (type === '[object Uint8Array]') {\n return 'uint8array';\n }\n if (type === '[object Uint8ClampedArray]') {\n return 'uint8clampedarray';\n }\n if (type === '[object Int16Array]') {\n return 'int16array';\n }\n if (type === '[object Uint16Array]') {\n return 'uint16array';\n }\n if (type === '[object Int32Array]') {\n return 'int32array';\n }\n if (type === '[object Uint32Array]') {\n return 'uint32array';\n }\n if (type === '[object Float32Array]') {\n return 'float32array';\n }\n if (type === '[object Float64Array]') {\n return 'float64array';\n }\n\n // must be a plain object\n return 'object';\n};\n\n/**\n * If you need to support Safari 5-7 (8-10 yr-old browser),\n * take a look at https://github.com/feross/is-buffer\n */\n\nfunction isBuffer(val) {\n return val.constructor && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\nfunction assign(target /*, objects*/) {\n target = target || {};\n var len = arguments.length,\n i = 0;\n if (len === 1) {\n return target;\n }\n while (++i < len) {\n var val = arguments[i];\n if (isPrimitive(target)) {\n target = val;\n }\n if (isObject$1(val)) {\n extend(target, val);\n }\n }\n return target;\n}\n\n/**\n * Shallow extend\n */\n\nfunction extend(target, obj) {\n assignSymbols(target, obj);\n\n for (var key in obj) {\n if (key !== '__proto__' && hasOwn(obj, key)) {\n var val = obj[key];\n if (isObject$1(val)) {\n if (kindOf(target[key]) === 'undefined' && kindOf(val) === 'function') {\n target[key] = val;\n }\n target[key] = assign(target[key] || {}, val);\n } else {\n target[key] = val;\n }\n }\n }\n return target;\n}\n\n/**\n * Returns true if the object is a plain object or a function.\n */\n\nfunction isObject$1(obj) {\n return kindOf(obj) === 'object' || kindOf(obj) === 'function';\n}\n\n/**\n * Returns true if the given `key` is an own property of `obj`.\n */\n\nfunction hasOwn(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\n/**\n * Expose `assign`\n */\n\nvar assignDeep = assign;\n\nvar inBrowser = typeof window !== 'undefined';\nvar hasIntersectionObserver = checkIntersectionObserver();\n\nfunction checkIntersectionObserver() {\n if (inBrowser && 'IntersectionObserver' in window && 'IntersectionObserverEntry' in window && 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype, 'isIntersecting', {\n get: function get$$1() {\n return this.intersectionRatio > 0;\n }\n });\n }\n return true;\n }\n return false;\n}\n\nvar modeType = {\n event: 'event',\n observer: 'observer'\n\n // CustomEvent polyfill\n};var CustomEvent = function () {\n if (!inBrowser) return;\n if (typeof window.CustomEvent === 'function') return window.CustomEvent;\n function CustomEvent(event, params) {\n params = params || { bubbles: false, cancelable: false, detail: undefined };\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n }\n CustomEvent.prototype = window.Event.prototype;\n return CustomEvent;\n}();\n\nfunction remove(arr, item) {\n if (!arr.length) return;\n var index = arr.indexOf(item);\n if (index > -1) return arr.splice(index, 1);\n}\n\nfunction some(arr, fn) {\n var has = false;\n for (var i = 0, len = arr.length; i < len; i++) {\n if (fn(arr[i])) {\n has = true;\n break;\n }\n }\n return has;\n}\n\nfunction getBestSelectionFromSrcset(el, scale) {\n if (el.tagName !== 'IMG' || !el.getAttribute('data-srcset')) return;\n\n var options = el.getAttribute('data-srcset');\n var result = [];\n var container = el.parentNode;\n var containerWidth = container.offsetWidth * scale;\n\n var spaceIndex = void 0;\n var tmpSrc = void 0;\n var tmpWidth = void 0;\n\n options = options.trim().split(',');\n\n options.map(function (item) {\n item = item.trim();\n spaceIndex = item.lastIndexOf(' ');\n if (spaceIndex === -1) {\n tmpSrc = item;\n tmpWidth = 999998;\n } else {\n tmpSrc = item.substr(0, spaceIndex);\n tmpWidth = parseInt(item.substr(spaceIndex + 1, item.length - spaceIndex - 2), 10);\n }\n result.push([tmpWidth, tmpSrc]);\n });\n\n result.sort(function (a, b) {\n if (a[0] < b[0]) {\n return 1;\n }\n if (a[0] > b[0]) {\n return -1;\n }\n if (a[0] === b[0]) {\n if (b[1].indexOf('.webp', b[1].length - 5) !== -1) {\n return 1;\n }\n if (a[1].indexOf('.webp', a[1].length - 5) !== -1) {\n return -1;\n }\n }\n return 0;\n });\n var bestSelectedSrc = '';\n var tmpOption = void 0;\n\n for (var i = 0; i < result.length; i++) {\n tmpOption = result[i];\n bestSelectedSrc = tmpOption[1];\n var next = result[i + 1];\n if (next && next[0] < containerWidth) {\n bestSelectedSrc = tmpOption[1];\n break;\n } else if (!next) {\n bestSelectedSrc = tmpOption[1];\n break;\n }\n }\n\n return bestSelectedSrc;\n}\n\nfunction find(arr, fn) {\n var item = void 0;\n for (var i = 0, len = arr.length; i < len; i++) {\n if (fn(arr[i])) {\n item = arr[i];\n break;\n }\n }\n return item;\n}\n\nvar getDPR = function getDPR() {\n var scale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;\n return inBrowser ? window.devicePixelRatio || scale : scale;\n};\n\nfunction supportWebp() {\n if (!inBrowser) return false;\n\n var support = true;\n var d = document;\n\n try {\n var el = d.createElement('object');\n el.type = 'image/webp';\n el.style.visibility = 'hidden';\n el.innerHTML = '!';\n d.body.appendChild(el);\n support = !el.offsetWidth;\n d.body.removeChild(el);\n } catch (err) {\n support = false;\n }\n\n return support;\n}\n\nfunction throttle(action, delay) {\n var timeout = null;\n var lastRun = 0;\n return function () {\n if (timeout) {\n return;\n }\n var elapsed = Date.now() - lastRun;\n var context = this;\n var args = arguments;\n var runCallback = function runCallback() {\n lastRun = Date.now();\n timeout = false;\n action.apply(context, args);\n };\n if (elapsed >= delay) {\n runCallback();\n } else {\n timeout = setTimeout(runCallback, delay);\n }\n };\n}\n\nfunction testSupportsPassive() {\n if (!inBrowser) return;\n var support = false;\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get$$1() {\n support = true;\n }\n });\n window.addEventListener('test', null, opts);\n } catch (e) {}\n return support;\n}\n\nvar supportsPassive = testSupportsPassive();\n\nvar _ = {\n on: function on(el, type, func) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (supportsPassive) {\n el.addEventListener(type, func, {\n capture: capture,\n passive: true\n });\n } else {\n el.addEventListener(type, func, capture);\n }\n },\n off: function off(el, type, func) {\n var capture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n el.removeEventListener(type, func, capture);\n }\n};\n\nvar loadImageAsync = function loadImageAsync(item, resolve, reject) {\n var image = new Image();\n if (!item || !item.src) {\n var err = new Error('image src is required');\n return reject(err);\n }\n\n image.src = item.src;\n\n image.onload = function () {\n resolve({\n naturalHeight: image.naturalHeight,\n naturalWidth: image.naturalWidth,\n src: image.src\n });\n };\n\n image.onerror = function (e) {\n reject(e);\n };\n};\n\nvar style = function style(el, prop) {\n return typeof getComputedStyle !== 'undefined' ? getComputedStyle(el, null).getPropertyValue(prop) : el.style[prop];\n};\n\nvar overflow = function overflow(el) {\n return style(el, 'overflow') + style(el, 'overflow-y') + style(el, 'overflow-x');\n};\n\nvar scrollParent = function scrollParent(el) {\n if (!inBrowser) return;\n if (!(el instanceof HTMLElement)) {\n return window;\n }\n\n var parent = el;\n\n while (parent) {\n if (parent === document.body || parent === document.documentElement) {\n break;\n }\n\n if (!parent.parentNode) {\n break;\n }\n\n if (/(scroll|auto)/.test(overflow(parent))) {\n return parent;\n }\n\n parent = parent.parentNode;\n }\n\n return window;\n};\n\nfunction isObject(obj) {\n return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';\n}\n\nfunction ObjectKeys(obj) {\n if (!(obj instanceof Object)) return [];\n if (Object.keys) {\n return Object.keys(obj);\n } else {\n var keys = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n return keys;\n }\n}\n\nfunction ArrayFrom(arrLike) {\n var len = arrLike.length;\n var list = [];\n for (var i = 0; i < len; i++) {\n list.push(arrLike[i]);\n }\n return list;\n}\n\nfunction noop() {}\n\nvar ImageCache = function () {\n function ImageCache(_ref) {\n var max = _ref.max;\n classCallCheck(this, ImageCache);\n\n this.options = {\n max: max || 100\n };\n this._caches = [];\n }\n\n createClass(ImageCache, [{\n key: 'has',\n value: function has(key) {\n return this._caches.indexOf(key) > -1;\n }\n }, {\n key: 'add',\n value: function add(key) {\n if (this.has(key)) return;\n this._caches.push(key);\n if (this._caches.length > this.options.max) {\n this.free();\n }\n }\n }, {\n key: 'free',\n value: function free() {\n this._caches.shift();\n }\n }]);\n return ImageCache;\n}();\n\n// el: {\n// state,\n// src,\n// error,\n// loading\n// }\n\nvar ReactiveListener = function () {\n function ReactiveListener(_ref) {\n var el = _ref.el,\n src = _ref.src,\n error = _ref.error,\n loading = _ref.loading,\n bindType = _ref.bindType,\n $parent = _ref.$parent,\n options = _ref.options,\n elRenderer = _ref.elRenderer,\n imageCache = _ref.imageCache;\n classCallCheck(this, ReactiveListener);\n\n this.el = el;\n this.src = src;\n this.error = error;\n this.loading = loading;\n this.bindType = bindType;\n this.attempt = 0;\n\n this.naturalHeight = 0;\n this.naturalWidth = 0;\n\n this.options = options;\n\n this.rect = null;\n\n this.$parent = $parent;\n this.elRenderer = elRenderer;\n this._imageCache = imageCache;\n this.performanceData = {\n init: Date.now(),\n loadStart: 0,\n loadEnd: 0\n };\n\n this.filter();\n this.initState();\n this.render('loading', false);\n }\n\n /*\n * init listener state\n * @return\n */\n\n\n createClass(ReactiveListener, [{\n key: 'initState',\n value: function initState() {\n if ('dataset' in this.el) {\n this.el.dataset.src = this.src;\n } else {\n this.el.setAttribute('data-src', this.src);\n }\n\n this.state = {\n loading: false,\n error: false,\n loaded: false,\n rendered: false\n };\n }\n\n /*\n * record performance\n * @return\n */\n\n }, {\n key: 'record',\n value: function record(event) {\n this.performanceData[event] = Date.now();\n }\n\n /*\n * update image listener data\n * @param {String} image uri\n * @param {String} loading image uri\n * @param {String} error image uri\n * @return\n */\n\n }, {\n key: 'update',\n value: function update(_ref2) {\n var src = _ref2.src,\n loading = _ref2.loading,\n error = _ref2.error;\n\n var oldSrc = this.src;\n this.src = src;\n this.loading = loading;\n this.error = error;\n this.filter();\n if (oldSrc !== this.src) {\n this.attempt = 0;\n this.initState();\n }\n }\n\n /*\n * get el node rect\n * @return\n */\n\n }, {\n key: 'getRect',\n value: function getRect() {\n this.rect = this.el.getBoundingClientRect();\n }\n\n /*\n * check el is in view\n * @return {Boolean} el is in view\n */\n\n }, {\n key: 'checkInView',\n value: function checkInView() {\n this.getRect();\n return this.rect.top < window.innerHeight * this.options.preLoad && this.rect.bottom > this.options.preLoadTop && this.rect.left < window.innerWidth * this.options.preLoad && this.rect.right > 0;\n }\n\n /*\n * listener filter\n */\n\n }, {\n key: 'filter',\n value: function filter() {\n var _this = this;\n\n ObjectKeys(this.options.filter).map(function (key) {\n _this.options.filter[key](_this, _this.options);\n });\n }\n\n /*\n * render loading first\n * @params cb:Function\n * @return\n */\n\n }, {\n key: 'renderLoading',\n value: function renderLoading(cb) {\n var _this2 = this;\n\n this.state.loading = true;\n loadImageAsync({\n src: this.loading\n }, function (data) {\n _this2.render('loading', false);\n _this2.state.loading = false;\n cb();\n }, function () {\n // handler `loading image` load failed\n cb();\n _this2.state.loading = false;\n if (!_this2.options.silent) console.warn('VueLazyload log: load failed with loading image(' + _this2.loading + ')');\n });\n }\n\n /*\n * try load image and render it\n * @return\n */\n\n }, {\n key: 'load',\n value: function load() {\n var _this3 = this;\n\n var onFinish = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (this.attempt > this.options.attempt - 1 && this.state.error) {\n if (!this.options.silent) console.log('VueLazyload log: ' + this.src + ' tried too more than ' + this.options.attempt + ' times');\n onFinish();\n return;\n }\n if (this.state.rendered && this.state.loaded) return;\n if (this._imageCache.has(this.src)) {\n this.state.loaded = true;\n this.render('loaded', true);\n this.state.rendered = true;\n return onFinish();\n }\n\n this.renderLoading(function () {\n _this3.attempt++;\n\n _this3.options.adapter['beforeLoad'] && _this3.options.adapter['beforeLoad'](_this3, _this3.options);\n _this3.record('loadStart');\n\n loadImageAsync({\n src: _this3.src\n }, function (data) {\n _this3.naturalHeight = data.naturalHeight;\n _this3.naturalWidth = data.naturalWidth;\n _this3.state.loaded = true;\n _this3.state.error = false;\n _this3.record('loadEnd');\n _this3.render('loaded', false);\n _this3.state.rendered = true;\n _this3._imageCache.add(_this3.src);\n onFinish();\n }, function (err) {\n !_this3.options.silent && console.error(err);\n _this3.state.error = true;\n _this3.state.loaded = false;\n _this3.render('error', false);\n });\n });\n }\n\n /*\n * render image\n * @param {String} state to render // ['loading', 'src', 'error']\n * @param {String} is form cache\n * @return\n */\n\n }, {\n key: 'render',\n value: function render(state, cache) {\n this.elRenderer(this, state, cache);\n }\n\n /*\n * output performance data\n * @return {Object} performance data\n */\n\n }, {\n key: 'performance',\n value: function performance() {\n var state = 'loading';\n var time = 0;\n\n if (this.state.loaded) {\n state = 'loaded';\n time = (this.performanceData.loadEnd - this.performanceData.loadStart) / 1000;\n }\n\n if (this.state.error) state = 'error';\n\n return {\n src: this.src,\n state: state,\n time: time\n };\n }\n\n /*\n * $destroy\n * @return\n */\n\n }, {\n key: '$destroy',\n value: function $destroy() {\n this.el = null;\n this.src = null;\n this.error = null;\n this.loading = null;\n this.bindType = null;\n this.attempt = 0;\n }\n }]);\n return ReactiveListener;\n}();\n\nvar DEFAULT_URL = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\nvar DEFAULT_EVENTS = ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'];\nvar DEFAULT_OBSERVER_OPTIONS = {\n rootMargin: '0px',\n threshold: 0\n};\n\nvar Lazy = function (Vue) {\n return function () {\n function Lazy(_ref) {\n var preLoad = _ref.preLoad,\n error = _ref.error,\n throttleWait = _ref.throttleWait,\n preLoadTop = _ref.preLoadTop,\n dispatchEvent = _ref.dispatchEvent,\n loading = _ref.loading,\n attempt = _ref.attempt,\n _ref$silent = _ref.silent,\n silent = _ref$silent === undefined ? true : _ref$silent,\n scale = _ref.scale,\n listenEvents = _ref.listenEvents,\n hasbind = _ref.hasbind,\n filter = _ref.filter,\n adapter = _ref.adapter,\n observer = _ref.observer,\n observerOptions = _ref.observerOptions;\n classCallCheck(this, Lazy);\n\n this.version = '1.3.3';\n this.mode = modeType.event;\n this.ListenerQueue = [];\n this.TargetIndex = 0;\n this.TargetQueue = [];\n this.options = {\n silent: silent,\n dispatchEvent: !!dispatchEvent,\n throttleWait: throttleWait || 200,\n preLoad: preLoad || 1.3,\n preLoadTop: preLoadTop || 0,\n error: error || DEFAULT_URL,\n loading: loading || DEFAULT_URL,\n attempt: attempt || 3,\n scale: scale || getDPR(scale),\n ListenEvents: listenEvents || DEFAULT_EVENTS,\n hasbind: false,\n supportWebp: supportWebp(),\n filter: filter || {},\n adapter: adapter || {},\n observer: !!observer,\n observerOptions: observerOptions || DEFAULT_OBSERVER_OPTIONS\n };\n this._initEvent();\n this._imageCache = new ImageCache({ max: 200 });\n this.lazyLoadHandler = throttle(this._lazyLoadHandler.bind(this), this.options.throttleWait);\n\n this.setMode(this.options.observer ? modeType.observer : modeType.event);\n }\n\n /**\n * update config\n * @param {Object} config params\n * @return\n */\n\n\n createClass(Lazy, [{\n key: 'config',\n value: function config() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n assignDeep(this.options, options);\n }\n\n /**\n * output listener's load performance\n * @return {Array}\n */\n\n }, {\n key: 'performance',\n value: function performance() {\n var list = [];\n\n this.ListenerQueue.map(function (item) {\n list.push(item.performance());\n });\n\n return list;\n }\n\n /*\n * add lazy component to queue\n * @param {Vue} vm lazy component instance\n * @return\n */\n\n }, {\n key: 'addLazyBox',\n value: function addLazyBox(vm) {\n this.ListenerQueue.push(vm);\n if (inBrowser) {\n this._addListenerTarget(window);\n this._observer && this._observer.observe(vm.el);\n if (vm.$el && vm.$el.parentNode) {\n this._addListenerTarget(vm.$el.parentNode);\n }\n }\n }\n\n /*\n * add image listener to queue\n * @param {DOM} el\n * @param {object} binding vue directive binding\n * @param {vnode} vnode vue directive vnode\n * @return\n */\n\n }, {\n key: 'add',\n value: function add(el, binding, vnode) {\n var _this = this;\n\n if (some(this.ListenerQueue, function (item) {\n return item.el === el;\n })) {\n this.update(el, binding);\n return Vue.nextTick(this.lazyLoadHandler);\n }\n\n var _valueFormatter2 = this._valueFormatter(binding.value),\n src = _valueFormatter2.src,\n loading = _valueFormatter2.loading,\n error = _valueFormatter2.error;\n\n Vue.nextTick(function () {\n src = getBestSelectionFromSrcset(el, _this.options.scale) || src;\n _this._observer && _this._observer.observe(el);\n\n var container = Object.keys(binding.modifiers)[0];\n var $parent = void 0;\n\n if (container) {\n $parent = vnode.context.$refs[container];\n // if there is container passed in, try ref first, then fallback to getElementById to support the original usage\n $parent = $parent ? $parent.$el || $parent : document.getElementById(container);\n }\n\n if (!$parent) {\n $parent = scrollParent(el);\n }\n\n var newListener = new ReactiveListener({\n bindType: binding.arg,\n $parent: $parent,\n el: el,\n loading: loading,\n error: error,\n src: src,\n elRenderer: _this._elRenderer.bind(_this),\n options: _this.options,\n imageCache: _this._imageCache\n });\n\n _this.ListenerQueue.push(newListener);\n\n if (inBrowser) {\n _this._addListenerTarget(window);\n _this._addListenerTarget($parent);\n }\n\n _this.lazyLoadHandler();\n Vue.nextTick(function () {\n return _this.lazyLoadHandler();\n });\n });\n }\n\n /**\n * update image src\n * @param {DOM} el\n * @param {object} vue directive binding\n * @return\n */\n\n }, {\n key: 'update',\n value: function update(el, binding, vnode) {\n var _this2 = this;\n\n var _valueFormatter3 = this._valueFormatter(binding.value),\n src = _valueFormatter3.src,\n loading = _valueFormatter3.loading,\n error = _valueFormatter3.error;\n\n src = getBestSelectionFromSrcset(el, this.options.scale) || src;\n\n var exist = find(this.ListenerQueue, function (item) {\n return item.el === el;\n });\n if (!exist) {\n this.add(el, binding, vnode);\n } else {\n exist.update({\n src: src,\n loading: loading,\n error: error\n });\n }\n if (this._observer) {\n this._observer.unobserve(el);\n this._observer.observe(el);\n }\n this.lazyLoadHandler();\n Vue.nextTick(function () {\n return _this2.lazyLoadHandler();\n });\n }\n\n /**\n * remove listener form list\n * @param {DOM} el\n * @return\n */\n\n }, {\n key: 'remove',\n value: function remove$$1(el) {\n if (!el) return;\n this._observer && this._observer.unobserve(el);\n var existItem = find(this.ListenerQueue, function (item) {\n return item.el === el;\n });\n if (existItem) {\n this._removeListenerTarget(existItem.$parent);\n this._removeListenerTarget(window);\n remove(this.ListenerQueue, existItem);\n existItem.$destroy();\n }\n }\n\n /*\n * remove lazy components form list\n * @param {Vue} vm Vue instance\n * @return\n */\n\n }, {\n key: 'removeComponent',\n value: function removeComponent(vm) {\n if (!vm) return;\n remove(this.ListenerQueue, vm);\n this._observer && this._observer.unobserve(vm.el);\n if (vm.$parent && vm.$el.parentNode) {\n this._removeListenerTarget(vm.$el.parentNode);\n }\n this._removeListenerTarget(window);\n }\n }, {\n key: 'setMode',\n value: function setMode(mode) {\n var _this3 = this;\n\n if (!hasIntersectionObserver && mode === modeType.observer) {\n mode = modeType.event;\n }\n\n this.mode = mode; // event or observer\n\n if (mode === modeType.event) {\n if (this._observer) {\n this.ListenerQueue.forEach(function (listener) {\n _this3._observer.unobserve(listener.el);\n });\n this._observer = null;\n }\n\n this.TargetQueue.forEach(function (target) {\n _this3._initListen(target.el, true);\n });\n } else {\n this.TargetQueue.forEach(function (target) {\n _this3._initListen(target.el, false);\n });\n this._initIntersectionObserver();\n }\n }\n\n /*\n *** Private functions ***\n */\n\n /*\n * add listener target\n * @param {DOM} el listener target\n * @return\n */\n\n }, {\n key: '_addListenerTarget',\n value: function _addListenerTarget(el) {\n if (!el) return;\n var target = find(this.TargetQueue, function (target) {\n return target.el === el;\n });\n if (!target) {\n target = {\n el: el,\n id: ++this.TargetIndex,\n childrenCount: 1,\n listened: true\n };\n this.mode === modeType.event && this._initListen(target.el, true);\n this.TargetQueue.push(target);\n } else {\n target.childrenCount++;\n }\n return this.TargetIndex;\n }\n\n /*\n * remove listener target or reduce target childrenCount\n * @param {DOM} el or window\n * @return\n */\n\n }, {\n key: '_removeListenerTarget',\n value: function _removeListenerTarget(el) {\n var _this4 = this;\n\n this.TargetQueue.forEach(function (target, index) {\n if (target.el === el) {\n target.childrenCount--;\n if (!target.childrenCount) {\n _this4._initListen(target.el, false);\n _this4.TargetQueue.splice(index, 1);\n target = null;\n }\n }\n });\n }\n\n /*\n * add or remove eventlistener\n * @param {DOM} el DOM or Window\n * @param {boolean} start flag\n * @return\n */\n\n }, {\n key: '_initListen',\n value: function _initListen(el, start) {\n var _this5 = this;\n\n this.options.ListenEvents.forEach(function (evt) {\n return _[start ? 'on' : 'off'](el, evt, _this5.lazyLoadHandler);\n });\n }\n }, {\n key: '_initEvent',\n value: function _initEvent() {\n var _this6 = this;\n\n this.Event = {\n listeners: {\n loading: [],\n loaded: [],\n error: []\n }\n };\n\n this.$on = function (event, func) {\n if (!_this6.Event.listeners[event]) _this6.Event.listeners[event] = [];\n _this6.Event.listeners[event].push(func);\n };\n\n this.$once = function (event, func) {\n var vm = _this6;\n function on() {\n vm.$off(event, on);\n func.apply(vm, arguments);\n }\n _this6.$on(event, on);\n };\n\n this.$off = function (event, func) {\n if (!func) {\n if (!_this6.Event.listeners[event]) return;\n _this6.Event.listeners[event].length = 0;\n return;\n }\n remove(_this6.Event.listeners[event], func);\n };\n\n this.$emit = function (event, context, inCache) {\n if (!_this6.Event.listeners[event]) return;\n _this6.Event.listeners[event].forEach(function (func) {\n return func(context, inCache);\n });\n };\n }\n\n /**\n * find nodes which in viewport and trigger load\n * @return\n */\n\n }, {\n key: '_lazyLoadHandler',\n value: function _lazyLoadHandler() {\n var _this7 = this;\n\n var freeList = [];\n this.ListenerQueue.forEach(function (listener, index) {\n if (!listener.el || !listener.el.parentNode) {\n freeList.push(listener);\n }\n var catIn = listener.checkInView();\n if (!catIn) return;\n listener.load();\n });\n freeList.forEach(function (item) {\n remove(_this7.ListenerQueue, item);\n item.$destroy();\n });\n }\n /**\n * init IntersectionObserver\n * set mode to observer\n * @return\n */\n\n }, {\n key: '_initIntersectionObserver',\n value: function _initIntersectionObserver() {\n var _this8 = this;\n\n if (!hasIntersectionObserver) return;\n this._observer = new IntersectionObserver(this._observerHandler.bind(this), this.options.observerOptions);\n if (this.ListenerQueue.length) {\n this.ListenerQueue.forEach(function (listener) {\n _this8._observer.observe(listener.el);\n });\n }\n }\n\n /**\n * init IntersectionObserver\n * @return\n */\n\n }, {\n key: '_observerHandler',\n value: function _observerHandler(entries, observer) {\n var _this9 = this;\n\n entries.forEach(function (entry) {\n if (entry.isIntersecting) {\n _this9.ListenerQueue.forEach(function (listener) {\n if (listener.el === entry.target) {\n if (listener.state.loaded) return _this9._observer.unobserve(listener.el);\n listener.load();\n }\n });\n }\n });\n }\n\n /**\n * set element attribute with image'url and state\n * @param {object} lazyload listener object\n * @param {string} state will be rendered\n * @param {bool} inCache is rendered from cache\n * @return\n */\n\n }, {\n key: '_elRenderer',\n value: function _elRenderer(listener, state, cache) {\n if (!listener.el) return;\n var el = listener.el,\n bindType = listener.bindType;\n\n\n var src = void 0;\n switch (state) {\n case 'loading':\n src = listener.loading;\n break;\n case 'error':\n src = listener.error;\n break;\n default:\n src = listener.src;\n break;\n }\n\n if (bindType) {\n el.style[bindType] = 'url(\"' + src + '\")';\n } else if (el.getAttribute('src') !== src) {\n el.setAttribute('src', src);\n }\n\n el.setAttribute('lazy', state);\n\n this.$emit(state, listener, cache);\n this.options.adapter[state] && this.options.adapter[state](listener, this.options);\n\n if (this.options.dispatchEvent) {\n var event = new CustomEvent(state, {\n detail: listener\n });\n el.dispatchEvent(event);\n }\n }\n\n /**\n * generate loading loaded error image url\n * @param {string} image's src\n * @return {object} image's loading, loaded, error url\n */\n\n }, {\n key: '_valueFormatter',\n value: function _valueFormatter(value) {\n var src = value;\n var loading = this.options.loading;\n var error = this.options.error;\n\n // value is object\n if (isObject(value)) {\n if (!value.src && !this.options.silent) console.error('Vue Lazyload warning: miss src with ' + value);\n src = value.src;\n loading = value.loading || this.options.loading;\n error = value.error || this.options.error;\n }\n return {\n src: src,\n loading: loading,\n error: error\n };\n }\n }]);\n return Lazy;\n }();\n};\n\nvar LazyComponent = (function (lazy) {\n return {\n props: {\n tag: {\n type: String,\n default: 'div'\n }\n },\n render: function render(h) {\n if (this.show === false) {\n return h(this.tag);\n }\n return h(this.tag, null, this.$slots.default);\n },\n data: function data() {\n return {\n el: null,\n state: {\n loaded: false\n },\n rect: {},\n show: false\n };\n },\n mounted: function mounted() {\n this.el = this.$el;\n lazy.addLazyBox(this);\n lazy.lazyLoadHandler();\n },\n beforeDestroy: function beforeDestroy() {\n lazy.removeComponent(this);\n },\n\n methods: {\n getRect: function getRect() {\n this.rect = this.$el.getBoundingClientRect();\n },\n checkInView: function checkInView() {\n this.getRect();\n return inBrowser && this.rect.top < window.innerHeight * lazy.options.preLoad && this.rect.bottom > 0 && this.rect.left < window.innerWidth * lazy.options.preLoad && this.rect.right > 0;\n },\n load: function load() {\n this.show = true;\n this.state.loaded = true;\n this.$emit('show', this);\n },\n destroy: function destroy() {\n return this.$destroy;\n }\n }\n };\n});\n\nvar LazyContainerMananger = function () {\n function LazyContainerMananger(_ref) {\n var lazy = _ref.lazy;\n classCallCheck(this, LazyContainerMananger);\n\n this.lazy = lazy;\n lazy.lazyContainerMananger = this;\n this._queue = [];\n }\n\n createClass(LazyContainerMananger, [{\n key: 'bind',\n value: function bind(el, binding, vnode) {\n var container = new LazyContainer$1({ el: el, binding: binding, vnode: vnode, lazy: this.lazy });\n this._queue.push(container);\n }\n }, {\n key: 'update',\n value: function update(el, binding, vnode) {\n var container = find(this._queue, function (item) {\n return item.el === el;\n });\n if (!container) return;\n container.update({ el: el, binding: binding, vnode: vnode });\n }\n }, {\n key: 'unbind',\n value: function unbind(el, binding, vnode) {\n var container = find(this._queue, function (item) {\n return item.el === el;\n });\n if (!container) return;\n container.clear();\n remove(this._queue, container);\n }\n }]);\n return LazyContainerMananger;\n}();\n\nvar defaultOptions = {\n selector: 'img'\n};\n\nvar LazyContainer$1 = function () {\n function LazyContainer(_ref2) {\n var el = _ref2.el,\n binding = _ref2.binding,\n vnode = _ref2.vnode,\n lazy = _ref2.lazy;\n classCallCheck(this, LazyContainer);\n\n this.el = null;\n this.vnode = vnode;\n this.binding = binding;\n this.options = {};\n this.lazy = lazy;\n\n this._queue = [];\n this.update({ el: el, binding: binding });\n }\n\n createClass(LazyContainer, [{\n key: 'update',\n value: function update(_ref3) {\n var _this = this;\n\n var el = _ref3.el,\n binding = _ref3.binding;\n\n this.el = el;\n this.options = assignDeep({}, defaultOptions, binding.value);\n\n var imgs = this.getImgs();\n imgs.forEach(function (el) {\n _this.lazy.add(el, assignDeep({}, _this.binding, {\n value: {\n src: 'dataset' in el ? el.dataset.src : el.getAttribute('data-src'),\n error: ('dataset' in el ? el.dataset.error : el.getAttribute('data-error')) || _this.options.error,\n loading: ('dataset' in el ? el.dataset.loading : el.getAttribute('data-loading')) || _this.options.loading\n }\n }), _this.vnode);\n });\n }\n }, {\n key: 'getImgs',\n value: function getImgs() {\n return ArrayFrom(this.el.querySelectorAll(this.options.selector));\n }\n }, {\n key: 'clear',\n value: function clear() {\n var _this2 = this;\n\n var imgs = this.getImgs();\n imgs.forEach(function (el) {\n return _this2.lazy.remove(el);\n });\n\n this.vnode = null;\n this.binding = null;\n this.lazy = null;\n }\n }]);\n return LazyContainer;\n}();\n\nvar LazyImage = (function (lazyManager) {\n return {\n props: {\n src: [String, Object],\n tag: {\n type: String,\n default: 'img'\n }\n },\n render: function render(h) {\n return h(this.tag, {\n attrs: {\n src: this.renderSrc\n }\n }, this.$slots.default);\n },\n data: function data() {\n return {\n el: null,\n options: {\n src: '',\n error: '',\n loading: '',\n attempt: lazyManager.options.attempt\n },\n state: {\n loaded: false,\n error: false,\n attempt: 0\n },\n rect: {},\n renderSrc: ''\n };\n },\n\n watch: {\n src: function src() {\n this.init();\n lazyManager.addLazyBox(this);\n lazyManager.lazyLoadHandler();\n }\n },\n created: function created() {\n this.init();\n this.renderSrc = this.options.loading;\n },\n mounted: function mounted() {\n this.el = this.$el;\n lazyManager.addLazyBox(this);\n lazyManager.lazyLoadHandler();\n },\n beforeDestroy: function beforeDestroy() {\n lazyManager.removeComponent(this);\n },\n\n methods: {\n init: function init() {\n var _lazyManager$_valueFo = lazyManager._valueFormatter(this.src),\n src = _lazyManager$_valueFo.src,\n loading = _lazyManager$_valueFo.loading,\n error = _lazyManager$_valueFo.error;\n\n this.state.loaded = false;\n this.options.src = src;\n this.options.error = error;\n this.options.loading = loading;\n this.renderSrc = this.options.loading;\n },\n getRect: function getRect() {\n this.rect = this.$el.getBoundingClientRect();\n },\n checkInView: function checkInView() {\n this.getRect();\n return inBrowser && this.rect.top < window.innerHeight * lazyManager.options.preLoad && this.rect.bottom > 0 && this.rect.left < window.innerWidth * lazyManager.options.preLoad && this.rect.right > 0;\n },\n load: function load() {\n var _this = this;\n\n var onFinish = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : noop;\n\n if (this.state.attempt > this.options.attempt - 1 && this.state.error) {\n if (!lazyManager.options.silent) console.log('VueLazyload log: ' + this.options.src + ' tried too more than ' + this.options.attempt + ' times');\n onFinish();\n return;\n }\n var src = this.options.src;\n loadImageAsync({ src: src }, function (_ref) {\n var src = _ref.src;\n\n _this.renderSrc = src;\n _this.state.loaded = true;\n }, function (e) {\n _this.state.attempt++;\n _this.renderSrc = _this.options.error;\n _this.state.error = true;\n });\n }\n }\n };\n});\n\nvar index = {\n /*\n * install function\n * @param {Vue} Vue\n * @param {object} options lazyload options\n */\n install: function install(Vue) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var LazyClass = Lazy(Vue);\n var lazy = new LazyClass(options);\n var lazyContainer = new LazyContainerMananger({ lazy: lazy });\n\n var isVue2 = Vue.version.split('.')[0] === '2';\n\n Vue.prototype.$Lazyload = lazy;\n\n if (options.lazyComponent) {\n Vue.component('lazy-component', LazyComponent(lazy));\n }\n\n if (options.lazyImage) {\n Vue.component('lazy-image', LazyImage(lazy));\n }\n\n if (isVue2) {\n Vue.directive('lazy', {\n bind: lazy.add.bind(lazy),\n update: lazy.update.bind(lazy),\n componentUpdated: lazy.lazyLoadHandler.bind(lazy),\n unbind: lazy.remove.bind(lazy)\n });\n Vue.directive('lazy-container', {\n bind: lazyContainer.bind.bind(lazyContainer),\n componentUpdated: lazyContainer.update.bind(lazyContainer),\n unbind: lazyContainer.unbind.bind(lazyContainer)\n });\n } else {\n Vue.directive('lazy', {\n bind: lazy.lazyLoadHandler.bind(lazy),\n update: function update(newValue, oldValue) {\n assignDeep(this.vm.$refs, this.vm.$els);\n lazy.add(this.el, {\n modifiers: this.modifiers || {},\n arg: this.arg,\n value: newValue,\n oldValue: oldValue\n }, {\n context: this.vm\n });\n },\n unbind: function unbind() {\n lazy.remove(this.el);\n }\n });\n\n Vue.directive('lazy-container', {\n update: function update(newValue, oldValue) {\n lazyContainer.update(this.el, {\n modifiers: this.modifiers || {},\n arg: this.arg,\n value: newValue,\n oldValue: oldValue\n }, {\n context: this.vm\n });\n },\n unbind: function unbind() {\n lazyContainer.unbind(this.el);\n }\n });\n }\n }\n};\n\nexport default index;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es-x/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n var n = +x;\n // eslint-disable-next-line no-self-compare -- NaN check\n return n == 0 || n != n ? n : n < 0 ? -1 : 1;\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar $parseFloat = global.parseFloat;\nvar Symbol = global.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) == '-' ? -0 : result;\n} : $parseFloat;\n","'use strict';\nvar $ = require('../internals/export');\nvar $every = require('../internals/array-iteration').every;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('every');\n\n// `Array.prototype.every` method\n// https://tc39.es/ecma262/#sec-array.prototype.every\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $findIndex = require('../internals/array-iteration').findIndex;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND_INDEX = 'findIndex';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND_INDEX in []) Array(1)[FIND_INDEX](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-array.prototype.findindex\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $findIndex(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND_INDEX);\n","'use strict';\nvar $ = require('../internals/export');\nvar $some = require('../internals/array-iteration').some;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('some');\n\n// `Array.prototype.some` method\n// https://tc39.es/ecma262/#sec-array.prototype.some\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD }, {\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","var $ = require('../internals/export');\nvar isIntegralNumber = require('../internals/is-integral-number');\n\n// `Number.isInteger` method\n// https://tc39.es/ecma262/#sec-number.isinteger\n$({ target: 'Number', stat: true }, {\n isInteger: isIntegralNumber\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar nativeToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = $String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return nativeToFixed(0.00008, 3) !== '0.000' ||\n nativeToFixed(0.9, 0) !== '1' ||\n nativeToFixed(1.255, 2) !== '1.25' ||\n nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw $RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return $String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var $ = require('../internals/export');\nvar FREEZING = require('../internals/freezing');\nvar fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar onFreeze = require('../internals/internal-metadata').onFreeze;\n\n// eslint-disable-next-line es-x/no-object-freeze -- safe\nvar $freeze = Object.freeze;\nvar FAILS_ON_PRIMITIVES = fails(function () { $freeze(1); });\n\n// `Object.freeze` method\n// https://tc39.es/ecma262/#sec-object.freeze\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !FREEZING }, {\n freeze: function freeze(it) {\n return $freeze && isObject(it) ? $freeze(onFreeze(it)) : it;\n }\n});\n","var $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat != $parseFloat }, {\n parseFloat: $parseFloat\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n$({ global: true }, { Reflect: {} });\n\n// Reflect[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-reflect-@@tostringtag\nsetToStringTag(global.Reflect, 'Reflect', true);\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar isExtensible = require('../internals/object-is-extensible');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.enable();\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = uncurryThis(WeakMapPrototype['delete']);\n var nativeHas = uncurryThis(WeakMapPrototype.has);\n var nativeGet = uncurryThis(WeakMapPrototype.get);\n var nativeSet = uncurryThis(WeakMapPrototype.set);\n defineBuiltIns(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete(this, key) || state.frozen['delete'](key);\n } return nativeDelete(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) || state.frozen.has(key);\n } return nativeHas(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas(this, key) ? nativeGet(this, key) : state.frozen.get(key);\n } return nativeGet(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceInternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas(this, key) ? nativeSet(this, key, value) : state.frozen.set(key, value);\n } else nativeSet(this, key, value);\n return this;\n }\n });\n}\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-map.constructor');\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n"],"names":["module","exports","apollo","require","cityMap","timezone","countryTimezone","isMergeableObject","value","isNonNullObject","isSpecial","stringValue","Object","prototype","toString","call","isReactElement","canUseSymbol","Symbol","REACT_ELEMENT_TYPE","$$typeof","emptyTarget","val","Array","isArray","cloneIfNecessary","optionsArgument","clone","deepmerge","defaultArrayMerge","target","source","destination","slice","forEach","e","i","indexOf","push","mergeObject","keys","key","sourceIsArray","targetIsArray","options","arrayMerge","sourceAndTargetTypesMatch","all","array","length","Error","reduce","prev","next","deepmerge_1","MapShim","Map","getIndex","arr","result","some","entry","index","class_1","this","__entries__","defineProperty","get","enumerable","configurable","set","entries","splice","has","clear","callback","ctx","_i","_a","isBrowser","window","document","global$1","global","Math","self","Function","requestAnimationFrame$1","requestAnimationFrame","bind","setTimeout","Date","now","trailingTimeout","throttle","delay","leadingCall","trailingCall","lastCallTime","resolvePending","proxy","timeoutCallback","timeStamp","REFRESH_DELAY","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","addObserver","observer","connect_","removeObserver","observers","disconnect_","changesDetected","updateObservers_","activeObservers","filter","gatherActive","hasActive","broadcastActive","addEventListener","observe","attributes","childList","characterData","subtree","removeEventListener","disconnect","_b","propertyName","isReflowProperty","getInstance","instance_","defineConfigurable","props","writable","getWindowOf","ownerGlobal","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","parseFloat","getBordersSize","styles","positions","arguments","size","position","getPaddings","paddings","positions_1","getSVGContentRect","bbox","getBBox","width","height","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","horizPad","left","right","vertPad","top","bottom","boxSizing","round","isDocumentElement","vertScrollbar","horizScrollbar","abs","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","documentElement","getContentRect","createReadOnlyRect","x","y","Constr","DOMRectReadOnly","rect","create","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","broadcastRect","ResizeObserverEntry","rectInit","contentRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","TypeError","callback_","controller_","callbackCtx_","Element","observations","unobserve","clearActive","_this","observation","map","WeakMap","ResizeObserver","method","apply","_assertThisInitialized","ReferenceError","_possibleConstructorReturn","_typeof","assertThisInitialized","_setPrototypeOf","o","p","setPrototypeOf","__proto__","_inherits","subClass","superClass","constructor","_getPrototypeOf","getPrototypeOf","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","Super","NewTarget","possibleConstructorReturn","isObject","obj","extend","src","doc","ssrDocument","body","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","win","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getPropertyValue","Image","screen","clearTimeout","matchMedia","Dom7","$","selector","context","els","tempParent","html","trim","toCreate","innerHTML","match","split","nodeType","unique","uniqueArray","addClass","className","classes","j","classList","add","removeClass","remove","hasClass","contains","toggleClass","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","data","el","dom7ElementDataStorage","dataKey","transform","elStyle","webkitTransform","transition","duration","webkitTransitionDuration","transitionDuration","on","args","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","parents","k","handleEvent","undefined","events","event","dom7LiveListeners","proxyListener","dom7Listeners","off","handlers","handler","dom7proxy","trigger","evt","detail","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","offsetWidth","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollLeft","css","prop","each","matchedItems","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","parent","parentNode","closest","find","foundElements","found","removeChild","toAdd","fn","Class","Methods","methodName","Utils","deleteProps","object","nextTick","getTranslate","matrix","curTransform","transformMatrix","axis","curStyle","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","m41","m42","parseUrlQuery","url","params","param","query","urlToParse","paramsPart","decodeURIComponent","to","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","Support","touch","pointerEvents","passiveListener","supportsPassive","opts","gestures","SwiperClass","eventsListeners","eventName","priority","onceHandler","f7proxy","eventHandler","eventsArray","instanceParams","instance","modules","moduleName","modulesParams","moduleParams","modulePropName","moduleProp","moduleEventName","components","use","name","proto","install","m","installModule","swiper","$el","isHorizontal","isVertical","parseInt","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","slidesForMargin","slideIndex","cssMode","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","floor","ceil","slidesPerView","slidesPerColumnFill","max","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","slidesPerGroup","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","paddingTop","paddingBottom","swiperSlideSize","centeredSlides","slidesPerGroupSkip","effect","setWrapperSize","slidesGridItem","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","emit","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","speed","activeSlides","newHeight","setTransition","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","isVisible","progress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesProgress","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","updateSize","updateSlides","updateAutoHeight","updateProgress","updateSlidesClasses","updateActiveIndex","updateClickedSlide","virtualTranslate","currentTranslate","byController","newProgress","wrapperEl","z","previousTranslate","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","scrollTo","setTranslate","onTranslateToWrapperTransitionEnd","destroyed","translateTo","direction","dir","transitionStart","initialSlide","allowSlideNext","allowSlidePrev","t","scrollWidth","onSlideToWrapperTransitionEnd","newIndex","loopedSlides","slideTo","increment","loopFix","_clientLeft","normalize","prevIndex","normalizedTranslate","normalizedSnapGrid","prevSnap","threshold","currentSnap","nextSnap","slidesPerViewDynamic","slideToIndex","slideToLoop","slideNext","slidePrev","slideReset","slideToClosest","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","diff","slideChanged","loopCreate","loopDestroy","moving","simulateTouch","isLocked","cursor","setGrabCursor","unsetGrabCursor","update","activeIndexBuffer","baseLength","prependSlide","appendSlide","slidesBuffer","currentSlide","slidesIndexes","indexToRemove","removeSlide","addSlide","removeAllSlides","Device","platform","ua","device","ios","android","androidChrome","desktop","iphone","ipod","ipad","edge","ie","firefox","macos","windows","cordova","phonegap","electron","screenWidth","screenHeight","toLowerCase","os","osVersion","webView","webview","standalone","pixelRatio","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","type","which","button","isTouched","isMoved","noSwiping","noSwipingSelector","noSwipingClass","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","preventDefault","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","time","currentPos","touchEndTime","timeDiff","lastClickTime","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","once","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","ratio","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","breakpoints","setBreakpoint","autoplay","running","paused","run","preventClicks","preventClicksPropagation","stopImmediatePropagation","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","onTouchStart","onTouchMove","onTouchEnd","onScroll","onClick","start","move","end","passiveListeners","passive","cancel","updateOnWindowResize","onResize","detachEvents","breakpoint","getBreakpoint","currentBreakpoint","breakpointOnlyParams","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","containerModifierClass","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","sort","b","classNames","suffixes","suffix","addClasses","removeClasses","imageEl","srcset","sizes","checkForComplete","image","onReady","isPicture","complete","onload","onerror","imagesLoaded","imagesToLoad","updateOnImagesReady","loadImage","currentSrc","preloadImages","wasLocked","lastSlidePosition","init","uniqueNavElements","wrapperClass","prototypes","manipulation","images","extendedDefaults","Swiper","prototypeGroup","protoMethod","moduleParamName","swiperParams","defaults","useModulesParams","passedParams","swipers","containerEl","newParams","shadowRoot","touchEventsTouch","touchEventsDesktop","clickTimeout","useModules","spv","breakLoop","translated","translateValue","newDirection","needUpdate","currentDirection","slideEl","deleteInstance","cleanStyles","newDefaults","static","support","Browser","isSafari","isEdge","isWebView","test","browser","resize","resizeHandler","orientationChangeHandler","destroy","Observer","func","attach","ObserverFunc","mutations","observerUpdate","observeParents","containerParents","observeSlideChildren","isEventSupported","isSupported","element","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","shiftKey","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","handle","mousewheel","eventsTarged","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","newEvent","sign","ignoreWheelEvents","sensitivity","timeout","shift","prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","raw","animateSlider","releaseScroll","returnValue","getTime","enable","disable","Navigation","$nextEl","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","hideOnClick","hiddenClass","toEdge","fromEdge","click","isHidden","Pagination","pagination","current","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickable","clickableClass","modifierClass","progressbarOppositeClass","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Resize","atBegin","noTrailing","debounceMode","timeoutID","lastExec","wrapper","elapsed","Number","exec","g","f","define","Vue","CoreNames","hasOwnProperty","ComponentEvents","ComponentPropNames","DEFAULT_CLASSES","freeze","containerClass","SWIPER_EVENTS","__spreadArrays","s","il","r","jl","SlotNames","kebabcase","string","handleClickSlideEvent","_c","eventPath","composedPath","path","slides_1","from","paths","includes","item","reallyIndex","dataset","swiperSlideIndex","reallyIndexValue","isInteger","ClickSlide","bindSwiperEvents","arguments$1","kebabcaseName","INSTANCE_NAME_KEY","getDirective","globalOptions","getStandardisedOptionByAttrs","vnode","_d","getSwiperInstanceName","binding","arg","id","SwiperInstance","getSwiperInstance","instanceName","getSwipeOptions","getBooleanValueByInput","input","getEventEmiter","componentOptions","listeners","fns","emitEvent","inserted","swiperOptions","vueContext","Ready","componentUpdated","_e","_f","_g","_h","_j","_k","_l","_m","autoUpdate","AutoUpdate","isLoop","unbind","autoDestroy","AutoDestroy","DeleteInstanceOnDestroy","CleanupStylesOnDestroy","getSwiperComponent","SwiperComponent","defaultOptions","required","default","computed","swiperInstance","cache","methods","handleSwiperClick","$emit","autoReLoopSwiper","updateSwiper","destroySwiper","initSwiper","mounted","activated","updated","beforeDestroy","$nextTick","staticClass","$slots","ParallaxBg","class","PrevButton","NextButton","Scrollbar","SwiperSlideComponent","$parent","getInstaller","installed","component","directive","SwiperDirective","exporter","version","iterator","classCallCheck","Constructor","createClass","defineProperties","descriptor","protoProps","staticProps","isPrimitive","assignSymbols","receiver","objects","getOwnPropertySymbols","isEnumerable","propertyIsEnumerable","provider","names","kindOf","String","RegExp","isBuffer","assign","isObject$1","hasOwn","assignDeep","inBrowser","hasIntersectionObserver","checkIntersectionObserver","IntersectionObserverEntry","intersectionRatio","modeType","Event","initCustomEvent","getBestSelectionFromSrcset","tagName","container","containerWidth","spaceIndex","tmpSrc","tmpWidth","lastIndexOf","bestSelectedSrc","tmpOption","getDPR","devicePixelRatio","supportWebp","d","visibility","err","action","lastRun","runCallback","testSupportsPassive","_","loadImageAsync","resolve","reject","naturalHeight","naturalWidth","overflow","scrollParent","HTMLElement","ObjectKeys","ArrayFrom","arrLike","list","noop","ImageCache","_ref","_caches","free","ReactiveListener","error","loading","bindType","elRenderer","imageCache","attempt","_imageCache","performanceData","loadStart","loadEnd","initState","state","loaded","rendered","_ref2","oldSrc","getRect","innerHeight","preLoad","preLoadTop","innerWidth","cb","_this2","silent","console","warn","_this3","onFinish","log","renderLoading","adapter","record","DEFAULT_URL","DEFAULT_EVENTS","DEFAULT_OBSERVER_OPTIONS","rootMargin","Lazy","throttleWait","_ref$silent","listenEvents","hasbind","observerOptions","mode","ListenerQueue","TargetIndex","TargetQueue","ListenEvents","_initEvent","lazyLoadHandler","_lazyLoadHandler","setMode","performance","vm","_addListenerTarget","_observer","_valueFormatter2","_valueFormatter","modifiers","$refs","newListener","_elRenderer","_valueFormatter3","exist","existItem","_removeListenerTarget","$destroy","_initListen","_initIntersectionObserver","childrenCount","listened","_this4","_this5","_this6","$on","$once","$off","inCache","_this7","freeList","catIn","checkInView","load","_this8","IntersectionObserver","_observerHandler","_this9","isIntersecting","LazyComponent","lazy","tag","h","show","addLazyBox","removeComponent","LazyContainerMananger","lazyContainerMananger","_queue","LazyContainer$1","LazyContainer","_ref3","imgs","getImgs","LazyImage","lazyManager","renderSrc","watch","created","_lazyManager$_valueFo","LazyClass","lazyContainer","isVue2","$Lazyload","lazyComponent","lazyImage","newValue","oldValue","$els","uncurryThis","defineBuiltIns","getWeakData","anInstance","anObject","isNullOrUndefined","iterate","ArrayIterationModule","InternalStateModule","setInternalState","internalStateGetterFor","getterFor","findIndex","uncaughtFrozenStore","store","frozen","UncaughtFrozenStore","findUncaughtFrozen","it","getConstructor","CONSTRUCTOR_NAME","IS_MAP","ADDER","that","iterable","Prototype","AS_ENTRIES","getInternalState","n","fails","whitespaces","charAt","$parseFloat","ITERATOR","FORCED","Infinity","trimmedString","$every","arrayMethodIsStrict","STRICT_METHOD","forced","every","callbackfn","$findIndex","addToUnscopables","FIND_INDEX","SKIPS_HOLES","$some","aCallable","toObject","lengthOfArrayLike","deletePropertyOrThrow","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STABLE_SORT","code","chr","fromCharCode","v","getSortCompare","comparefn","itemsLength","items","arrayLength","stat","isIntegralNumber","toIntegerOrInfinity","thisNumberValue","$repeat","$RangeError","RangeError","$String","repeat","stringSlice","nativeToFixed","toFixed","pow","acc","x2","multiply","c","c2","divide","dataToString","fractionDigits","fractDigits","FREEZING","onFreeze","$freeze","FAILS_ON_PRIMITIVES","getBuiltIn","aConstructor","nativeConstruct","ObjectPrototype","NEW_TARGET_BUG","F","ARGS_BUG","Target","newTarget","$args","setToStringTag","InternalWeakMap","InternalMetadataModule","collection","collectionWeak","isExtensible","enforceInternalState","NATIVE_WEAK_MAP","IS_IE11","ActiveXObject","$WeakMap","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","nativeKeys","overArg","objectProto","baseKeys","isPrototype","baseUnary","DataView","getNative","root","Promise","Set","mapTag","objectTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","baseGetTag","ArrayBuffer","Ctor","ctorString","freeExports","freeModule","moduleExports","freeProcess","freeGlobal","nodeUtil","types","stackClear","__data__","ListCache","stackDelete","stackGet","stackHas","LARGE_ARRAY_SIZE","stackSet","pairs","MapCache","Stack","arrayEach","iteratee","baseAssignValue","assignValue","objValue","copyObject","customizer","isNew","baseTimes","MAX_SAFE_INTEGER","reIsUint","isIndex","arrayLikeKeys","inherited","isArr","isArg","isArguments","isBuff","isType","isTypedArray","skipIndexes","isArrayLike","baseAssign","nativeKeysIn","baseKeysIn","isProto","keysIn","baseAssignIn","Buffer","allocUnsafe","cloneBuffer","buffer","isDeep","copy","copyArray","arrayFilter","predicate","resIndex","stubArray","nativeGetSymbols","getSymbols","symbol","copySymbols","arrayPush","values","getPrototype","getSymbolsIn","copySymbolsIn","baseGetAllKeys","keysFunc","symbolsFunc","getAllKeys","getAllKeysIn","initCloneArray","Uint8Array","cloneArrayBuffer","arrayBuffer","byteLength","cloneDataView","dataView","byteOffset","reFlags","cloneRegExp","regexp","symbolProto","symbolValueOf","cloneSymbol","cloneTypedArray","typedArray","boolTag","dateTag","numberTag","regexpTag","stringTag","symbolTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","initCloneByTag","objectCreate","baseCreate","initCloneObject","baseIsMap","isObjectLike","nodeIsMap","isMap","baseIsSet","nodeIsSet","isSet","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","argsTag","arrayTag","errorTag","funcTag","genTag","cloneableTags","baseClone","bitmask","stack","isFlat","isFull","isFunc","stacked","subValue","cloneDeep","baseIsArguments","isLength","isFunction","stubFalse","nativeIsBuffer","typedArrayTags","baseIsTypedArray","nodeIsTypedArray"],"sourceRoot":""}