{"version":3,"file":"js/3185-d0fe975e5b28b20bd115.js","mappings":"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","sources":["webpack://caresul-app/./node_modules/axios/index.js","webpack://caresul-app/./node_modules/axios/lib/adapters/xhr.js","webpack://caresul-app/./node_modules/axios/lib/axios.js","webpack://caresul-app/./node_modules/axios/lib/cancel/CancelToken.js","webpack://caresul-app/./node_modules/axios/lib/cancel/CanceledError.js","webpack://caresul-app/./node_modules/axios/lib/cancel/isCancel.js","webpack://caresul-app/./node_modules/axios/lib/core/Axios.js","webpack://caresul-app/./node_modules/axios/lib/core/AxiosError.js","webpack://caresul-app/./node_modules/axios/lib/core/InterceptorManager.js","webpack://caresul-app/./node_modules/axios/lib/core/buildFullPath.js","webpack://caresul-app/./node_modules/axios/lib/core/dispatchRequest.js","webpack://caresul-app/./node_modules/axios/lib/core/mergeConfig.js","webpack://caresul-app/./node_modules/axios/lib/core/settle.js","webpack://caresul-app/./node_modules/axios/lib/core/transformData.js","webpack://caresul-app/./node_modules/axios/lib/defaults/index.js","webpack://caresul-app/./node_modules/axios/lib/defaults/transitional.js","webpack://caresul-app/./node_modules/axios/lib/env/classes/FormData.js","webpack://caresul-app/./node_modules/axios/lib/env/data.js","webpack://caresul-app/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://caresul-app/./node_modules/axios/lib/helpers/bind.js","webpack://caresul-app/./node_modules/axios/lib/helpers/buildURL.js","webpack://caresul-app/./node_modules/axios/lib/helpers/combineURLs.js","webpack://caresul-app/./node_modules/axios/lib/helpers/cookies.js","webpack://caresul-app/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://caresul-app/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://caresul-app/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://caresul-app/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://caresul-app/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://caresul-app/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://caresul-app/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://caresul-app/./node_modules/axios/lib/helpers/spread.js","webpack://caresul-app/./node_modules/axios/lib/helpers/toFormData.js","webpack://caresul-app/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://caresul-app/./node_modules/axios/lib/helpers/validator.js","webpack://caresul-app/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://caresul-app/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://caresul-app/./node_modules/axios/lib/platform/browser/index.js","webpack://caresul-app/./node_modules/axios/lib/platform/index.js","webpack://caresul-app/./node_modules/axios/lib/utils.js","webpack://caresul-app/./node_modules/form-data/lib/browser.js","webpack://caresul-app/./node_modules/lodash.uniq/index.js","webpack://caresul-app/./node_modules/smooth-scroll/dist/smooth-scroll.polyfills.min.js","webpack://caresul-app/./node_modules/ssr-window/ssr-window.esm.js","webpack://caresul-app/./node_modules/dom7/dom7.esm.js","webpack://caresul-app/./node_modules/swiper/shared/dom.js","webpack://caresul-app/./node_modules/swiper/shared/get-support.js","webpack://caresul-app/./node_modules/swiper/shared/get-device.js","webpack://caresul-app/./node_modules/swiper/shared/get-browser.js","webpack://caresul-app/./node_modules/swiper/shared/utils.js","webpack://caresul-app/./node_modules/swiper/core/events-emitter.js","webpack://caresul-app/./node_modules/swiper/core/update/index.js","webpack://caresul-app/./node_modules/swiper/core/update/updateSize.js","webpack://caresul-app/./node_modules/swiper/core/update/updateSlides.js","webpack://caresul-app/./node_modules/swiper/core/update/updateAutoHeight.js","webpack://caresul-app/./node_modules/swiper/core/update/updateSlidesOffset.js","webpack://caresul-app/./node_modules/swiper/core/update/updateSlidesProgress.js","webpack://caresul-app/./node_modules/swiper/core/update/updateProgress.js","webpack://caresul-app/./node_modules/swiper/core/update/updateSlidesClasses.js","webpack://caresul-app/./node_modules/swiper/core/update/updateActiveIndex.js","webpack://caresul-app/./node_modules/swiper/core/update/updateClickedSlide.js","webpack://caresul-app/./node_modules/swiper/core/translate/index.js","webpack://caresul-app/./node_modules/swiper/core/translate/getTranslate.js","webpack://caresul-app/./node_modules/swiper/core/translate/setTranslate.js","webpack://caresul-app/./node_modules/swiper/core/translate/minTranslate.js","webpack://caresul-app/./node_modules/swiper/core/translate/maxTranslate.js","webpack://caresul-app/./node_modules/swiper/core/translate/translateTo.js","webpack://caresul-app/./node_modules/swiper/core/transition/transitionEmit.js","webpack://caresul-app/./node_modules/swiper/core/slide/index.js","webpack://caresul-app/./node_modules/swiper/core/slide/slideTo.js","webpack://caresul-app/./node_modules/swiper/core/slide/slideToLoop.js","webpack://caresul-app/./node_modules/swiper/core/slide/slideNext.js","webpack://caresul-app/./node_modules/swiper/core/slide/slidePrev.js","webpack://caresul-app/./node_modules/swiper/core/slide/slideReset.js","webpack://caresul-app/./node_modules/swiper/core/slide/slideToClosest.js","webpack://caresul-app/./node_modules/swiper/core/slide/slideToClickedSlide.js","webpack://caresul-app/./node_modules/swiper/core/loop/index.js","webpack://caresul-app/./node_modules/swiper/core/loop/loopCreate.js","webpack://caresul-app/./node_modules/swiper/core/loop/loopFix.js","webpack://caresul-app/./node_modules/swiper/core/loop/loopDestroy.js","webpack://caresul-app/./node_modules/swiper/core/events/onTouchStart.js","webpack://caresul-app/./node_modules/swiper/core/events/onTouchMove.js","webpack://caresul-app/./node_modules/swiper/core/events/onTouchEnd.js","webpack://caresul-app/./node_modules/swiper/core/events/onResize.js","webpack://caresul-app/./node_modules/swiper/core/events/onClick.js","webpack://caresul-app/./node_modules/swiper/core/events/onScroll.js","webpack://caresul-app/./node_modules/swiper/core/events/index.js","webpack://caresul-app/./node_modules/swiper/core/breakpoints/setBreakpoint.js","webpack://caresul-app/./node_modules/swiper/core/breakpoints/index.js","webpack://caresul-app/./node_modules/swiper/core/breakpoints/getBreakpoint.js","webpack://caresul-app/./node_modules/swiper/core/classes/index.js","webpack://caresul-app/./node_modules/swiper/core/classes/addClasses.js","webpack://caresul-app/./node_modules/swiper/core/classes/removeClasses.js","webpack://caresul-app/./node_modules/swiper/core/check-overflow/index.js","webpack://caresul-app/./node_modules/swiper/core/defaults.js","webpack://caresul-app/./node_modules/swiper/core/moduleExtendParams.js","webpack://caresul-app/./node_modules/swiper/core/core.js","webpack://caresul-app/./node_modules/swiper/core/transition/index.js","webpack://caresul-app/./node_modules/swiper/core/transition/setTransition.js","webpack://caresul-app/./node_modules/swiper/core/transition/transitionStart.js","webpack://caresul-app/./node_modules/swiper/core/transition/transitionEnd.js","webpack://caresul-app/./node_modules/swiper/core/grab-cursor/index.js","webpack://caresul-app/./node_modules/swiper/core/grab-cursor/setGrabCursor.js","webpack://caresul-app/./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","webpack://caresul-app/./node_modules/swiper/core/images/index.js","webpack://caresul-app/./node_modules/swiper/core/images/loadImage.js","webpack://caresul-app/./node_modules/swiper/core/images/preloadImages.js","webpack://caresul-app/./node_modules/swiper/core/modules/resize/resize.js","webpack://caresul-app/./node_modules/swiper/core/modules/observer/observer.js","webpack://caresul-app/./node_modules/swiper/shared/create-element-if-not-defined.js","webpack://caresul-app/./node_modules/swiper/modules/navigation/navigation.js","webpack://caresul-app/./node_modules/swiper/shared/classes-to-selector.js","webpack://caresul-app/./node_modules/swiper/modules/pagination/pagination.js","webpack://caresul-app/./node_modules/swiper/modules/lazy/lazy.js","webpack://caresul-app/./node_modules/swiper/modules/thumbs/thumbs.js","webpack://caresul-app/./node_modules/js-cookie/dist/js.cookie.mjs"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\nvar platform = require('../platform');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var withXSRFToken = config.withXSRFToken;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n var xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n // false, 0 (zero number), and '' (empty string) are valid JSON values\n if (!requestData && requestData !== false && requestData !== 0 && requestData !== '') {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\nvar formDataToJSON = require('./helpers/formDataToJSON');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\naxios.formToJSON = function(thing) {\n return formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n};\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n var paramsSerializer = config.paramsSerializer;\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n };\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Clear all interceptors from the stack\n */\nInterceptorManager.prototype.clear = function clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @param {boolean} allowAbsoluteUrls Set to true to allow absolute URLs\n *\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n var isRelativeURL = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeURL || allowAbsoluteUrls === false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n null,\n config.transformRequest\n );\n\n normalizeHeaderName(config.headers, 'Accept');\n normalizeHeaderName(config.headers, 'Content-Type');\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n response.status,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n reason.response.status,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isEmptyObject(source)) {\n return utils.merge({}, target);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'withXSRFToken': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Number} status HTTP status code\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, status, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers, status);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\nvar toURLEncodedForm = require('../helpers/toURLEncodedForm');\nvar platform = require('../platform');\nvar formDataToJSON = require('../helpers/formDataToJSON');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n var contentType = headers && headers['Content-Type'] || '';\n var hasJSONContentType = contentType.indexOf('application/json') > -1;\n var isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n var isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') !== -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n var _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","// eslint-disable-next-line strict\nmodule.exports = require('form-data');\n","module.exports = {\n \"version\": \"0.30.0\"\n};","'use strict';\n\nvar toFormData = require('./toFormData');\n\nfunction encode(str) {\n var charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nvar prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n var _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nmodule.exports = AxiosURLSearchParams;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar AxiosURLSearchParams = require('../helpers/AxiosURLSearchParams');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n var _encode = options && options.encode || encode;\n\n var serializeFn = options && options.serialize;\n\n var serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(function(match) {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\nfunction arrayToObject(arr) {\n var obj = {};\n var keys = Object.keys(arr);\n var i;\n var len = keys.length;\n var key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n var name = path[index++];\n\n if (name === '__proto__') return true;\n\n var isNumericKey = Number.isFinite(+name);\n var isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProperty(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n var result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n var obj = {};\n\n utils.forEachEntry(formData, function(name, value) {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nmodule.exports = formDataToJSON;\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.slice(0, i)).toLowerCase();\n val = utils.trim(line.slice(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar AxiosError = require('../core/AxiosError');\nvar envFormData = require('../env/classes/FormData');\n\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nvar predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\nfunction isSpecCompliant(thing) {\n return thing && utils.isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator];\n}\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (envFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n var metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n var visitor = options.visitor || defaultVisitor;\n var dots = options.dots;\n var indexes = options.indexes;\n var _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n var useBlob = _Blob && isSpecCompliant(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n var arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n (utils.isFileList(value) || utils.endsWith(key, '[]') && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n var stack = [];\n\n var exposedHelpers = Object.assign(predicates, {\n defaultVisitor: defaultVisitor,\n convertValue: convertValue,\n isVisitable: isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n var result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar utils = require('../utils');\nvar toFormData = require('./toFormData');\nvar platform = require('../platform/');\n\nmodule.exports = function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nmodule.exports = FormData;\n","'use strict';\n\nvar AxiosURLSearchParams = require('../../../helpers/AxiosURLSearchParams');\n\nmodule.exports = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nmodule.exports = {\n isBrowser: true,\n classes: {\n URLSearchParams: require('./classes/URLSearchParams'),\n FormData: require('./classes/FormData'),\n Blob: Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nmodule.exports = require('./node/');\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a empty Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a empty Object, otherwise false\n */\nfunction isEmptyObject(val) {\n return val && Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n var product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter, propFilter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n * @param {*} [thing]\n * @returns {?Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n var i = thing.length;\n if (!isNumber(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nfunction forEachEntry(obj, fn) {\n var generator = obj && obj[Symbol.iterator];\n\n var iterator = generator.call(obj);\n\n var result;\n\n while ((result = iterator.next()) && !result.done) {\n var pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\nfunction matchAll(regExp, str) {\n var matches;\n var arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\nvar isHTMLForm = kindOfTest('HTMLFormElement');\n\nvar hasOwnProperty = (function resolver(_hasOwnProperty) {\n return function(obj, prop) {\n return _hasOwnProperty.call(obj, prop);\n };\n})(Object.prototype.hasOwnProperty);\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isEmptyObject: isEmptyObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList,\n forEachEntry: forEachEntry,\n matchAll: matchAll,\n isHTMLForm: isHTMLForm,\n hasOwnProperty: hasOwnProperty\n};\n","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array ? array.length : 0;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\n/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n if (value !== value) {\n return baseFindIndex(array, baseIsNaN, fromIndex);\n }\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\n/**\n * Checks if a cache value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\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 cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n Set = getNative(root, 'Set'),\n nativeCreate = getNative(Object, 'create');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\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 hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\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 hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\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 listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\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 listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\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 mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\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 mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each\n * element is kept.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length)\n ? baseUniq(array)\n : [];\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` 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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\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 object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = uniq;\n","/*! smooth-scroll v16.1.3 | (c) 2020 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/smooth-scroll */\nwindow.Element&&!Element.prototype.closest&&(Element.prototype.closest=function(e){var t,n=(this.document||this.ownerDocument).querySelectorAll(e),o=this;do{for(t=n.length;0<=--t&&n.item(t)!==o;);}while(t<0&&(o=o.parentElement));return o}),(function(){if(\"function\"==typeof window.CustomEvent)return;function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};var n=document.createEvent(\"CustomEvent\");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e})(),(function(){for(var r=0,e=[\"ms\",\"moz\",\"webkit\",\"o\"],t=0;to.durationMax?o.durationMax:o.durationMin&&u=v)return C.cancelScroll(!0),x(a,t,c),H(\"scrollStop\",i,a,r),!(O=l=null)})(d,g)||(O=M.requestAnimationFrame(E),l=e)};0===M.pageYOffset&&M.scrollTo(0,0),f=a,h=i,c||history.pushState&&h.updateURL&&history.pushState({smoothScroll:JSON.stringify(h),anchor:f.id},document.title,f===document.documentElement?\"#top\":\"#\"+f.id),\"matchMedia\"in M&&M.matchMedia(\"(prefers-reduced-motion)\").matches?x(a,Math.floor(g),!1):(H(\"scrollStart\",i,a,r),C.cancelScroll(!0),M.requestAnimationFrame(E))}};var t=function(e){if(!e.defaultPrevented&&!(0!==e.button||e.metaKey||e.ctrlKey||e.shiftKey)&&\"closest\"in e.target&&(a=e.target.closest(o))&&\"a\"===a.tagName.toLowerCase()&&!e.target.closest(b.ignore)&&a.hostname===M.location.hostname&&a.pathname===M.location.pathname&&/#/.test(a.href)){var t,n;try{t=r(decodeURIComponent(a.hash))}catch(e){t=r(a.hash)}if(\"#\"===t){if(!b.topOnEmptyHash)return;n=document.documentElement}else n=document.querySelector(t);(n=n||\"#top\"!==t?n:document.documentElement)&&(e.preventDefault(),(function(e){if(history.replaceState&&e.updateURL&&!history.state){var t=M.location.hash;t=t||\"\",history.replaceState({smoothScroll:JSON.stringify(e),anchor:t||M.pageYOffset},document.title,t||M.location.href)}})(b),C.animateScroll(n,a))}},n=function(e){if(null!==history.state&&history.state.smoothScroll&&history.state.smoothScroll===JSON.stringify(b)){var t=history.state.anchor;\"string\"==typeof t&&t&&!(t=document.querySelector(r(history.state.anchor)))||C.animateScroll(t,null,{updateURL:!1})}};C.destroy=function(){b&&(document.removeEventListener(\"click\",t,!1),M.removeEventListener(\"popstate\",n,!1),C.cancelScroll(),O=A=a=b=null)};return (function(){if(!(\"querySelector\"in document&&\"addEventListener\"in M&&\"requestAnimationFrame\"in M&&\"closest\"in M.Element.prototype))throw\"Smooth Scroll: This browser does not support the required JavaScript methods and browser APIs.\";C.destroy(),b=I(q,e||{}),A=b.header?document.querySelector(b.header):null,document.addEventListener(\"click\",t,!1),b.updateURL&&b.popstate&&M.addEventListener(\"popstate\",n,!1)})(),C}}));","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\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 Object.keys(src).forEach((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\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst 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() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\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 } // Set attrs\n\n\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 for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\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 for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\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\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\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 const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\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\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\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\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\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\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\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\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\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\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\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}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\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}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\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}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\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\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\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\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\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\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\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}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\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}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\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\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\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\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\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\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\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\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\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\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\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\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\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\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\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\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\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 let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\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 {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\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\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\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(' ');\n\nfunction shortcut(name) {\n function eventHandler(...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]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\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};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\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 windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\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\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\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; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\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\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\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 (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\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]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === 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 || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\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\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n 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 let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\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 slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\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 prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\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\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 Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(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 && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\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 } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\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 slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\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\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\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 } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\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\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n 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\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\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;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\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\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\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\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\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}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\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 const translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n } // Update progress\n\n\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\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\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\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\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(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 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\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\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n 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.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\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 $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\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\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\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; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n const eventPath = event.composedPath ? event.composedPath() : event.path ? event.path[0] : undefined;\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = $(eventPath);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\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; // 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\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\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\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\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\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\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\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 } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\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; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n 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\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\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 (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\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\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 let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\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\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\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 } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\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 extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\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}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\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 = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\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 // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // 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 // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n }); // eslint-disable-next-line no-constructor-return\n\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\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 swiper.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 focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n // eslint-disable-next-line no-constructor-return\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\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\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 // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\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\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\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\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n\n swiper.update();\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\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 return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n 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 installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","export default function setTransition(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}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\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\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\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 emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\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 observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\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\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n init();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n destroy();\n };\n\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","export default function classesToSelector(classes = '') {\n return `.${classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.')}`;\n}","import $ from '../../shared/dom.js';\nimport classesToSelector from '../../shared/classes-to-selector.js';\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nexport default function Pagination({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const pfx = 'swiper-pagination';\n extendParams({\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',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: number => number,\n formatFractionTotal: number => number,\n bulletClass: `${pfx}-bullet`,\n bulletActiveClass: `${pfx}-bullet-active`,\n modifierClass: `${pfx}-`,\n currentClass: `${pfx}-current`,\n totalClass: `${pfx}-total`,\n hiddenClass: `${pfx}-hidden`,\n progressbarFillClass: `${pfx}-progressbar-fill`,\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n clickableClass: `${pfx}-clickable`,\n lockClass: `${pfx}-lock`,\n horizontalClass: `${pfx}-horizontal`,\n verticalClass: `${pfx}-vertical`,\n paginationDisabledClass: `${pfx}-disabled`\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n let bulletSize;\n let dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n const {\n bulletActiveClass\n } = swiper.params.pagination;\n $bulletEl[position]().addClass(`${bulletActiveClass}-${position}`)[position]().addClass(`${bulletActiveClass}-${position}-${position}`);\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n const rtl = swiper.rtl;\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el; // Current/Total\n\n let current;\n const total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\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 } // Types\n\n\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\n if (params.dynamicBullets) {\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', `${bulletSize * (params.dynamicMainBullets + 4)}px`);\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`).join(' '));\n\n if ($el.length > 1) {\n bullets.each(bullet => {\n const $bullet = $(bullet);\n const bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, 'next');\n }\n }\n });\n } else {\n const $bullet = bullets.eq(current);\n const bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n const $firstDisplayedBullet = bullets.eq(firstIndex);\n const $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (let i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length) {\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(`${params.bulletActiveClass}-prev`);\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n const offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n let progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n const scale = (current + 1) / total;\n let scaleX = 1;\n let scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n const $el = swiper.pagination.$el;\n let paginationHTML = '';\n\n if (params.type === 'bullets') {\n let numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\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\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\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 $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = ``;\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\n const params = swiper.params.pagination;\n if (!params.el) return;\n let $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(el => {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\n dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(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 Object.assign(swiper.pagination, {\n $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n const $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', () => {\n if (swiper.params.pagination.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n render();\n update();\n }\n });\n on('activeIndexChange', () => {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', () => {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', () => {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', () => {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $el\n } = swiper.pagination;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', () => {\n update();\n });\n on('click', (_s, e) => {\n const targetEl = e.target;\n const {\n $el\n } = swiper.pagination;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $el && $el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n init();\n render();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n\n if (swiper.pagination.$el) {\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\n }\n\n destroy();\n };\n\n Object.assign(swiper.pagination, {\n enable,\n disable,\n render,\n update,\n init,\n destroy\n });\n}","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function Lazy({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n });\n swiper.lazy = {};\n let scrollHandlerAttached = false;\n let initialImageLoaded = false;\n\n function loadInSlide(index, loadInDuplicate = true) {\n const params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n const $slideEl = isVirtual ? swiper.$wrapperEl.children(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`) : swiper.slides.eq(index);\n const $images = $slideEl.find(`.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`);\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(imageEl => {\n const $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n const background = $imageEl.attr('data-background');\n const src = $imageEl.attr('data-src');\n const srcset = $imageEl.attr('data-srcset');\n const sizes = $imageEl.attr('data-sizes');\n const $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', `url(\"${background}\")`);\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(sourceEl => {\n const $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(`.${params.preloaderClass}`).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n const originalSlide = swiper.$wrapperEl.children(`[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`);\n loadInSlide(originalSlide.index(), false);\n } else {\n const duplicatedSlide = swiper.$wrapperEl.children(`.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`);\n loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n }\n\n function load() {\n const {\n $wrapperEl,\n params: swiperParams,\n slides,\n activeIndex\n } = swiper;\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n const params = swiperParams.lazy;\n let slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`).length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!initialImageLoaded) initialImageLoaded = true;\n\n if (swiper.params.watchSlidesProgress) {\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each(slideEl => {\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n const amount = params.loadPrevNextAmount;\n const spv = Math.ceil(slidesPerView);\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (let i = activeIndex + spv; i < maxIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n } // Prev Slides\n\n\n for (let i = minIndex; i < activeIndex; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n\n function checkInViewOnLoad() {\n const window = getWindow();\n if (!swiper || swiper.destroyed) return;\n const $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n const isWindow = $scrollElement[0] === window;\n const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n const swiperOffset = swiper.$el.offset();\n const {\n rtlTranslate: rtl\n } = swiper;\n let inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (let i = 0; i < swiperCoord.length; i += 1) {\n const point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n const passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n load();\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n } else if (!scrollHandlerAttached) {\n scrollHandlerAttached = true;\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n }\n }\n\n on('beforeInit', () => {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n });\n on('init', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('scroll', () => {\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n load();\n }\n });\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('transitionStart', () => {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n }\n });\n on('transitionEnd', () => {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('slideChange', () => {\n const {\n lazy,\n cssMode,\n watchSlidesProgress,\n touchReleaseOnEdges,\n resistanceRatio\n } = swiper.params;\n\n if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n load();\n }\n });\n on('destroy', () => {\n if (!swiper.$el) return;\n swiper.$el.find(`.${swiper.params.lazy.loadingClass}`).removeClass(swiper.params.lazy.loadingClass);\n });\n Object.assign(swiper.lazy, {\n load,\n loadInSlide\n });\n}","import { isObject } from '../../shared/utils.js';\nimport $ from '../../shared/dom.js';\nexport default function Thumb({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n let initialized = false;\n let swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n\n function onThumbClick() {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const clickedIndex = thumbsSwiper.clickedIndex;\n const clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n let slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n let currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n const prevIndex = swiper.slides.eq(currentIndex).prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n const nextIndex = swiper.slides.eq(currentIndex).nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n }\n\n function init() {\n const {\n thumbs: thumbsParams\n } = swiper.params;\n if (initialized) return false;\n initialized = true;\n const SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n\n function update(initial) {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n const slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView; // Activate thumbs\n\n let thumbsToActivate = 1;\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`).addClass(thumbActiveClass);\n }\n } else {\n for (let i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\n }\n }\n\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n let currentThumbsIndex = thumbsSwiper.activeIndex;\n let newThumbsIndex;\n let direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n const prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n const nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`).eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n }\n }\n\n on('beforeInit', () => {\n const {\n thumbs\n } = swiper.params;\n if (!thumbs || !thumbs.swiper) return;\n init();\n update(true);\n });\n on('slideChange update resize observerUpdate', () => {\n update();\n });\n on('setTransition', (_s, duration) => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', () => {\n const thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\n\n if (swiperCreated) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init,\n update\n });\n}","/*! js-cookie v3.0.1 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (key, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n key = encodeURIComponent(key)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n key + '=' + converter.write(value, key) + stringifiedAttributes)\n }\n\n function get (key) {\n if (typeof document === 'undefined' || (arguments.length && !key)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var foundKey = decodeURIComponent(parts[0]);\n jar[foundKey] = converter.read(value, foundKey);\n\n if (key === foundKey) {\n break\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar\n }\n\n return Object.create(\n {\n set: set,\n get: get,\n remove: function (key, attributes) {\n set(\n key,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport default api;\n"],"names":["module","exports","utils","require","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","transitionalDefaults","AxiosError","CanceledError","parseProtocol","platform","config","Promise","resolve","reject","onCanceled","requestData","data","requestHeaders","headers","responseType","withXSRFToken","done","cancelToken","unsubscribe","signal","removeEventListener","isFormData","isStandardBrowserEnv","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","allowAbsoluteUrls","onloadend","responseHeaders","getAllResponseHeaders","response","responseText","status","statusText","value","err","open","method","toUpperCase","params","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","indexOf","setTimeout","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","ETIMEDOUT","isFunction","xsrfValue","xsrfHeaderName","xsrfCookieName","read","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","withCredentials","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","type","abort","subscribe","aborted","protocol","protocols","ERR_BAD_REQUEST","send","bind","Axios","mergeConfig","defaults","formDataToJSON","axios","createInstance","defaultConfig","context","instance","prototype","extend","create","instanceConfig","CancelToken","isCancel","VERSION","toFormData","Cancel","all","promises","spread","isAxiosError","formToJSON","thing","isHTMLForm","FormData","executor","TypeError","resolvePromise","this","promise","token","then","_listeners","i","length","onfulfilled","_resolve","message","reason","throwIfRequested","listener","push","index","splice","source","c","call","ERR_CANCELED","name","inherits","__CANCEL__","InterceptorManager","dispatchRequest","validator","validators","interceptors","configOrUrl","undefined","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","serialize","encode","function","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","chain","Array","apply","concat","shift","newConfig","onFulfilled","onRejected","error","getUri","generateHTTPMethod","isForm","code","Error","captureStackTrace","constructor","stack","toJSON","description","number","fileName","lineNumber","columnNumber","descriptors","Object","defineProperties","defineProperty","from","customProps","axiosError","toFlatObject","obj","cause","assign","handlers","use","options","eject","id","clear","fn","h","isAbsoluteURL","combineURLs","requestedURL","isRelativeURL","transformData","normalizeHeaderName","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","config1","config2","getMergedValue","target","isPlainObject","isEmptyObject","isArray","slice","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","keys","configValue","validateStatus","ERR_BAD_RESPONSE","Math","floor","fns","toURLEncodedForm","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","toString","isFileList","contentType","hasJSONContentType","isObjectPayload","isObject","JSON","stringify","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","formSerializer","_FormData","env","rawValue","parser","encoder","isString","parse","trim","e","stringifySafely","JSONRequested","strictJSONParsing","maxContentLength","maxBodyLength","classes","Blob","str","charMap","replace","match","AxiosURLSearchParams","_pairs","append","_encode","map","pair","join","thisArg","arguments","hashmarkIndex","serializedParams","serializeFn","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","document","RegExp","decodeURIComponent","remove","now","formData","buildPath","isNumericKey","Number","isFinite","isLast","hasOwnProperty","arr","len","arrayToObject","entries","forEachEntry","matchAll","parsePropPath","test","payload","originURL","msie","navigator","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","host","search","hash","hostname","port","pathname","charAt","window","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","split","line","exec","callback","envFormData","isVisitable","removeBrackets","endsWith","renderKey","dots","predicates","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Symbol","toStringTag","iterator","convertValue","isDate","toISOString","isTypedArray","Buffer","some","isFlatArray","toArray","el","exposedHelpers","build","pop","URLSearchParams","helpers","isNode","deprecatedWarnings","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","schema","allowUnknown","ERR_BAD_OPTION_VALUE","result","ERR_BAD_OPTION","isBrowser","cache","kindOf","kindOfTest","getPrototypeOf","l","TypedArray","Uint8Array","_hasOwnProperty","pattern","ArrayBuffer","isView","pipe","product","assignValue","a","b","stripBOM","content","charCodeAt","superConstructor","props","sourceObj","destObj","filter","propFilter","merged","getOwnPropertyNames","searchString","position","String","lastIndex","next","regExp","matches","self","HASH_UNDEFINED","funcTag","genTag","reIsHostCtor","freeGlobal","global","freeSelf","root","Function","arrayIncludes","array","fromIndex","predicate","fromRight","baseFindIndex","baseIsNaN","baseIndexOf","arrayIncludesWith","comparator","cacheHas","has","setToArray","set","size","uid","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","IE_PROTO","funcToString","objectToString","reIsNative","Map","getNative","Set","nativeCreate","Hash","entry","ListCache","MapCache","SetCache","values","__data__","add","assocIndexOf","other","baseIsNative","func","tag","isHostObject","toSource","get","getMapData","createSet","object","getValue","iteratee","includes","isCommon","seen","outer","computed","seenIndex","baseUniq","Element","closest","t","n","ownerDocument","querySelectorAll","o","item","parentElement","bubbles","cancelable","detail","createEvent","initCustomEvent","CustomEvent","Event","r","requestAnimationFrame","cancelAnimationFrame","getTime","max","clearTimeout","M","q","ignore","header","topOnEmptyHash","speed","speedAsDuration","durationMax","durationMin","clip","offset","easing","customEasing","updateURL","popstate","emitEvents","I","substr","InvalidCharacterError","F","body","scrollHeight","documentElement","offsetHeight","clientHeight","L","parseInt","getComputedStyle","height","offsetTop","x","focus","activeElement","style","outline","scrollTo","H","anchor","toggle","dispatchEvent","A","O","C","cancelScroll","tagName","s","pageYOffset","querySelector","u","m","d","f","p","g","offsetParent","min","innerHeight","y","v","w","S","abs","E","history","pushState","smoothScroll","title","matchMedia","defaultPrevented","button","metaKey","ctrlKey","shiftKey","preventDefault","replaceState","state","animateScroll","destroy","src","ssrDocument","blur","nodeName","getElementById","initEvent","children","childNodes","getElementsByTagName","createElementNS","importNode","origin","getDocument","doc","ssrWindow","go","back","getPropertyValue","Image","screen","getWindow","win","Dom7","items","proto","__proto__","arrayFlat","res","arrayFilter","$","selector","html","toCreate","tempParent","innerHTML","qsa","nodeType","uniqueArray","arrayUnique","noTrigger","shortcut","args","trigger","on","Methods","addClass","classNames","classList","removeClass","hasClass","className","contains","toggleClass","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","eventType","targetSelector","capture","handleLiveEvent","eventData","dom7EventData","is","parents","k","handleEvent","j","events","event","dom7LiveListeners","proxyListener","dom7Listeners","off","handler","dom7proxy","evt","dataIndex","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","offsetWidth","parseFloat","outerHeight","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","each","text","textContent","compareWith","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","parentNode","find","foundElements","found","removeChild","methodName","writable","support","deviceCached","browser","nextTick","delay","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","node","to","noExtend","nextSource","HTMLElement","keysArray","nextIndex","nextKey","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","time","swiper","targetPosition","side","startPosition","translate","startTime","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","progress","easeProgress","cos","PI","currentPosition","overflow","getSupport","touch","DocumentTouch","passiveListener","supportsPassive","gestures","calcSupport","getDevice","overrides","ua","device","ios","android","screenWidth","width","screenHeight","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isSafari","isWebView","calcBrowser","priority","eventsListeners","destroyed","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","updateSize","$el","clientWidth","isHorizontal","isVertical","isNaN","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","centeredSlides","cssMode","slideSize","gridEnabled","grid","rows","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","ceil","activeIndex","swiperSlideOffset","offsetLeft","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","slideTo","initial","indexAsNumber","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","normalize","prevSnapIndex","normalizedSnapGrid","prevSnap","prevIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","loopedSlidesLimit","prependSlides","appendSlides","cloneNode","diff","loopDestroy","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","currentPos","touchEndTime","timeDiff","pathTree","lastClickTime","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","start","passiveListeners","passive","move","end","updateOnWindowResize","attachEvents","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","points","point","minRatio","sort","addClasses","prefix","resultClasses","suffixes","removeClasses","init","initialSlide","resizeObserver","createElements","simulateTouch","uniqueNavElements","preloadImages","updateOnImagesReady","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","update","moving","isLocked","cursor","unsetGrabCursor","wasLocked","lastSlideIndex","lastSlideRightEdge","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","desktop","swiperParams","passedParams","eventName","velocity","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","getSlideClasses","slideEl","updates","view","exact","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","prototypeGroup","protoMethod","observer","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","createElementIfNotDefined","checkProps","element","Navigation","getEl","toggleEl","disabled","disabledClass","lockClass","$nextEl","$prevEl","onPrevClick","onNextClick","hideOnClick","hiddenClass","navigationDisabledClass","_s","targetEl","pagination","clickable","isHidden","classesToSelector","Pagination","bulletSize","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","offsetProp","progressbarDirection","scale","scaleX","scaleY","render","paginationHTML","numberOfBullets","Lazy","lazy","checkInView","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","scrollingElement","elementClass","loadingClass","loadedClass","preloaderClass","scrollHandlerAttached","initialImageLoaded","loadInSlide","loadInDuplicate","$slideEl","$images","$imageEl","background","$pictureEl","sourceEl","$source","slideOriginalIndex","load","slideExist","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","isWindow","scrollElementWidth","scrollElementHeight","swiperOffset","inView","swiperCoord","sticky","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","api","converter","defaultAttributes","toUTCString","escape","stringifiedAttributes","attributeName","jar","parts","foundKey","withAttributes","withConverter","freeze"],"sourceRoot":""}