{"version":3,"file":"js/3185-bba227ae81b358c977c1.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/data.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/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/null.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/validator.js","webpack://caresul-app/./node_modules/axios/lib/utils.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');\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 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);\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, 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 var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\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 && cancel.type) ? new CanceledError() : 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 if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].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');\n\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\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;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\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) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\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 */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\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 {Object} config The config specific for this request (merged with this.defaults)\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 // 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);\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 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// 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.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 * 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 * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\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');\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 config.transformRequest\n );\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 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 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.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 '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 {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, 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);\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');\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 if (utils.isFormData(data) ||\n 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 isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\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 silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\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: require('./env/FormData')\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","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\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 * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\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\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","// eslint-disable-next-line strict\nmodule.exports = null;\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.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(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');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\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\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 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+|\\s+$/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 if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\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} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = 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\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(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\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 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};\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","config","Promise","resolve","reject","onCanceled","requestData","data","requestHeaders","headers","responseType","done","cancelToken","unsubscribe","signal","removeEventListener","isFormData","isStandardBrowserEnv","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","url","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","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","forEach","val","key","toLowerCase","setRequestHeader","isUndefined","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","type","abort","subscribe","aborted","protocol","ERR_BAD_REQUEST","send","bind","Axios","mergeConfig","axios","createInstance","defaultConfig","context","instance","prototype","extend","create","instanceConfig","CancelToken","isCancel","VERSION","toFormData","Cancel","all","promises","spread","isAxiosError","executor","TypeError","resolvePromise","this","promise","token","then","_listeners","i","l","length","onfulfilled","_resolve","message","reason","throwIfRequested","listener","push","index","splice","source","c","call","ERR_CANCELED","name","inherits","__CANCEL__","InterceptorManager","dispatchRequest","validator","validators","defaults","interceptors","configOrUrl","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","chain","Array","apply","concat","shift","newConfig","onFulfilled","onRejected","error","getUri","generateHTTPMethod","isForm","code","Error","toJSON","description","number","fileName","lineNumber","columnNumber","stack","descriptors","Object","defineProperties","defineProperty","from","customProps","axiosError","toFlatObject","obj","assign","handlers","use","options","eject","id","fn","h","isAbsoluteURL","combineURLs","requestedURL","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","config1","config2","getMergedValue","target","isPlainObject","isArray","slice","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","keys","configValue","validateStatus","ERR_BAD_RESPONSE","Math","floor","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","toString","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isFileList","isObjectPayload","isObject","contentType","_FormData","env","FormData","rawValue","parser","encoder","isString","JSON","parse","trim","e","stringify","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","args","arguments","encode","replace","serializedParams","parts","v","isDate","toISOString","join","hashmarkIndex","relativeURL","write","expires","path","domain","secure","cookie","isNumber","Date","toGMTString","document","match","RegExp","decodeURIComponent","remove","now","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","substr","exec","callback","arr","formData","convertValue","isTypedArray","Blob","Buffer","build","parentKey","fullKey","endsWith","toArray","el","append","pop","thing","deprecatedWarnings","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","schema","allowUnknown","ERR_BAD_OPTION_VALUE","result","ERR_BAD_OPTION","cache","kindOf","str","kindOfTest","getPrototypeOf","isFunction","hasOwnProperty","TypedArray","Uint8Array","constructor","pattern","ArrayBuffer","isView","pipe","product","assignValue","a","b","stripBOM","content","charCodeAt","superConstructor","props","sourceObj","destObj","filter","merged","getOwnPropertyNames","searchString","position","String","lastIndex","HASH_UNDEFINED","funcTag","genTag","reIsHostCtor","freeGlobal","global","freeSelf","self","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","entries","clear","entry","ListCache","MapCache","SetCache","values","__data__","add","assocIndexOf","other","baseIsNative","func","tag","isHostObject","toSource","get","getMapData","createSet","map","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","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","w","S","abs","E","history","pushState","smoothScroll","title","matchMedia","matches","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","trigger","on","Methods","addClass","classes","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","next","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","len","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","platform","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","Number","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","isFinite","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","foundKey","withAttributes","withConverter","freeze"],"sourceRoot":""}