{"version":3,"file":"js/bundle-main.js","mappings":"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","sources":["webpack://hdi/./node_modules/axios/index.js","webpack://hdi/./node_modules/axios/lib/adapters/xhr.js","webpack://hdi/./node_modules/axios/lib/axios.js","webpack://hdi/./node_modules/axios/lib/cancel/Cancel.js","webpack://hdi/./node_modules/axios/lib/cancel/CancelToken.js","webpack://hdi/./node_modules/axios/lib/cancel/isCancel.js","webpack://hdi/./node_modules/axios/lib/core/Axios.js","webpack://hdi/./node_modules/axios/lib/core/InterceptorManager.js","webpack://hdi/./node_modules/axios/lib/core/buildFullPath.js","webpack://hdi/./node_modules/axios/lib/core/createError.js","webpack://hdi/./node_modules/axios/lib/core/dispatchRequest.js","webpack://hdi/./node_modules/axios/lib/core/enhanceError.js","webpack://hdi/./node_modules/axios/lib/core/mergeConfig.js","webpack://hdi/./node_modules/axios/lib/core/settle.js","webpack://hdi/./node_modules/axios/lib/core/transformData.js","webpack://hdi/./node_modules/axios/lib/defaults.js","webpack://hdi/./node_modules/axios/lib/helpers/bind.js","webpack://hdi/./node_modules/axios/lib/helpers/buildURL.js","webpack://hdi/./node_modules/axios/lib/helpers/combineURLs.js","webpack://hdi/./node_modules/axios/lib/helpers/cookies.js","webpack://hdi/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://hdi/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://hdi/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://hdi/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://hdi/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://hdi/./node_modules/axios/lib/helpers/spread.js","webpack://hdi/./node_modules/axios/lib/helpers/validator.js","webpack://hdi/./node_modules/axios/lib/utils.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/raf.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/caf.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/extend.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/checkStorageValue.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/setLocalStorage.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/getBody.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/docElement.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/setFakeBody.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/resetFakeBody.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/addCSSRule.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/getCssRulesLength.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/forEach.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/classListSupport.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/hasClass.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/addClass.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/removeClass.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/hasAttr.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/getAttr.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/isNodeList.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/setAttrs.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/removeAttrs.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/arrayFromNodeList.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/hideElement.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/showElement.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/isVisible.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/whichProperty.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/getEndProperty.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/passiveOption.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/addEvents.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/removeEvents.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/events.js","webpack://hdi/./node_modules/tiny-slider/src/tiny-slider.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/calc.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/percentageLayout.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/mediaquerySupport.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/has3DTransforms.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/getSlideId.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/createStyleSheet.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/jsTransform.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/removeCSSRule.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/toDegree.js","webpack://hdi/./node_modules/tiny-slider/src/helpers/getTouchDirection.js","webpack://hdi/./src/js/blocks.js","webpack://hdi/./src/js/exchange-api.js","webpack://hdi/./src/js/footer.js","webpack://hdi/./src/js/form-installation.js","webpack://hdi/./src/js/form-trucks.js","webpack://hdi/./src/js/helpers.js","webpack://hdi/./src/js/menu-2023.js","webpack://hdi/./src/js/offices.js","webpack://hdi/./src/js/pages.js","webpack://hdi/./src/js/sidebar.js","webpack://hdi/./node_modules/bootstrap/js/dist/base-component.js","webpack://hdi/./node_modules/bootstrap/js/dist/collapse.js","webpack://hdi/./node_modules/bootstrap/js/dist/dom/data.js","webpack://hdi/./node_modules/bootstrap/js/dist/dom/event-handler.js","webpack://hdi/./node_modules/bootstrap/js/dist/dom/manipulator.js","webpack://hdi/./node_modules/bootstrap/js/dist/dom/selector-engine.js","webpack://hdi/./node_modules/bootstrap/js/dist/tab.js","webpack://hdi/./node_modules/bootstrap/js/dist/util/config.js","webpack://hdi/./node_modules/bootstrap/js/dist/util/index.js","webpack://hdi/./node_modules/fslightbox/index.js","webpack://hdi/webpack/bootstrap","webpack://hdi/webpack/runtime/compat get default export","webpack://hdi/webpack/runtime/define property getters","webpack://hdi/webpack/runtime/hasOwnProperty shorthand","webpack://hdi/webpack/runtime/make namespace object","webpack://hdi/./src/js/main.js"],"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 createError = require('../core/createError');\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\n if (utils.isFormData(requestData)) {\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 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(resolve, reject, 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(createError('Request aborted', config, 'ECONNABORTED', 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(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\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) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\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 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// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\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\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\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 this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\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\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 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(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\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, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\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 return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\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 Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\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 enhanceError = require('./enhanceError');\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 {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\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\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.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 };\n };\n return error;\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 var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\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 function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\nvar createError = require('./createError');\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(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\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 enhanceError = require('./core/enhanceError');\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: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\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 if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.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 enhanceError(e, this, 'E_JSON_PARSE');\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 validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\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 = 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\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 (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.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\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 pkg = require('./../../package.json');\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 = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.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 Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !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 TypeError('options must be an object');\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 TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\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/**\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 toString.call(val) === '[object Array]';\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 * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\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) && (val.buffer instanceof ArrayBuffer);\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 (toString.call(val) !== '[object 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 * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\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 URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\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\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};\n","var win = window;\n\nexport var raf = win.requestAnimationFrame\n || win.webkitRequestAnimationFrame\n || win.mozRequestAnimationFrame\n || win.msRequestAnimationFrame\n || function(cb) { return setTimeout(cb, 16); };\n","var win = window;\n\nexport var caf = win.cancelAnimationFrame\n || win.mozCancelAnimationFrame\n || function(id){ clearTimeout(id); };\n","export function extend() {\n var obj, name, copy,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length;\n\n for (; i < length; i++) {\n if ((obj = arguments[i]) !== null) {\n for (name in obj) {\n copy = obj[name];\n\n if (target === copy) {\n continue;\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n}","export function checkStorageValue (value) {\n return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value;\n}","export function setLocalStorage(storage, key, value, access) {\n if (access) {\n try { storage.setItem(key, value); } catch (e) {}\n }\n return value;\n}","export function getBody () {\n var doc = document,\n body = doc.body;\n\n if (!body) {\n body = doc.createElement('body');\n body.fake = true;\n }\n\n return body;\n}","export var docElement = document.documentElement;","import { docElement } from './docElement.js';\n\nexport function setFakeBody (body) {\n var docOverflow = '';\n if (body.fake) {\n docOverflow = docElement.style.overflow;\n //avoid crashing IE8, if background image is used\n body.style.background = '';\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n body.style.overflow = docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n return docOverflow;\n}","import { docElement } from './docElement.js';\n\nexport function resetFakeBody (body, docOverflow) {\n if (body.fake) {\n body.remove();\n docElement.style.overflow = docOverflow;\n // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n docElement.offsetHeight;\n }\n}","// cross browsers addRule method\nimport { raf } from './raf.js';\nexport function addCSSRule(sheet, selector, rules, index) {\n // return raf(function() {\n 'insertRule' in sheet ?\n sheet.insertRule(selector + '{' + rules + '}', index) :\n sheet.addRule(selector, rules, index);\n // });\n}","export function getCssRulesLength(sheet) {\n var rule = ('insertRule' in sheet) ? sheet.cssRules : sheet.rules;\n return rule.length;\n}","// https://toddmotto.com/ditch-the-array-foreach-call-nodelist-hack/\nexport function forEach (arr, callback, scope) {\n for (var i = 0, l = arr.length; i < l; i++) {\n callback.call(scope, arr[i], i);\n }\n}","export var classListSupport = 'classList' in document.createElement('_');","import { classListSupport } from './classListSupport.js';\n\nvar hasClass = classListSupport ?\n function (el, str) { return el.classList.contains(str); } :\n function (el, str) { return el.className.indexOf(str) >= 0; };\n\nexport { classListSupport, hasClass };","import { classListSupport, hasClass } from './hasClass.js';\nvar addClass = classListSupport ?\n function (el, str) {\n if (!hasClass(el, str)) { el.classList.add(str); }\n } :\n function (el, str) {\n if (!hasClass(el, str)) { el.className += ' ' + str; }\n };\n\nexport { addClass };","import { classListSupport, hasClass } from './hasClass.js';\nvar removeClass = classListSupport ?\n function (el, str) {\n if (hasClass(el, str)) { el.classList.remove(str); }\n } :\n function (el, str) {\n if (hasClass(el, str)) { el.className = el.className.replace(str, ''); }\n };\n\nexport { removeClass };","export function hasAttr(el, attr) {\n return el.hasAttribute(attr);\n}","export function getAttr(el, attr) {\n return el.getAttribute(attr);\n}","export function isNodeList(el) {\n // Only NodeList has the \"item()\" function\n return typeof el.item !== \"undefined\"; \n}","import { isNodeList } from \"./isNodeList.js\";\n\nexport function setAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n if (Object.prototype.toString.call(attrs) !== '[object Object]') { return; }\n\n for (var i = els.length; i--;) {\n for(var key in attrs) {\n els[i].setAttribute(key, attrs[key]);\n }\n }\n}","import { isNodeList } from \"./isNodeList.js\";\n\nexport function removeAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n attrs = (attrs instanceof Array) ? attrs : [attrs];\n\n var attrLength = attrs.length;\n for (var i = els.length; i--;) {\n for (var j = attrLength; j--;) {\n els[i].removeAttribute(attrs[j]);\n }\n }\n}","export function arrayFromNodeList (nl) {\n var arr = [];\n for (var i = 0, l = nl.length; i < l; i++) {\n arr.push(nl[i]);\n }\n return arr;\n}","export function hideElement(el, forceHide) {\n if (el.style.display !== 'none') { el.style.display = 'none'; }\n}","export function showElement(el, forceHide) {\n if (el.style.display === 'none') { el.style.display = ''; }\n}","export function isVisible(el) {\n return window.getComputedStyle(el).display !== 'none';\n}","export function whichProperty(props){\n if (typeof props === 'string') {\n var arr = [props],\n Props = props.charAt(0).toUpperCase() + props.substr(1),\n prefixes = ['Webkit', 'Moz', 'ms', 'O'];\n \n prefixes.forEach(function(prefix) {\n if (prefix !== 'ms' || props === 'transform') {\n arr.push(prefix + Props);\n }\n });\n\n props = arr;\n }\n\n var el = document.createElement('fakeelement'),\n len = props.length;\n for(var i = 0; i < props.length; i++){\n var prop = props[i];\n if( el.style[prop] !== undefined ){ return prop; }\n }\n\n return false; // explicit for ie9-\n}\n","// get transitionend, animationend based on transitionDuration\n// @propin: string\n// @propOut: string, first-letter uppercase\n// Usage: getEndProperty('WebkitTransitionDuration', 'Transition') => webkitTransitionEnd\nexport function getEndProperty(propIn, propOut) {\n var endProp = false;\n if (/^Webkit/.test(propIn)) {\n endProp = 'webkit' + propOut + 'End';\n } else if (/^O/.test(propIn)) {\n endProp = 'o' + propOut + 'End';\n } else if (propIn) {\n endProp = propOut.toLowerCase() + 'end';\n }\n return endProp;\n}","// Test via a getter in the options object to see if the passive property is accessed\nvar supportsPassive = false;\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n} catch (e) {}\nexport var passiveOption = supportsPassive ? { passive: true } : false;","import { passiveOption } from './passiveOption.js';\n\nexport function addEvents(el, obj, preventScrolling) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 && !preventScrolling ? passiveOption : false;\n el.addEventListener(prop, obj[prop], option);\n }\n}","import { passiveOption } from './passiveOption.js';\n\nexport function removeEvents(el, obj) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 ? passiveOption : false;\n el.removeEventListener(prop, obj[prop], option);\n }\n}","export function Events() {\n return {\n topics: {},\n on: function (eventName, fn) {\n this.topics[eventName] = this.topics[eventName] || [];\n this.topics[eventName].push(fn);\n },\n off: function(eventName, fn) {\n if (this.topics[eventName]) {\n for (var i = 0; i < this.topics[eventName].length; i++) {\n if (this.topics[eventName][i] === fn) {\n this.topics[eventName].splice(i, 1);\n break;\n }\n }\n }\n },\n emit: function (eventName, data) {\n data.type = eventName;\n if (this.topics[eventName]) {\n this.topics[eventName].forEach(function(fn) {\n fn(data, eventName);\n });\n }\n }\n };\n};","// Object.keys\nif (!Object.keys) {\n Object.keys = function(object) {\n var keys = [];\n for (var name in object) {\n if (Object.prototype.hasOwnProperty.call(object, name)) {\n keys.push(name);\n }\n }\n return keys;\n };\n}\n\n// ChildNode.remove\nif(!(\"remove\" in Element.prototype)){\n Element.prototype.remove = function(){\n if(this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n}\n\nimport { raf } from './helpers/raf.js';\nimport { caf } from './helpers/caf.js';\nimport { extend } from './helpers/extend.js';\nimport { checkStorageValue } from './helpers/checkStorageValue.js';\nimport { setLocalStorage } from './helpers/setLocalStorage.js';\nimport { getSlideId } from './helpers/getSlideId.js';\nimport { calc } from './helpers/calc.js';\nimport { percentageLayout } from './helpers/percentageLayout.js';\nimport { mediaquerySupport } from './helpers/mediaquerySupport.js';\nimport { createStyleSheet } from './helpers/createStyleSheet.js';\nimport { addCSSRule } from './helpers/addCSSRule.js';\nimport { removeCSSRule } from './helpers/removeCSSRule.js';\nimport { getCssRulesLength } from './helpers/getCssRulesLength.js';\nimport { toDegree } from './helpers/toDegree.js';\nimport { getTouchDirection } from './helpers/getTouchDirection.js';\nimport { forEach } from './helpers/forEach.js';\nimport { hasClass } from './helpers/hasClass.js';\nimport { addClass } from './helpers/addClass.js';\nimport { removeClass } from './helpers/removeClass.js';\nimport { hasAttr } from './helpers/hasAttr.js';\nimport { getAttr } from './helpers/getAttr.js';\nimport { setAttrs } from './helpers/setAttrs.js';\nimport { removeAttrs } from './helpers/removeAttrs.js';\nimport { arrayFromNodeList } from './helpers/arrayFromNodeList.js';\nimport { hideElement } from './helpers/hideElement.js';\nimport { showElement } from './helpers/showElement.js';\nimport { isVisible } from './helpers/isVisible.js';\nimport { whichProperty } from './helpers/whichProperty.js';\nimport { has3DTransforms } from './helpers/has3DTransforms.js';\nimport { getEndProperty } from './helpers/getEndProperty.js';\nimport { addEvents } from './helpers/addEvents.js';\nimport { removeEvents } from './helpers/removeEvents.js';\nimport { Events } from './helpers/events.js';\nimport { jsTransform } from './helpers/jsTransform.js';\n\nexport var tns = function(options) {\n options = extend({\n container: '.slider',\n mode: 'carousel',\n axis: 'horizontal',\n items: 1,\n gutter: 0,\n edgePadding: 0,\n fixedWidth: false,\n autoWidth: false,\n viewportMax: false,\n slideBy: 1,\n center: false,\n controls: true,\n controlsPosition: 'top',\n controlsText: ['prev', 'next'],\n controlsContainer: false,\n prevButton: false,\n nextButton: false,\n nav: true,\n navPosition: 'top',\n navContainer: false,\n navAsThumbnails: false,\n arrowKeys: false,\n speed: 300,\n autoplay: false,\n autoplayPosition: 'top',\n autoplayTimeout: 5000,\n autoplayDirection: 'forward',\n autoplayText: ['start', 'stop'],\n autoplayHoverPause: false,\n autoplayButton: false,\n autoplayButtonOutput: true,\n autoplayResetOnVisibility: true,\n animateIn: 'tns-fadeIn',\n animateOut: 'tns-fadeOut',\n animateNormal: 'tns-normal',\n animateDelay: false,\n loop: true,\n rewind: false,\n autoHeight: false,\n responsive: false,\n lazyload: false,\n lazyloadSelector: '.tns-lazy-img',\n touch: true,\n mouseDrag: false,\n swipeAngle: 15,\n nested: false,\n preventActionWhenRunning: false,\n preventScrollOnTouch: false,\n freezable: true,\n onInit: false,\n useLocalStorage: true,\n nonce: false\n }, options || {});\n\n var doc = document,\n win = window,\n KEYS = {\n ENTER: 13,\n SPACE: 32,\n LEFT: 37,\n RIGHT: 39\n },\n tnsStorage = {},\n localStorageAccess = options.useLocalStorage;\n\n if (localStorageAccess) {\n // check browser version and local storage access\n var browserInfo = navigator.userAgent;\n var uid = new Date;\n\n try {\n tnsStorage = win.localStorage;\n if (tnsStorage) {\n tnsStorage.setItem(uid, uid);\n localStorageAccess = tnsStorage.getItem(uid) == uid;\n tnsStorage.removeItem(uid);\n } else {\n localStorageAccess = false;\n }\n if (!localStorageAccess) { tnsStorage = {}; }\n } catch(e) {\n localStorageAccess = false;\n }\n\n if (localStorageAccess) {\n // remove storage when browser version changes\n if (tnsStorage['tnsApp'] && tnsStorage['tnsApp'] !== browserInfo) {\n ['tC', 'tPL', 'tMQ', 'tTf', 't3D', 'tTDu', 'tTDe', 'tADu', 'tADe', 'tTE', 'tAE'].forEach(function(item) { tnsStorage.removeItem(item); });\n }\n // update browserInfo\n localStorage['tnsApp'] = browserInfo;\n }\n }\n\n var CALC = tnsStorage['tC'] ? checkStorageValue(tnsStorage['tC']) : setLocalStorage(tnsStorage, 'tC', calc(), localStorageAccess),\n PERCENTAGELAYOUT = tnsStorage['tPL'] ? checkStorageValue(tnsStorage['tPL']) : setLocalStorage(tnsStorage, 'tPL', percentageLayout(), localStorageAccess),\n CSSMQ = tnsStorage['tMQ'] ? checkStorageValue(tnsStorage['tMQ']) : setLocalStorage(tnsStorage, 'tMQ', mediaquerySupport(), localStorageAccess),\n TRANSFORM = tnsStorage['tTf'] ? checkStorageValue(tnsStorage['tTf']) : setLocalStorage(tnsStorage, 'tTf', whichProperty('transform'), localStorageAccess),\n HAS3DTRANSFORMS = tnsStorage['t3D'] ? checkStorageValue(tnsStorage['t3D']) : setLocalStorage(tnsStorage, 't3D', has3DTransforms(TRANSFORM), localStorageAccess),\n TRANSITIONDURATION = tnsStorage['tTDu'] ? checkStorageValue(tnsStorage['tTDu']) : setLocalStorage(tnsStorage, 'tTDu', whichProperty('transitionDuration'), localStorageAccess),\n TRANSITIONDELAY = tnsStorage['tTDe'] ? checkStorageValue(tnsStorage['tTDe']) : setLocalStorage(tnsStorage, 'tTDe', whichProperty('transitionDelay'), localStorageAccess),\n ANIMATIONDURATION = tnsStorage['tADu'] ? checkStorageValue(tnsStorage['tADu']) : setLocalStorage(tnsStorage, 'tADu', whichProperty('animationDuration'), localStorageAccess),\n ANIMATIONDELAY = tnsStorage['tADe'] ? checkStorageValue(tnsStorage['tADe']) : setLocalStorage(tnsStorage, 'tADe', whichProperty('animationDelay'), localStorageAccess),\n TRANSITIONEND = tnsStorage['tTE'] ? checkStorageValue(tnsStorage['tTE']) : setLocalStorage(tnsStorage, 'tTE', getEndProperty(TRANSITIONDURATION, 'Transition'), localStorageAccess),\n ANIMATIONEND = tnsStorage['tAE'] ? checkStorageValue(tnsStorage['tAE']) : setLocalStorage(tnsStorage, 'tAE', getEndProperty(ANIMATIONDURATION, 'Animation'), localStorageAccess);\n\n // get element nodes from selectors\n var supportConsoleWarn = win.console && typeof win.console.warn === \"function\",\n tnsList = ['container', 'controlsContainer', 'prevButton', 'nextButton', 'navContainer', 'autoplayButton'],\n optionsElements = {};\n\n tnsList.forEach(function(item) {\n if (typeof options[item] === 'string') {\n var str = options[item],\n el = doc.querySelector(str);\n optionsElements[item] = str;\n\n if (el && el.nodeName) {\n options[item] = el;\n } else {\n if (supportConsoleWarn) { console.warn('Can\\'t find', options[item]); }\n return;\n }\n }\n });\n\n // make sure at least 1 slide\n if (options.container.children.length < 1) {\n if (supportConsoleWarn) { console.warn('No slides found in', options.container); }\n return;\n }\n\n // update options\n var responsive = options.responsive,\n nested = options.nested,\n carousel = options.mode === 'carousel' ? true : false;\n\n if (responsive) {\n // apply responsive[0] to options and remove it\n if (0 in responsive) {\n options = extend(options, responsive[0]);\n delete responsive[0];\n }\n\n var responsiveTem = {};\n for (var key in responsive) {\n var val = responsive[key];\n // update responsive\n // from: 300: 2\n // to:\n // 300: {\n // items: 2\n // }\n val = typeof val === 'number' ? {items: val} : val;\n responsiveTem[key] = val;\n }\n responsive = responsiveTem;\n responsiveTem = null;\n }\n\n // update options\n function updateOptions (obj) {\n for (var key in obj) {\n if (!carousel) {\n if (key === 'slideBy') { obj[key] = 'page'; }\n if (key === 'edgePadding') { obj[key] = false; }\n if (key === 'autoHeight') { obj[key] = false; }\n }\n\n // update responsive options\n if (key === 'responsive') { updateOptions(obj[key]); }\n }\n }\n if (!carousel) { updateOptions(options); }\n\n\n // === define and set variables ===\n if (!carousel) {\n options.axis = 'horizontal';\n options.slideBy = 'page';\n options.edgePadding = false;\n\n var animateIn = options.animateIn,\n animateOut = options.animateOut,\n animateDelay = options.animateDelay,\n animateNormal = options.animateNormal;\n }\n\n var horizontal = options.axis === 'horizontal' ? true : false,\n outerWrapper = doc.createElement('div'),\n innerWrapper = doc.createElement('div'),\n middleWrapper,\n container = options.container,\n containerParent = container.parentNode,\n containerHTML = container.outerHTML,\n slideItems = container.children,\n slideCount = slideItems.length,\n breakpointZone,\n windowWidth = getWindowWidth(),\n isOn = false;\n if (responsive) { setBreakpointZone(); }\n if (carousel) { container.className += ' tns-vpfix'; }\n\n // fixedWidth: viewport > rightBoundary > indexMax\n var autoWidth = options.autoWidth,\n fixedWidth = getOption('fixedWidth'),\n edgePadding = getOption('edgePadding'),\n gutter = getOption('gutter'),\n viewport = getViewportWidth(),\n center = getOption('center'),\n items = !autoWidth ? Math.floor(getOption('items')) : 1,\n slideBy = getOption('slideBy'),\n viewportMax = options.viewportMax || options.fixedWidthViewportWidth,\n arrowKeys = getOption('arrowKeys'),\n speed = getOption('speed'),\n rewind = options.rewind,\n loop = rewind ? false : options.loop,\n autoHeight = getOption('autoHeight'),\n controls = getOption('controls'),\n controlsText = getOption('controlsText'),\n nav = getOption('nav'),\n touch = getOption('touch'),\n mouseDrag = getOption('mouseDrag'),\n autoplay = getOption('autoplay'),\n autoplayTimeout = getOption('autoplayTimeout'),\n autoplayText = getOption('autoplayText'),\n autoplayHoverPause = getOption('autoplayHoverPause'),\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility'),\n sheet = createStyleSheet(null, getOption('nonce')),\n lazyload = options.lazyload,\n lazyloadSelector = options.lazyloadSelector,\n slidePositions, // collection of slide positions\n slideItemsOut = [],\n cloneCount = loop ? getCloneCountForLoop() : 0,\n slideCountNew = !carousel ? slideCount + cloneCount : slideCount + cloneCount * 2,\n hasRightDeadZone = (fixedWidth || autoWidth) && !loop ? true : false,\n rightBoundary = fixedWidth ? getRightBoundary() : null,\n updateIndexBeforeTransform = (!carousel || !loop) ? true : false,\n // transform\n transformAttr = horizontal ? 'left' : 'top',\n transformPrefix = '',\n transformPostfix = '',\n // index\n getIndexMax = (function () {\n if (fixedWidth) {\n return function() { return center && !loop ? slideCount - 1 : Math.ceil(- rightBoundary / (fixedWidth + gutter)); };\n } else if (autoWidth) {\n return function() {\n for (var i = 0; i < slideCountNew; i++) {\n if (slidePositions[i] >= - rightBoundary) { return i; }\n }\n };\n } else {\n return function() {\n if (center && carousel && !loop) {\n return slideCount - 1;\n } else {\n return loop || carousel ? Math.max(0, slideCountNew - Math.ceil(items)) : slideCountNew - 1;\n }\n };\n }\n })(),\n index = getStartIndex(getOption('startIndex')),\n indexCached = index,\n displayIndex = getCurrentSlide(),\n indexMin = 0,\n indexMax = !autoWidth ? getIndexMax() : null,\n // resize\n resizeTimer,\n preventActionWhenRunning = options.preventActionWhenRunning,\n swipeAngle = options.swipeAngle,\n moveDirectionExpected = swipeAngle ? '?' : true,\n running = false,\n onInit = options.onInit,\n events = new Events(),\n // id, class\n newContainerClasses = ' tns-slider tns-' + options.mode,\n slideId = container.id || getSlideId(),\n disable = getOption('disable'),\n disabled = false,\n freezable = options.freezable,\n freeze = freezable && !autoWidth ? getFreeze() : false,\n frozen = false,\n controlsEvents = {\n 'click': onControlsClick,\n 'keydown': onControlsKeydown\n },\n navEvents = {\n 'click': onNavClick,\n 'keydown': onNavKeydown\n },\n hoverEvents = {\n 'mouseover': mouseoverPause,\n 'mouseout': mouseoutRestart\n },\n visibilityEvent = {'visibilitychange': onVisibilityChange},\n docmentKeydownEvent = {'keydown': onDocumentKeydown},\n touchEvents = {\n 'touchstart': onPanStart,\n 'touchmove': onPanMove,\n 'touchend': onPanEnd,\n 'touchcancel': onPanEnd\n }, dragEvents = {\n 'mousedown': onPanStart,\n 'mousemove': onPanMove,\n 'mouseup': onPanEnd,\n 'mouseleave': onPanEnd\n },\n hasControls = hasOption('controls'),\n hasNav = hasOption('nav'),\n navAsThumbnails = autoWidth ? true : options.navAsThumbnails,\n hasAutoplay = hasOption('autoplay'),\n hasTouch = hasOption('touch'),\n hasMouseDrag = hasOption('mouseDrag'),\n slideActiveClass = 'tns-slide-active',\n slideClonedClass = 'tns-slide-cloned',\n imgCompleteClass = 'tns-complete',\n imgEvents = {\n 'load': onImgLoaded,\n 'error': onImgFailed\n },\n imgsComplete,\n liveregionCurrent,\n preventScroll = options.preventScrollOnTouch === 'force' ? true : false;\n\n // controls\n if (hasControls) {\n var controlsContainer = options.controlsContainer,\n controlsContainerHTML = options.controlsContainer ? options.controlsContainer.outerHTML : '',\n prevButton = options.prevButton,\n nextButton = options.nextButton,\n prevButtonHTML = options.prevButton ? options.prevButton.outerHTML : '',\n nextButtonHTML = options.nextButton ? options.nextButton.outerHTML : '',\n prevIsButton,\n nextIsButton;\n }\n\n // nav\n if (hasNav) {\n var navContainer = options.navContainer,\n navContainerHTML = options.navContainer ? options.navContainer.outerHTML : '',\n navItems,\n pages = autoWidth ? slideCount : getPages(),\n pagesCached = 0,\n navClicked = -1,\n navCurrentIndex = getCurrentNavIndex(),\n navCurrentIndexCached = navCurrentIndex,\n navActiveClass = 'tns-nav-active',\n navStr = 'Carousel Page ',\n navStrCurrent = ' (Current Slide)';\n }\n\n // autoplay\n if (hasAutoplay) {\n var autoplayDirection = options.autoplayDirection === 'forward' ? 1 : -1,\n autoplayButton = options.autoplayButton,\n autoplayButtonHTML = options.autoplayButton ? options.autoplayButton.outerHTML : '',\n autoplayHtmlStrings = ['', ' animation'],\n autoplayTimer,\n animating,\n autoplayHoverPaused,\n autoplayUserPaused,\n autoplayVisibilityPaused;\n }\n\n if (hasTouch || hasMouseDrag) {\n var initPosition = {},\n lastPosition = {},\n translateInit,\n disX,\n disY,\n panStart = false,\n rafIndex,\n getDist = horizontal ?\n function(a, b) { return a.x - b.x; } :\n function(a, b) { return a.y - b.y; };\n }\n\n // disable slider when slidecount <= items\n if (!autoWidth) { resetVariblesWhenDisable(disable || freeze); }\n\n if (TRANSFORM) {\n transformAttr = TRANSFORM;\n transformPrefix = 'translate';\n\n if (HAS3DTRANSFORMS) {\n transformPrefix += horizontal ? '3d(' : '3d(0px, ';\n transformPostfix = horizontal ? ', 0px, 0px)' : ', 0px)';\n } else {\n transformPrefix += horizontal ? 'X(' : 'Y(';\n transformPostfix = ')';\n }\n\n }\n\n if (carousel) { container.className = container.className.replace('tns-vpfix', ''); }\n initStructure();\n initSheet();\n initSliderTransform();\n\n // === COMMON FUNCTIONS === //\n function resetVariblesWhenDisable (condition) {\n if (condition) {\n controls = nav = touch = mouseDrag = arrowKeys = autoplay = autoplayHoverPause = autoplayResetOnVisibility = false;\n }\n }\n\n function getCurrentSlide () {\n var tem = carousel ? index - cloneCount : index;\n while (tem < 0) { tem += slideCount; }\n return tem%slideCount + 1;\n }\n\n function getStartIndex (ind) {\n ind = ind ? Math.max(0, Math.min(loop ? slideCount - 1 : slideCount - items, ind)) : 0;\n return carousel ? ind + cloneCount : ind;\n }\n\n function getAbsIndex (i) {\n if (i == null) { i = index; }\n\n if (carousel) { i -= cloneCount; }\n while (i < 0) { i += slideCount; }\n\n return Math.floor(i%slideCount);\n }\n\n function getCurrentNavIndex () {\n var absIndex = getAbsIndex(),\n result;\n\n result = navAsThumbnails ? absIndex :\n fixedWidth || autoWidth ? Math.ceil((absIndex + 1) * pages / slideCount - 1) :\n Math.floor(absIndex / items);\n\n // set active nav to the last one when reaches the right edge\n if (!loop && carousel && index === indexMax) { result = pages - 1; }\n\n return result;\n }\n\n function getItemsMax () {\n // fixedWidth or autoWidth while viewportMax is not available\n if (autoWidth || (fixedWidth && !viewportMax)) {\n return slideCount - 1;\n // most cases\n } else {\n var str = fixedWidth ? 'fixedWidth' : 'items',\n arr = [];\n\n if (fixedWidth || options[str] < slideCount) { arr.push(options[str]); }\n\n if (responsive) {\n for (var bp in responsive) {\n var tem = responsive[bp][str];\n if (tem && (fixedWidth || tem < slideCount)) { arr.push(tem); }\n }\n }\n\n if (!arr.length) { arr.push(0); }\n\n return Math.ceil(fixedWidth ? viewportMax / Math.min.apply(null, arr) : Math.max.apply(null, arr));\n }\n }\n\n function getCloneCountForLoop () {\n var itemsMax = getItemsMax(),\n result = carousel ? Math.ceil((itemsMax * 5 - slideCount)/2) : (itemsMax * 4 - slideCount);\n result = Math.max(itemsMax, result);\n\n return hasOption('edgePadding') ? result + 1 : result;\n }\n\n function getWindowWidth () {\n return win.innerWidth || doc.documentElement.clientWidth || doc.body.clientWidth;\n }\n\n function getInsertPosition (pos) {\n return pos === 'top' ? 'afterbegin' : 'beforeend';\n }\n\n function getClientWidth (el) {\n if (el == null) { return; }\n var div = doc.createElement('div'), rect, width;\n el.appendChild(div);\n rect = div.getBoundingClientRect();\n width = rect.right - rect.left;\n div.remove();\n return width || getClientWidth(el.parentNode);\n }\n\n function getViewportWidth () {\n var gap = edgePadding ? edgePadding * 2 - gutter : 0;\n return getClientWidth(containerParent) - gap;\n }\n\n function hasOption (item) {\n if (options[item]) {\n return true;\n } else {\n if (responsive) {\n for (var bp in responsive) {\n if (responsive[bp][item]) { return true; }\n }\n }\n return false;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n function getOption (item, ww) {\n if (ww == null) { ww = windowWidth; }\n\n if (item === 'items' && fixedWidth) {\n return Math.floor((viewport + gutter) / (fixedWidth + gutter)) || 1;\n\n } else {\n var result = options[item];\n\n if (responsive) {\n for (var bp in responsive) {\n // bp: convert string to number\n if (ww >= parseInt(bp)) {\n if (item in responsive[bp]) { result = responsive[bp][item]; }\n }\n }\n }\n\n if (item === 'slideBy' && result === 'page') { result = getOption('items'); }\n if (!carousel && (item === 'slideBy' || item === 'items')) { result = Math.floor(result); }\n\n return result;\n }\n }\n\n function getSlideMarginLeft (i) {\n return CALC ?\n CALC + '(' + i * 100 + '% / ' + slideCountNew + ')' :\n i * 100 / slideCountNew + '%';\n }\n\n function getInnerWrapperStyles (edgePaddingTem, gutterTem, fixedWidthTem, speedTem, autoHeightBP) {\n var str = '';\n\n if (edgePaddingTem !== undefined) {\n var gap = edgePaddingTem;\n if (gutterTem) { gap -= gutterTem; }\n str = horizontal ?\n 'margin: 0 ' + gap + 'px 0 ' + edgePaddingTem + 'px;' :\n 'margin: ' + edgePaddingTem + 'px 0 ' + gap + 'px 0;';\n } else if (gutterTem && !fixedWidthTem) {\n var gutterTemUnit = '-' + gutterTem + 'px',\n dir = horizontal ? gutterTemUnit + ' 0 0' : '0 ' + gutterTemUnit + ' 0';\n str = 'margin: 0 ' + dir + ';'\n }\n\n if (!carousel && autoHeightBP && TRANSITIONDURATION && speedTem) { str += getTransitionDurationStyle(speedTem); }\n return str;\n }\n\n function getContainerWidth (fixedWidthTem, gutterTem, itemsTem) {\n if (fixedWidthTem) {\n return (fixedWidthTem + gutterTem) * slideCountNew + 'px';\n } else {\n return CALC ?\n CALC + '(' + slideCountNew * 100 + '% / ' + itemsTem + ')' :\n slideCountNew * 100 / itemsTem + '%';\n }\n }\n\n function getSlideWidthStyle (fixedWidthTem, gutterTem, itemsTem) {\n var width;\n\n if (fixedWidthTem) {\n width = (fixedWidthTem + gutterTem) + 'px';\n } else {\n if (!carousel) { itemsTem = Math.floor(itemsTem); }\n var dividend = carousel ? slideCountNew : itemsTem;\n width = CALC ?\n CALC + '(100% / ' + dividend + ')' :\n 100 / dividend + '%';\n }\n\n width = 'width:' + width;\n\n // inner slider: overwrite outer slider styles\n return nested !== 'inner' ? width + ';' : width + ' !important;';\n }\n\n function getSlideGutterStyle (gutterTem) {\n var str = '';\n\n // gutter maybe interger || 0\n // so can't use 'if (gutter)'\n if (gutterTem !== false) {\n var prop = horizontal ? 'padding-' : 'margin-',\n dir = horizontal ? 'right' : 'bottom';\n str = prop + dir + ': ' + gutterTem + 'px;';\n }\n\n return str;\n }\n\n function getCSSPrefix (name, num) {\n var prefix = name.substring(0, name.length - num).toLowerCase();\n if (prefix) { prefix = '-' + prefix + '-'; }\n\n return prefix;\n }\n\n function getTransitionDurationStyle (speed) {\n return getCSSPrefix(TRANSITIONDURATION, 18) + 'transition-duration:' + speed / 1000 + 's;';\n }\n\n function getAnimationDurationStyle (speed) {\n return getCSSPrefix(ANIMATIONDURATION, 17) + 'animation-duration:' + speed / 1000 + 's;';\n }\n\n function initStructure () {\n var classOuter = 'tns-outer',\n classInner = 'tns-inner',\n hasGutter = hasOption('gutter');\n\n outerWrapper.className = classOuter;\n innerWrapper.className = classInner;\n outerWrapper.id = slideId + '-ow';\n innerWrapper.id = slideId + '-iw';\n\n // set container properties\n if (container.id === '') { container.id = slideId; }\n newContainerClasses += PERCENTAGELAYOUT || autoWidth ? ' tns-subpixel' : ' tns-no-subpixel';\n newContainerClasses += CALC ? ' tns-calc' : ' tns-no-calc';\n if (autoWidth) { newContainerClasses += ' tns-autowidth'; }\n newContainerClasses += ' tns-' + options.axis;\n container.className += newContainerClasses;\n\n // add constrain layer for carousel\n if (carousel) {\n middleWrapper = doc.createElement('div');\n middleWrapper.id = slideId + '-mw';\n middleWrapper.className = 'tns-ovh';\n\n outerWrapper.appendChild(middleWrapper);\n middleWrapper.appendChild(innerWrapper);\n } else {\n outerWrapper.appendChild(innerWrapper);\n }\n\n if (autoHeight) {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.className += ' tns-ah';\n }\n\n containerParent.insertBefore(outerWrapper, container);\n innerWrapper.appendChild(container);\n\n // add id, class, aria attributes\n // before clone slides\n forEach(slideItems, function(item, i) {\n addClass(item, 'tns-item');\n if (!item.id) { item.id = slideId + '-item' + i; }\n if (!carousel && animateNormal) { addClass(item, animateNormal); }\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n });\n\n // ## clone slides\n // carousel: n + slides + n\n // gallery: slides + n\n if (cloneCount) {\n var fragmentBefore = doc.createDocumentFragment(),\n fragmentAfter = doc.createDocumentFragment();\n\n for (var j = cloneCount; j--;) {\n var num = j%slideCount,\n cloneFirst = slideItems[num].cloneNode(true);\n addClass(cloneFirst, slideClonedClass);\n removeAttrs(cloneFirst, 'id');\n fragmentAfter.insertBefore(cloneFirst, fragmentAfter.firstChild);\n\n if (carousel) {\n var cloneLast = slideItems[slideCount - 1 - num].cloneNode(true);\n addClass(cloneLast, slideClonedClass);\n removeAttrs(cloneLast, 'id');\n fragmentBefore.appendChild(cloneLast);\n }\n }\n\n container.insertBefore(fragmentBefore, container.firstChild);\n container.appendChild(fragmentAfter);\n slideItems = container.children;\n }\n\n }\n\n function initSliderTransform () {\n // ## images loaded/failed\n if (hasOption('autoHeight') || autoWidth || !horizontal) {\n var imgs = container.querySelectorAll('img');\n\n // add img load event listener\n forEach(imgs, function(img) {\n var src = img.src;\n\n if (!lazyload) {\n // not data img\n if (src && src.indexOf('data:image') < 0) {\n img.src = '';\n addEvents(img, imgEvents);\n addClass(img, 'loading');\n\n img.src = src;\n // data img\n } else {\n imgLoaded(img);\n }\n }\n });\n\n // set imgsComplete\n raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), function() { imgsComplete = true; }); });\n\n // reset imgs for auto height: check visible imgs only\n if (hasOption('autoHeight')) { imgs = getImageArray(index, Math.min(index + items - 1, slideCountNew - 1)); }\n\n lazyload ? initSliderTransformStyleCheck() : raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), initSliderTransformStyleCheck); });\n\n } else {\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n }\n\n function initSliderTransformStyleCheck () {\n if (autoWidth && slideCount > 1) {\n // check styles application\n var num = loop ? index : slideCount - 1;\n\n (function stylesApplicationCheck() {\n var left = slideItems[num].getBoundingClientRect().left;\n var right = slideItems[num - 1].getBoundingClientRect().right;\n\n (Math.abs(left - right) <= 1) ?\n initSliderTransformCore() :\n setTimeout(function(){ stylesApplicationCheck() }, 16);\n })();\n\n } else {\n initSliderTransformCore();\n }\n }\n\n\n function initSliderTransformCore () {\n // run Fn()s which are rely on image loading\n if (!horizontal || autoWidth) {\n setSlidePositions();\n\n if (autoWidth) {\n rightBoundary = getRightBoundary();\n if (freezable) { freeze = getFreeze(); }\n indexMax = getIndexMax(); // <= slidePositions, rightBoundary <=\n resetVariblesWhenDisable(disable || freeze);\n } else {\n updateContentWrapperHeight();\n }\n }\n\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n\n function initSheet () {\n // gallery:\n // set animation classes and left value for gallery slider\n if (!carousel) {\n for (var i = index, l = index + Math.min(slideCount, items); i < l; i++) {\n var item = slideItems[i];\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // #### LAYOUT\n\n // ## INLINE-BLOCK VS FLOAT\n\n // ## PercentageLayout:\n // slides: inline-block\n // remove blank space between slides by set font-size: 0\n\n // ## Non PercentageLayout:\n // slides: float\n // margin-right: -100%\n // margin-left: ~\n\n // Resource: https://docs.google.com/spreadsheets/d/147up245wwTXeQYve3BRSAD4oVcvQmuGsFteJOeA5xNQ/edit?usp=sharing\n if (horizontal) {\n if (PERCENTAGELAYOUT || autoWidth) {\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', 'font-size:' + win.getComputedStyle(slideItems[0]).fontSize + ';', getCssRulesLength(sheet));\n addCSSRule(sheet, '#' + slideId, 'font-size:0;', getCssRulesLength(sheet));\n } else if (carousel) {\n forEach(slideItems, function (slide, i) {\n slide.style.marginLeft = getSlideMarginLeft(i);\n });\n }\n }\n\n\n // ## BASIC STYLES\n if (CSSMQ) {\n // middle wrapper style\n if (TRANSITIONDURATION) {\n var str = middleWrapper && options.autoHeight ? getTransitionDurationStyle(options.speed) : '';\n addCSSRule(sheet, '#' + slideId + '-mw', str, getCssRulesLength(sheet));\n }\n\n // inner wrapper styles\n str = getInnerWrapperStyles(options.edgePadding, options.gutter, options.fixedWidth, options.speed, options.autoHeight);\n addCSSRule(sheet, '#' + slideId + '-iw', str, getCssRulesLength(sheet));\n\n // container styles\n if (carousel) {\n str = horizontal && !autoWidth ? 'width:' + getContainerWidth(options.fixedWidth, options.gutter, options.items) + ';' : '';\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n addCSSRule(sheet, '#' + slideId, str, getCssRulesLength(sheet));\n }\n\n // slide styles\n str = horizontal && !autoWidth ? getSlideWidthStyle(options.fixedWidth, options.gutter, options.items) : '';\n if (options.gutter) { str += getSlideGutterStyle(options.gutter); }\n // set gallery items transition-duration\n if (!carousel) {\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n if (ANIMATIONDURATION) { str += getAnimationDurationStyle(speed); }\n }\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n\n // non CSS mediaqueries: IE8\n // ## update inner wrapper, container, slides if needed\n // set inline styles for inner wrapper & container\n // insert stylesheet (one line) for slides only (since slides are many)\n } else {\n // middle wrapper styles\n update_carousel_transition_duration();\n\n // inner wrapper styles\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, autoHeight);\n\n // container styles\n if (carousel && horizontal && !autoWidth) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = horizontal && !autoWidth ? getSlideWidthStyle(fixedWidth, gutter, items) : '';\n if (gutter) { str += getSlideGutterStyle(gutter); }\n\n // append to the last line\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n }\n\n // ## MEDIAQUERIES\n if (responsive && CSSMQ) {\n for (var bp in responsive) {\n // bp: convert string to number\n bp = parseInt(bp);\n\n var opts = responsive[bp],\n str = '',\n middleWrapperStr = '',\n innerWrapperStr = '',\n containerStr = '',\n slideStr = '',\n itemsBP = !autoWidth ? getOption('items', bp) : null,\n fixedWidthBP = getOption('fixedWidth', bp),\n speedBP = getOption('speed', bp),\n edgePaddingBP = getOption('edgePadding', bp),\n autoHeightBP = getOption('autoHeight', bp),\n gutterBP = getOption('gutter', bp);\n\n // middle wrapper string\n if (TRANSITIONDURATION && middleWrapper && getOption('autoHeight', bp) && 'speed' in opts) {\n middleWrapperStr = '#' + slideId + '-mw{' + getTransitionDurationStyle(speedBP) + '}';\n }\n\n // inner wrapper string\n if ('edgePadding' in opts || 'gutter' in opts) {\n innerWrapperStr = '#' + slideId + '-iw{' + getInnerWrapperStyles(edgePaddingBP, gutterBP, fixedWidthBP, speedBP, autoHeightBP) + '}';\n }\n\n // container string\n if (carousel && horizontal && !autoWidth && ('fixedWidth' in opts || 'items' in opts || (fixedWidth && 'gutter' in opts))) {\n containerStr = 'width:' + getContainerWidth(fixedWidthBP, gutterBP, itemsBP) + ';';\n }\n if (TRANSITIONDURATION && 'speed' in opts) {\n containerStr += getTransitionDurationStyle(speedBP);\n }\n if (containerStr) {\n containerStr = '#' + slideId + '{' + containerStr + '}';\n }\n\n // slide string\n if ('fixedWidth' in opts || (fixedWidth && 'gutter' in opts) || !carousel && 'items' in opts) {\n slideStr += getSlideWidthStyle(fixedWidthBP, gutterBP, itemsBP);\n }\n if ('gutter' in opts) {\n slideStr += getSlideGutterStyle(gutterBP);\n }\n // set gallery items transition-duration\n if (!carousel && 'speed' in opts) {\n if (TRANSITIONDURATION) { slideStr += getTransitionDurationStyle(speedBP); }\n if (ANIMATIONDURATION) { slideStr += getAnimationDurationStyle(speedBP); }\n }\n if (slideStr) { slideStr = '#' + slideId + ' > .tns-item{' + slideStr + '}'; }\n\n // add up\n str = middleWrapperStr + innerWrapperStr + containerStr + slideStr;\n\n if (str) {\n sheet.insertRule('@media (min-width: ' + bp / 16 + 'em) {' + str + '}', sheet.cssRules.length);\n }\n }\n }\n }\n\n function initTools () {\n // == slides ==\n updateSlideStatus();\n\n // == live region ==\n outerWrapper.insertAdjacentHTML('afterbegin', '
slide ' + getLiveRegionStr() + ' of ' + slideCount + '
');\n liveregionCurrent = outerWrapper.querySelector('.tns-liveregion .current');\n\n // == autoplayInit ==\n if (hasAutoplay) {\n var txt = autoplay ? 'stop' : 'start';\n if (autoplayButton) {\n setAttrs(autoplayButton, {'data-action': txt});\n } else if (options.autoplayButtonOutput) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.autoplayPosition), '');\n autoplayButton = outerWrapper.querySelector('[data-action]');\n }\n\n // add event\n if (autoplayButton) {\n addEvents(autoplayButton, {'click': toggleAutoplay});\n }\n\n if (autoplay) {\n startAutoplay();\n if (autoplayHoverPause) { addEvents(container, hoverEvents); }\n if (autoplayResetOnVisibility) { addEvents(container, visibilityEvent); }\n }\n }\n\n // == navInit ==\n if (hasNav) {\n var initIndex = !carousel ? 0 : cloneCount;\n // customized nav\n // will not hide the navs in case they're thumbnails\n if (navContainer) {\n setAttrs(navContainer, {'aria-label': 'Carousel Pagination'});\n navItems = navContainer.children;\n forEach(navItems, function(item, i) {\n setAttrs(item, {\n 'data-nav': i,\n 'tabindex': '-1',\n 'aria-label': navStr + (i + 1),\n 'aria-controls': slideId,\n });\n });\n\n // generated nav\n } else {\n var navHtml = '',\n hiddenStr = navAsThumbnails ? '' : 'style=\"display:none\"';\n for (var i = 0; i < slideCount; i++) {\n // hide nav items by default\n navHtml += '';\n }\n navHtml = '
' + navHtml + '
';\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.navPosition), navHtml);\n\n navContainer = outerWrapper.querySelector('.tns-nav');\n navItems = navContainer.children;\n }\n\n updateNavVisibility();\n\n // add transition\n if (TRANSITIONDURATION) {\n var prefix = TRANSITIONDURATION.substring(0, TRANSITIONDURATION.length - 18).toLowerCase(),\n str = 'transition: all ' + speed / 1000 + 's';\n\n if (prefix) {\n str = '-' + prefix + '-' + str;\n }\n\n addCSSRule(sheet, '[aria-controls^=' + slideId + '-item]', str, getCssRulesLength(sheet));\n }\n\n setAttrs(navItems[navCurrentIndex], {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navItems[navCurrentIndex], 'tabindex');\n addClass(navItems[navCurrentIndex], navActiveClass);\n\n // add events\n addEvents(navContainer, navEvents);\n }\n\n\n\n // == controlsInit ==\n if (hasControls) {\n if (!controlsContainer && (!prevButton || !nextButton)) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.controlsPosition), '
');\n\n controlsContainer = outerWrapper.querySelector('.tns-controls');\n }\n\n if (!prevButton || !nextButton) {\n prevButton = controlsContainer.children[0];\n nextButton = controlsContainer.children[1];\n }\n\n if (options.controlsContainer) {\n setAttrs(controlsContainer, {\n 'aria-label': 'Carousel Navigation',\n 'tabindex': '0'\n });\n }\n\n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs([prevButton, nextButton], {\n 'aria-controls': slideId,\n 'tabindex': '-1',\n });\n }\n\n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs(prevButton, {'data-controls' : 'prev'});\n setAttrs(nextButton, {'data-controls' : 'next'});\n }\n\n prevIsButton = isButton(prevButton);\n nextIsButton = isButton(nextButton);\n\n updateControlsStatus();\n\n // add events\n if (controlsContainer) {\n addEvents(controlsContainer, controlsEvents);\n } else {\n addEvents(prevButton, controlsEvents);\n addEvents(nextButton, controlsEvents);\n }\n }\n\n // hide tools if needed\n disableUI();\n }\n\n function initEvents () {\n // add events\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n addEvents(container, eve);\n }\n\n if (touch) { addEvents(container, touchEvents, options.preventScrollOnTouch); }\n if (mouseDrag) { addEvents(container, dragEvents); }\n if (arrowKeys) { addEvents(doc, docmentKeydownEvent); }\n\n if (nested === 'inner') {\n events.on('outerResized', function () {\n resizeTasks();\n events.emit('innerLoaded', info());\n });\n } else if (responsive || fixedWidth || autoWidth || autoHeight || !horizontal) {\n addEvents(win, {'resize': onResize});\n }\n\n if (autoHeight) {\n if (nested === 'outer') {\n events.on('innerLoaded', doAutoHeight);\n } else if (!disable) { doAutoHeight(); }\n }\n\n doLazyLoad();\n if (disable) { disableSlider(); } else if (freeze) { freezeSlider(); }\n\n events.on('indexChanged', additionalUpdates);\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n if (typeof onInit === 'function') { onInit(info()); }\n isOn = true;\n }\n\n function destroy () {\n // sheet\n sheet.disabled = true;\n if (sheet.ownerNode) { sheet.ownerNode.remove(); }\n\n // remove win event listeners\n removeEvents(win, {'resize': onResize});\n\n // arrowKeys, controls, nav\n if (arrowKeys) { removeEvents(doc, docmentKeydownEvent); }\n if (controlsContainer) { removeEvents(controlsContainer, controlsEvents); }\n if (navContainer) { removeEvents(navContainer, navEvents); }\n\n // autoplay\n removeEvents(container, hoverEvents);\n removeEvents(container, visibilityEvent);\n if (autoplayButton) { removeEvents(autoplayButton, {'click': toggleAutoplay}); }\n if (autoplay) { clearInterval(autoplayTimer); }\n\n // container\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n removeEvents(container, eve);\n }\n if (touch) { removeEvents(container, touchEvents); }\n if (mouseDrag) { removeEvents(container, dragEvents); }\n\n // cache Object values in options && reset HTML\n var htmlList = [containerHTML, controlsContainerHTML, prevButtonHTML, nextButtonHTML, navContainerHTML, autoplayButtonHTML];\n\n tnsList.forEach(function(item, i) {\n var el = item === 'container' ? outerWrapper : options[item];\n\n if (typeof el === 'object' && el) {\n var prevEl = el.previousElementSibling ? el.previousElementSibling : false,\n parentEl = el.parentNode;\n el.outerHTML = htmlList[i];\n options[item] = prevEl ? prevEl.nextElementSibling : parentEl.firstElementChild;\n }\n });\n\n\n // reset variables\n tnsList = animateIn = animateOut = animateDelay = animateNormal = horizontal = outerWrapper = innerWrapper = container = containerParent = containerHTML = slideItems = slideCount = breakpointZone = windowWidth = autoWidth = fixedWidth = edgePadding = gutter = viewport = items = slideBy = viewportMax = arrowKeys = speed = rewind = loop = autoHeight = sheet = lazyload = slidePositions = slideItemsOut = cloneCount = slideCountNew = hasRightDeadZone = rightBoundary = updateIndexBeforeTransform = transformAttr = transformPrefix = transformPostfix = getIndexMax = index = indexCached = indexMin = indexMax = resizeTimer = swipeAngle = moveDirectionExpected = running = onInit = events = newContainerClasses = slideId = disable = disabled = freezable = freeze = frozen = controlsEvents = navEvents = hoverEvents = visibilityEvent = docmentKeydownEvent = touchEvents = dragEvents = hasControls = hasNav = navAsThumbnails = hasAutoplay = hasTouch = hasMouseDrag = slideActiveClass = imgCompleteClass = imgEvents = imgsComplete = controls = controlsText = controlsContainer = controlsContainerHTML = prevButton = nextButton = prevIsButton = nextIsButton = nav = navContainer = navContainerHTML = navItems = pages = pagesCached = navClicked = navCurrentIndex = navCurrentIndexCached = navActiveClass = navStr = navStrCurrent = autoplay = autoplayTimeout = autoplayDirection = autoplayText = autoplayHoverPause = autoplayButton = autoplayButtonHTML = autoplayResetOnVisibility = autoplayHtmlStrings = autoplayTimer = animating = autoplayHoverPaused = autoplayUserPaused = autoplayVisibilityPaused = initPosition = lastPosition = translateInit = disX = disY = panStart = rafIndex = getDist = touch = mouseDrag = null;\n // check variables\n // [animateIn, animateOut, animateDelay, animateNormal, horizontal, outerWrapper, innerWrapper, container, containerParent, containerHTML, slideItems, slideCount, breakpointZone, windowWidth, autoWidth, fixedWidth, edgePadding, gutter, viewport, items, slideBy, viewportMax, arrowKeys, speed, rewind, loop, autoHeight, sheet, lazyload, slidePositions, slideItemsOut, cloneCount, slideCountNew, hasRightDeadZone, rightBoundary, updateIndexBeforeTransform, transformAttr, transformPrefix, transformPostfix, getIndexMax, index, indexCached, indexMin, indexMax, resizeTimer, swipeAngle, moveDirectionExpected, running, onInit, events, newContainerClasses, slideId, disable, disabled, freezable, freeze, frozen, controlsEvents, navEvents, hoverEvents, visibilityEvent, docmentKeydownEvent, touchEvents, dragEvents, hasControls, hasNav, navAsThumbnails, hasAutoplay, hasTouch, hasMouseDrag, slideActiveClass, imgCompleteClass, imgEvents, imgsComplete, controls, controlsText, controlsContainer, controlsContainerHTML, prevButton, nextButton, prevIsButton, nextIsButton, nav, navContainer, navContainerHTML, navItems, pages, pagesCached, navClicked, navCurrentIndex, navCurrentIndexCached, navActiveClass, navStr, navStrCurrent, autoplay, autoplayTimeout, autoplayDirection, autoplayText, autoplayHoverPause, autoplayButton, autoplayButtonHTML, autoplayResetOnVisibility, autoplayHtmlStrings, autoplayTimer, animating, autoplayHoverPaused, autoplayUserPaused, autoplayVisibilityPaused, initPosition, lastPosition, translateInit, disX, disY, panStart, rafIndex, getDist, touch, mouseDrag ].forEach(function(item) { if (item !== null) { console.log(item); } });\n\n for (var a in this) {\n if (a !== 'rebuild') { this[a] = null; }\n }\n isOn = false;\n }\n\n// === ON RESIZE ===\n // responsive || fixedWidth || autoWidth || !horizontal\n function onResize (e) {\n raf(function(){ resizeTasks(getEvent(e)); });\n }\n\n function resizeTasks (e) {\n if (!isOn) { return; }\n if (nested === 'outer') { events.emit('outerResized', info(e)); }\n windowWidth = getWindowWidth();\n var bpChanged,\n breakpointZoneTem = breakpointZone,\n needContainerTransform = false;\n\n if (responsive) {\n setBreakpointZone();\n bpChanged = breakpointZoneTem !== breakpointZone;\n // if (hasRightDeadZone) { needContainerTransform = true; } // *?\n if (bpChanged) { events.emit('newBreakpointStart', info(e)); }\n }\n\n var indChanged,\n itemsChanged,\n itemsTem = items,\n disableTem = disable,\n freezeTem = freeze,\n arrowKeysTem = arrowKeys,\n controlsTem = controls,\n navTem = nav,\n touchTem = touch,\n mouseDragTem = mouseDrag,\n autoplayTem = autoplay,\n autoplayHoverPauseTem = autoplayHoverPause,\n autoplayResetOnVisibilityTem = autoplayResetOnVisibility,\n indexTem = index;\n\n if (bpChanged) {\n var fixedWidthTem = fixedWidth,\n autoHeightTem = autoHeight,\n controlsTextTem = controlsText,\n centerTem = center,\n autoplayTextTem = autoplayText;\n\n if (!CSSMQ) {\n var gutterTem = gutter,\n edgePaddingTem = edgePadding;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n arrowKeys = getOption('arrowKeys');\n controls = getOption('controls');\n nav = getOption('nav');\n touch = getOption('touch');\n center = getOption('center');\n mouseDrag = getOption('mouseDrag');\n autoplay = getOption('autoplay');\n autoplayHoverPause = getOption('autoplayHoverPause');\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility');\n\n if (bpChanged) {\n disable = getOption('disable');\n fixedWidth = getOption('fixedWidth');\n speed = getOption('speed');\n autoHeight = getOption('autoHeight');\n controlsText = getOption('controlsText');\n autoplayText = getOption('autoplayText');\n autoplayTimeout = getOption('autoplayTimeout');\n\n if (!CSSMQ) {\n edgePadding = getOption('edgePadding');\n gutter = getOption('gutter');\n }\n }\n // update options\n resetVariblesWhenDisable(disable);\n\n viewport = getViewportWidth(); // <= edgePadding, gutter\n if ((!horizontal || autoWidth) && !disable) {\n setSlidePositions();\n if (!horizontal) {\n updateContentWrapperHeight(); // <= setSlidePositions\n needContainerTransform = true;\n }\n }\n if (fixedWidth || autoWidth) {\n rightBoundary = getRightBoundary(); // autoWidth: <= viewport, slidePositions, gutter\n // fixedWidth: <= viewport, fixedWidth, gutter\n indexMax = getIndexMax(); // autoWidth: <= rightBoundary, slidePositions\n // fixedWidth: <= rightBoundary, fixedWidth, gutter\n }\n\n if (bpChanged || fixedWidth) {\n items = getOption('items');\n slideBy = getOption('slideBy');\n itemsChanged = items !== itemsTem;\n\n if (itemsChanged) {\n if (!fixedWidth && !autoWidth) { indexMax = getIndexMax(); } // <= items\n // check index before transform in case\n // slider reach the right edge then items become bigger\n updateIndex();\n }\n }\n\n if (bpChanged) {\n if (disable !== disableTem) {\n if (disable) {\n disableSlider();\n } else {\n enableSlider(); // <= slidePositions, rightBoundary, indexMax\n }\n }\n }\n\n if (freezable && (bpChanged || fixedWidth || autoWidth)) {\n freeze = getFreeze(); // <= autoWidth: slidePositions, gutter, viewport, rightBoundary\n // <= fixedWidth: fixedWidth, gutter, rightBoundary\n // <= others: items\n\n if (freeze !== freezeTem) {\n if (freeze) {\n doContainerTransform(getContainerTransformValue(getStartIndex(0)));\n freezeSlider();\n } else {\n unfreezeSlider();\n needContainerTransform = true;\n }\n }\n }\n\n resetVariblesWhenDisable(disable || freeze); // controls, nav, touch, mouseDrag, arrowKeys, autoplay, autoplayHoverPause, autoplayResetOnVisibility\n if (!autoplay) { autoplayHoverPause = autoplayResetOnVisibility = false; }\n\n if (arrowKeys !== arrowKeysTem) {\n arrowKeys ?\n addEvents(doc, docmentKeydownEvent) :\n removeEvents(doc, docmentKeydownEvent);\n }\n if (controls !== controlsTem) {\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n } else {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n if (nav !== navTem) {\n if (nav) {\n showElement(navContainer);\n updateNavVisibility();\n } else {\n hideElement(navContainer)\n }\n }\n if (touch !== touchTem) {\n touch ?\n addEvents(container, touchEvents, options.preventScrollOnTouch) :\n removeEvents(container, touchEvents);\n }\n if (mouseDrag !== mouseDragTem) {\n mouseDrag ?\n addEvents(container, dragEvents) :\n removeEvents(container, dragEvents);\n }\n if (autoplay !== autoplayTem) {\n if (autoplay) {\n if (autoplayButton) { showElement(autoplayButton); }\n if (!animating && !autoplayUserPaused) { startAutoplay(); }\n } else {\n if (autoplayButton) { hideElement(autoplayButton); }\n if (animating) { stopAutoplay(); }\n }\n }\n if (autoplayHoverPause !== autoplayHoverPauseTem) {\n autoplayHoverPause ?\n addEvents(container, hoverEvents) :\n removeEvents(container, hoverEvents);\n }\n if (autoplayResetOnVisibility !== autoplayResetOnVisibilityTem) {\n autoplayResetOnVisibility ?\n addEvents(doc, visibilityEvent) :\n removeEvents(doc, visibilityEvent);\n }\n\n if (bpChanged) {\n if (fixedWidth !== fixedWidthTem || center !== centerTem) { needContainerTransform = true; }\n\n if (autoHeight !== autoHeightTem) {\n if (!autoHeight) { innerWrapper.style.height = ''; }\n }\n\n if (controls && controlsText !== controlsTextTem) {\n prevButton.innerHTML = controlsText[0];\n nextButton.innerHTML = controlsText[1];\n }\n\n if (autoplayButton && autoplayText !== autoplayTextTem) {\n var i = autoplay ? 1 : 0,\n html = autoplayButton.innerHTML,\n len = html.length - autoplayTextTem[i].length;\n if (html.substring(len) === autoplayTextTem[i]) {\n autoplayButton.innerHTML = html.substring(0, len) + autoplayText[i];\n }\n }\n } else {\n if (center && (fixedWidth || autoWidth)) { needContainerTransform = true; }\n }\n\n if (itemsChanged || fixedWidth && !autoWidth) {\n pages = getPages();\n updateNavVisibility();\n }\n\n indChanged = index !== indexTem;\n if (indChanged) {\n events.emit('indexChanged', info());\n needContainerTransform = true;\n } else if (itemsChanged) {\n if (!indChanged) { additionalUpdates(); }\n } else if (fixedWidth || autoWidth) {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n }\n\n if (itemsChanged && !carousel) { updateGallerySlidePositions(); }\n\n if (!disable && !freeze) {\n // non-mediaqueries: IE8\n if (bpChanged && !CSSMQ) {\n // middle wrapper styles\n\n // inner wrapper styles\n if (edgePadding !== edgePaddingTem || gutter !== gutterTem) {\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, speed, autoHeight);\n }\n\n if (horizontal) {\n // container styles\n if (carousel) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = getSlideWidthStyle(fixedWidth, gutter, items) +\n getSlideGutterStyle(gutter);\n\n // remove the last line and\n // add new styles\n removeCSSRule(sheet, getCssRulesLength(sheet) - 1);\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet));\n }\n }\n\n // auto height\n if (autoHeight) { doAutoHeight(); }\n\n if (needContainerTransform) {\n doContainerTransformSilent();\n indexCached = index;\n }\n }\n\n if (bpChanged) { events.emit('newBreakpointEnd', info(e)); }\n }\n\n\n\n\n\n // === INITIALIZATION FUNCTIONS === //\n function getFreeze () {\n if (!fixedWidth && !autoWidth) {\n var a = center ? items - (items - 1) / 2 : items;\n return slideCount <= a;\n }\n\n var width = fixedWidth ? (fixedWidth + gutter) * slideCount : slidePositions[slideCount],\n vp = edgePadding ? viewport + edgePadding * 2 : viewport + gutter;\n\n if (center) {\n vp -= fixedWidth ? (viewport - fixedWidth) / 2 : (viewport - (slidePositions[index + 1] - slidePositions[index] - gutter)) / 2;\n }\n\n return width <= vp;\n }\n\n function setBreakpointZone () {\n breakpointZone = 0;\n for (var bp in responsive) {\n bp = parseInt(bp); // convert string to number\n if (windowWidth >= bp) { breakpointZone = bp; }\n }\n }\n\n // (slideBy, indexMin, indexMax) => index\n var updateIndex = (function () {\n return loop ?\n carousel ?\n // loop + carousel\n function () {\n var leftEdge = indexMin,\n rightEdge = indexMax;\n\n leftEdge += slideBy;\n rightEdge -= slideBy;\n\n // adjust edges when has edge paddings\n // or fixed-width slider with extra space on the right side\n if (edgePadding) {\n leftEdge += 1;\n rightEdge -= 1;\n } else if (fixedWidth) {\n if ((viewport + gutter)%(fixedWidth + gutter)) { rightEdge -= 1; }\n }\n\n if (cloneCount) {\n if (index > rightEdge) {\n index -= slideCount;\n } else if (index < leftEdge) {\n index += slideCount;\n }\n }\n } :\n // loop + gallery\n function() {\n if (index > indexMax) {\n while (index >= indexMin + slideCount) { index -= slideCount; }\n } else if (index < indexMin) {\n while (index <= indexMax - slideCount) { index += slideCount; }\n }\n } :\n // non-loop\n function() {\n index = Math.max(indexMin, Math.min(indexMax, index));\n };\n })();\n\n function disableUI () {\n if (!autoplay && autoplayButton) { hideElement(autoplayButton); }\n if (!nav && navContainer) { hideElement(navContainer); }\n if (!controls) {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n\n function enableUI () {\n if (autoplay && autoplayButton) { showElement(autoplayButton); }\n if (nav && navContainer) { showElement(navContainer); }\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n }\n }\n\n function freezeSlider () {\n if (frozen) { return; }\n\n // remove edge padding from inner wrapper\n if (edgePadding) { innerWrapper.style.margin = '0px'; }\n\n // add class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { addClass(slideItems[i], str); }\n addClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n disableUI();\n\n frozen = true;\n }\n\n function unfreezeSlider () {\n if (!frozen) { return; }\n\n // restore edge padding for inner wrapper\n // for mordern browsers\n if (edgePadding && CSSMQ) { innerWrapper.style.margin = ''; }\n\n // remove class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { removeClass(slideItems[i], str); }\n removeClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n enableUI();\n\n frozen = false;\n }\n\n function disableSlider () {\n if (disabled) { return; }\n\n sheet.disabled = true;\n container.className = container.className.replace(newContainerClasses.substring(1), '');\n removeAttrs(container, ['style']);\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { hideElement(slideItems[j]); }\n hideElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // vertical slider\n if (!horizontal || !carousel) { removeAttrs(innerWrapper, ['style']); }\n\n // gallery\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i];\n removeAttrs(item, ['style']);\n removeClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // update tools\n disableUI();\n\n disabled = true;\n }\n\n function enableSlider () {\n if (!disabled) { return; }\n\n sheet.disabled = false;\n container.className += newContainerClasses;\n doContainerTransformSilent();\n\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { showElement(slideItems[j]); }\n showElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // gallery\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i],\n classN = i < index + items ? animateIn : animateNormal;\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, classN);\n }\n }\n\n // update tools\n enableUI();\n\n disabled = false;\n }\n\n function updateLiveRegion () {\n var str = getLiveRegionStr();\n if (liveregionCurrent.innerHTML !== str) { liveregionCurrent.innerHTML = str; }\n }\n\n function getLiveRegionStr () {\n var arr = getVisibleSlideRange(),\n start = arr[0] + 1,\n end = arr[1] + 1;\n return start === end ? start + '' : start + ' to ' + end;\n }\n\n function getVisibleSlideRange (val) {\n if (val == null) { val = getContainerTransformValue(); }\n var start = index, end, rangestart, rangeend;\n\n // get range start, range end for autoWidth and fixedWidth\n if (center || edgePadding) {\n if (autoWidth || fixedWidth) {\n rangestart = - (parseFloat(val) + edgePadding);\n rangeend = rangestart + viewport + edgePadding * 2;\n }\n } else {\n if (autoWidth) {\n rangestart = slidePositions[index];\n rangeend = rangestart + viewport;\n }\n }\n\n // get start, end\n // - check auto width\n if (autoWidth) {\n slidePositions.forEach(function(point, i) {\n if (i < slideCountNew) {\n if ((center || edgePadding) && point <= rangestart + 0.5) { start = i; }\n if (rangeend - point >= 0.5) { end = i; }\n }\n });\n\n // - check percentage width, fixed width\n } else {\n\n if (fixedWidth) {\n var cell = fixedWidth + gutter;\n if (center || edgePadding) {\n start = Math.floor(rangestart/cell);\n end = Math.ceil(rangeend/cell - 1);\n } else {\n end = start + Math.ceil(viewport/cell) - 1;\n }\n\n } else {\n if (center || edgePadding) {\n var a = items - 1;\n if (center) {\n start -= a / 2;\n end = index + a / 2;\n } else {\n end = index + a;\n }\n\n if (edgePadding) {\n var b = edgePadding * items / viewport;\n start -= b;\n end += b;\n }\n\n start = Math.floor(start);\n end = Math.ceil(end);\n } else {\n end = start + items - 1;\n }\n }\n\n start = Math.max(start, 0);\n end = Math.min(end, slideCountNew - 1);\n }\n\n return [start, end];\n }\n\n function doLazyLoad () {\n if (lazyload && !disable) {\n var arg = getVisibleSlideRange();\n arg.push(lazyloadSelector);\n\n getImageArray.apply(null, arg).forEach(function (img) {\n if (!hasClass(img, imgCompleteClass)) {\n // stop propagation transitionend event to container\n var eve = {};\n eve[TRANSITIONEND] = function (e) { e.stopPropagation(); };\n addEvents(img, eve);\n\n addEvents(img, imgEvents);\n\n // update src\n img.src = getAttr(img, 'data-src');\n\n // update srcset\n var srcset = getAttr(img, 'data-srcset');\n if (srcset) { img.srcset = srcset; }\n\n addClass(img, 'loading');\n }\n });\n }\n }\n\n function onImgLoaded (e) {\n imgLoaded(getTarget(e));\n }\n\n function onImgFailed (e) {\n imgFailed(getTarget(e));\n }\n\n function imgLoaded (img) {\n addClass(img, 'loaded');\n imgCompleted(img);\n }\n\n function imgFailed (img) {\n addClass(img, 'failed');\n imgCompleted(img);\n }\n\n function imgCompleted (img) {\n addClass(img, imgCompleteClass);\n removeClass(img, 'loading');\n removeEvents(img, imgEvents);\n }\n\n function getImageArray (start, end, imgSelector) {\n var imgs = [];\n if (!imgSelector) { imgSelector = 'img'; }\n\n while (start <= end) {\n forEach(slideItems[start].querySelectorAll(imgSelector), function (img) { imgs.push(img); });\n start++;\n }\n\n return imgs;\n }\n\n // check if all visible images are loaded\n // and update container height if it's done\n function doAutoHeight () {\n var imgs = getImageArray.apply(null, getVisibleSlideRange());\n raf(function(){ imgsLoadedCheck(imgs, updateInnerWrapperHeight); });\n }\n\n function imgsLoadedCheck (imgs, cb) {\n // execute callback function if all images are complete\n if (imgsComplete) { return cb(); }\n\n // check image classes\n imgs.forEach(function (img, index) {\n if (!lazyload && img.complete) { imgCompleted(img); } // Check image.complete\n if (hasClass(img, imgCompleteClass)) { imgs.splice(index, 1); }\n });\n\n // execute callback function if selected images are all complete\n if (!imgs.length) { return cb(); }\n\n // otherwise execute this functiona again\n raf(function(){ imgsLoadedCheck(imgs, cb); });\n }\n\n function additionalUpdates () {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n updateControlsStatus();\n updateNavStatus();\n }\n\n\n function update_carousel_transition_duration () {\n if (carousel && autoHeight) {\n middleWrapper.style[TRANSITIONDURATION] = speed / 1000 + 's';\n }\n }\n\n function getMaxSlideHeight (slideStart, slideRange) {\n var heights = [];\n for (var i = slideStart, l = Math.min(slideStart + slideRange, slideCountNew); i < l; i++) {\n heights.push(slideItems[i].offsetHeight);\n }\n\n return Math.max.apply(null, heights);\n }\n\n // update inner wrapper height\n // 1. get the max-height of the visible slides\n // 2. set transitionDuration to speed\n // 3. update inner wrapper height to max-height\n // 4. set transitionDuration to 0s after transition done\n function updateInnerWrapperHeight () {\n var maxHeight = autoHeight ? getMaxSlideHeight(index, items) : getMaxSlideHeight(cloneCount, slideCount),\n wp = middleWrapper ? middleWrapper : innerWrapper;\n\n if (wp.style.height !== maxHeight) { wp.style.height = maxHeight + 'px'; }\n }\n\n // get the distance from the top edge of the first slide to each slide\n // (init) => slidePositions\n function setSlidePositions () {\n slidePositions = [0];\n var attr = horizontal ? 'left' : 'top',\n attr2 = horizontal ? 'right' : 'bottom',\n base = slideItems[0].getBoundingClientRect()[attr];\n\n forEach(slideItems, function(item, i) {\n // skip the first slide\n if (i) { slidePositions.push(item.getBoundingClientRect()[attr] - base); }\n // add the end edge\n if (i === slideCountNew - 1) { slidePositions.push(item.getBoundingClientRect()[attr2] - base); }\n });\n }\n\n // update slide\n function updateSlideStatus () {\n var range = getVisibleSlideRange(),\n start = range[0],\n end = range[1];\n\n forEach(slideItems, function(item, i) {\n // show slides\n if (i >= start && i <= end) {\n if (hasAttr(item, 'aria-hidden')) {\n removeAttrs(item, ['aria-hidden', 'tabindex']);\n addClass(item, slideActiveClass);\n }\n // hide slides\n } else {\n if (!hasAttr(item, 'aria-hidden')) {\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n removeClass(item, slideActiveClass);\n }\n }\n });\n }\n\n // gallery: update slide position\n function updateGallerySlidePositions () {\n var l = index + Math.min(slideCount, items);\n for (var i = slideCountNew; i--;) {\n var item = slideItems[i];\n\n if (i >= index && i < l) {\n // add transitions to visible slides when adjusting their positions\n addClass(item, 'tns-moving');\n\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n } else if (item.style.left) {\n item.style.left = '';\n addClass(item, animateNormal);\n removeClass(item, animateIn);\n }\n\n // remove outlet animation\n removeClass(item, animateOut);\n }\n\n // removing '.tns-moving'\n setTimeout(function() {\n forEach(slideItems, function(el) {\n removeClass(el, 'tns-moving');\n });\n }, 300);\n }\n\n // set tabindex on Nav\n function updateNavStatus () {\n // get current nav\n if (nav) {\n navCurrentIndex = navClicked >= 0 ? navClicked : getCurrentNavIndex();\n navClicked = -1;\n\n if (navCurrentIndex !== navCurrentIndexCached) {\n var navPrev = navItems[navCurrentIndexCached],\n navCurrent = navItems[navCurrentIndex];\n\n setAttrs(navPrev, {\n 'tabindex': '-1',\n 'aria-label': navStr + (navCurrentIndexCached + 1)\n });\n removeClass(navPrev, navActiveClass);\n\n setAttrs(navCurrent, {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navCurrent, 'tabindex');\n addClass(navCurrent, navActiveClass);\n\n navCurrentIndexCached = navCurrentIndex;\n }\n }\n }\n\n function getLowerCaseNodeName (el) {\n return el.nodeName.toLowerCase();\n }\n\n function isButton (el) {\n return getLowerCaseNodeName(el) === 'button';\n }\n\n function isAriaDisabled (el) {\n return el.getAttribute('aria-disabled') === 'true';\n }\n\n function disEnableElement (isButton, el, val) {\n if (isButton) {\n el.disabled = val;\n } else {\n el.setAttribute('aria-disabled', val.toString());\n }\n }\n\n // set 'disabled' to true on controls when reach the edges\n function updateControlsStatus () {\n if (!controls || rewind || loop) { return; }\n\n var prevDisabled = (prevIsButton) ? prevButton.disabled : isAriaDisabled(prevButton),\n nextDisabled = (nextIsButton) ? nextButton.disabled : isAriaDisabled(nextButton),\n disablePrev = (index <= indexMin) ? true : false,\n disableNext = (!rewind && index >= indexMax) ? true : false;\n\n if (disablePrev && !prevDisabled) {\n disEnableElement(prevIsButton, prevButton, true);\n }\n if (!disablePrev && prevDisabled) {\n disEnableElement(prevIsButton, prevButton, false);\n }\n if (disableNext && !nextDisabled) {\n disEnableElement(nextIsButton, nextButton, true);\n }\n if (!disableNext && nextDisabled) {\n disEnableElement(nextIsButton, nextButton, false);\n }\n }\n\n // set duration\n function resetDuration (el, str) {\n if (TRANSITIONDURATION) { el.style[TRANSITIONDURATION] = str; }\n }\n\n function getSliderWidth () {\n return fixedWidth ? (fixedWidth + gutter) * slideCountNew : slidePositions[slideCountNew];\n }\n\n function getCenterGap (num) {\n if (num == null) { num = index; }\n\n var gap = edgePadding ? gutter : 0;\n return autoWidth ? ((viewport - gap) - (slidePositions[num + 1] - slidePositions[num] - gutter))/2 :\n fixedWidth ? (viewport - fixedWidth) / 2 :\n (items - 1) / 2;\n }\n\n function getRightBoundary () {\n var gap = edgePadding ? gutter : 0,\n result = (viewport + gap) - getSliderWidth();\n\n if (center && !loop) {\n result = fixedWidth ? - (fixedWidth + gutter) * (slideCountNew - 1) - getCenterGap() :\n getCenterGap(slideCountNew - 1) - slidePositions[slideCountNew - 1];\n }\n if (result > 0) { result = 0; }\n\n return result;\n }\n\n function getContainerTransformValue (num) {\n if (num == null) { num = index; }\n\n var val;\n if (horizontal && !autoWidth) {\n if (fixedWidth) {\n val = - (fixedWidth + gutter) * num;\n if (center) { val += getCenterGap(); }\n } else {\n var denominator = TRANSFORM ? slideCountNew : items;\n if (center) { num -= getCenterGap(); }\n val = - num * 100 / denominator;\n }\n } else {\n val = - slidePositions[num];\n if (center && autoWidth) {\n val += getCenterGap();\n }\n }\n\n if (hasRightDeadZone) { val = Math.max(val, rightBoundary); }\n\n val += (horizontal && !autoWidth && !fixedWidth) ? '%' : 'px';\n\n return val;\n }\n\n function doContainerTransformSilent (val) {\n resetDuration(container, '0s');\n doContainerTransform(val);\n }\n\n function doContainerTransform (val) {\n if (val == null) { val = getContainerTransformValue(); }\n container.style[transformAttr] = transformPrefix + val + transformPostfix;\n }\n\n function animateSlide (number, classOut, classIn, isOut) {\n var l = number + items;\n if (!loop) { l = Math.min(l, slideCountNew); }\n\n for (var i = number; i < l; i++) {\n var item = slideItems[i];\n\n // set item positions\n if (!isOut) { item.style.left = (i - index) * 100 / items + '%'; }\n\n if (animateDelay && TRANSITIONDELAY) {\n item.style[TRANSITIONDELAY] = item.style[ANIMATIONDELAY] = animateDelay * (i - number) / 1000 + 's';\n }\n removeClass(item, classOut);\n addClass(item, classIn);\n\n if (isOut) { slideItemsOut.push(item); }\n }\n }\n\n // make transfer after click/drag:\n // 1. change 'transform' property for mordern browsers\n // 2. change 'left' property for legacy browsers\n var transformCore = (function () {\n return carousel ?\n function () {\n resetDuration(container, '');\n if (TRANSITIONDURATION || !speed) {\n // for morden browsers with non-zero duration or\n // zero duration for all browsers\n doContainerTransform();\n // run fallback function manually\n // when duration is 0 / container is hidden\n if (!speed || !isVisible(container)) { onTransitionEnd(); }\n\n } else {\n // for old browser with non-zero duration\n jsTransform(container, transformAttr, transformPrefix, transformPostfix, getContainerTransformValue(), speed, onTransitionEnd);\n }\n\n if (!horizontal) { updateContentWrapperHeight(); }\n } :\n function () {\n slideItemsOut = [];\n\n var eve = {};\n eve[TRANSITIONEND] = eve[ANIMATIONEND] = onTransitionEnd;\n removeEvents(slideItems[indexCached], eve);\n addEvents(slideItems[index], eve);\n\n animateSlide(indexCached, animateIn, animateOut, true);\n animateSlide(index, animateNormal, animateIn);\n\n // run fallback function manually\n // when transition or animation not supported / duration is 0\n if (!TRANSITIONEND || !ANIMATIONEND || !speed || !isVisible(container)) { onTransitionEnd(); }\n };\n })();\n\n function render (e, sliderMoved) {\n if (updateIndexBeforeTransform) { updateIndex(); }\n\n // render when slider was moved (touch or drag) even though index may not change\n if (index !== indexCached || sliderMoved) {\n // events\n events.emit('indexChanged', info());\n events.emit('transitionStart', info());\n if (autoHeight) { doAutoHeight(); }\n\n // pause autoplay when click or keydown from user\n if (animating && e && ['click', 'keydown'].indexOf(e.type) >= 0) { stopAutoplay(); }\n\n running = true;\n transformCore();\n }\n }\n\n /*\n * Transfer prefixed properties to the same format\n * CSS: -Webkit-Transform => webkittransform\n * JS: WebkitTransform => webkittransform\n * @param {string} str - property\n *\n */\n function strTrans (str) {\n return str.toLowerCase().replace(/-/g, '');\n }\n\n // AFTER TRANSFORM\n // Things need to be done after a transfer:\n // 1. check index\n // 2. add classes to visible slide\n // 3. disable controls buttons when reach the first/last slide in non-loop slider\n // 4. update nav status\n // 5. lazyload images\n // 6. update container height\n function onTransitionEnd (event) {\n // check running on gallery mode\n // make sure trantionend/animationend events run only once\n if (carousel || running) {\n events.emit('transitionEnd', info(event));\n\n if (!carousel && slideItemsOut.length > 0) {\n for (var i = 0; i < slideItemsOut.length; i++) {\n var item = slideItemsOut[i];\n // set item positions\n item.style.left = '';\n\n if (ANIMATIONDELAY && TRANSITIONDELAY) {\n item.style[ANIMATIONDELAY] = '';\n item.style[TRANSITIONDELAY] = '';\n }\n removeClass(item, animateOut);\n addClass(item, animateNormal);\n }\n }\n\n /* update slides, nav, controls after checking ...\n * => legacy browsers who don't support 'event'\n * have to check event first, otherwise event.target will cause an error\n * => or 'gallery' mode:\n * + event target is slide item\n * => or 'carousel' mode:\n * + event target is container,\n * + event.property is the same with transform attribute\n */\n if (!event ||\n !carousel && event.target.parentNode === container ||\n event.target === container && strTrans(event.propertyName) === strTrans(transformAttr)) {\n\n if (!updateIndexBeforeTransform) {\n var indexTem = index;\n updateIndex();\n if (index !== indexTem) {\n events.emit('indexChanged', info());\n\n doContainerTransformSilent();\n }\n }\n\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n running = false;\n indexCached = index;\n }\n }\n\n }\n\n // # ACTIONS\n function goTo (targetIndex, e) {\n if (freeze) { return; }\n\n // prev slideBy\n if (targetIndex === 'prev') {\n onControlsClick(e, -1);\n\n // next slideBy\n } else if (targetIndex === 'next') {\n onControlsClick(e, 1);\n\n // go to exact slide\n } else {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n var absIndex = getAbsIndex(),\n indexGap = 0;\n\n if (targetIndex === 'first') {\n indexGap = - absIndex;\n } else if (targetIndex === 'last') {\n indexGap = carousel ? slideCount - items - absIndex : slideCount - 1 - absIndex;\n } else {\n if (typeof targetIndex !== 'number') { targetIndex = parseInt(targetIndex); }\n\n if (!isNaN(targetIndex)) {\n // from directly called goTo function\n if (!e) { targetIndex = Math.max(0, Math.min(slideCount - 1, targetIndex)); }\n\n indexGap = targetIndex - absIndex;\n }\n }\n\n // gallery: make sure new page won't overlap with current page\n if (!carousel && indexGap && Math.abs(indexGap) < items) {\n var factor = indexGap > 0 ? 1 : -1;\n indexGap += (index + indexGap - slideCount) >= indexMin ? slideCount * factor : slideCount * 2 * factor * -1;\n }\n\n index += indexGap;\n\n // make sure index is in range\n if (carousel && loop) {\n if (index < indexMin) { index += slideCount; }\n if (index > indexMax) { index -= slideCount; }\n }\n\n // if index is changed, start rendering\n if (getAbsIndex(index) !== getAbsIndex(indexCached)) {\n render(e);\n }\n\n }\n }\n\n // on controls click\n function onControlsClick (e, dir) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n var passEventObject;\n\n if (!dir) {\n e = getEvent(e);\n var target = getTarget(e);\n\n while (target !== controlsContainer && [prevButton, nextButton].indexOf(target) < 0) { target = target.parentNode; }\n\n var targetIn = [prevButton, nextButton].indexOf(target);\n if (targetIn >= 0) {\n passEventObject = true;\n dir = targetIn === 0 ? -1 : 1;\n }\n }\n\n if (rewind) {\n if (index === indexMin && dir === -1) {\n goTo('last', e);\n return;\n } else if (index === indexMax && dir === 1) {\n goTo('first', e);\n return;\n }\n }\n\n if (dir) {\n index += slideBy * dir;\n if (autoWidth) { index = Math.floor(index); }\n // pass e when click control buttons or keydown\n render((passEventObject || (e && e.type === 'keydown')) ? e : null);\n }\n }\n\n // on nav click\n function onNavClick (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n e = getEvent(e);\n var target = getTarget(e), navIndex;\n\n // find the clicked nav item\n while (target !== navContainer && !hasAttr(target, 'data-nav')) { target = target.parentNode; }\n if (hasAttr(target, 'data-nav')) {\n var navIndex = navClicked = Number(getAttr(target, 'data-nav')),\n targetIndexBase = fixedWidth || autoWidth ? navIndex * slideCount / pages : navIndex * items,\n targetIndex = navAsThumbnails ? navIndex : Math.min(Math.ceil(targetIndexBase), slideCount - 1);\n goTo(targetIndex, e);\n\n if (navCurrentIndex === navIndex) {\n if (animating) { stopAutoplay(); }\n navClicked = -1; // reset navClicked\n }\n }\n }\n\n // autoplay functions\n function setAutoplayTimer () {\n autoplayTimer = setInterval(function () {\n onControlsClick(null, autoplayDirection);\n }, autoplayTimeout);\n\n animating = true;\n }\n\n function stopAutoplayTimer () {\n clearInterval(autoplayTimer);\n animating = false;\n }\n\n function updateAutoplayButton (action, txt) {\n setAttrs(autoplayButton, {'data-action': action});\n autoplayButton.innerHTML = autoplayHtmlStrings[0] + action + autoplayHtmlStrings[1] + txt;\n }\n\n function startAutoplay () {\n setAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('stop', autoplayText[1]); }\n }\n\n function stopAutoplay () {\n stopAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('start', autoplayText[0]); }\n }\n\n // programaitcally play/pause the slider\n function play () {\n if (autoplay && !animating) {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n function pause () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n }\n }\n\n function toggleAutoplay () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n } else {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n\n function onVisibilityChange () {\n if (doc.hidden) {\n if (animating) {\n stopAutoplayTimer();\n autoplayVisibilityPaused = true;\n }\n } else if (autoplayVisibilityPaused) {\n setAutoplayTimer();\n autoplayVisibilityPaused = false;\n }\n }\n\n function mouseoverPause () {\n if (animating) {\n stopAutoplayTimer();\n autoplayHoverPaused = true;\n }\n }\n\n function mouseoutRestart () {\n if (autoplayHoverPaused) {\n setAutoplayTimer();\n autoplayHoverPaused = false;\n }\n }\n\n // keydown events on document\n function onDocumentKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n onControlsClick(e, keyIndex === 0 ? -1 : 1);\n }\n }\n\n // on key control\n function onControlsKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (!prevButton.disabled) { onControlsClick(e, -1); }\n } else if (!nextButton.disabled) {\n onControlsClick(e, 1);\n }\n }\n }\n\n // set focus\n function setFocus (el) {\n el.focus();\n }\n\n // on key nav\n function onNavKeydown (e) {\n e = getEvent(e);\n var curElement = doc.activeElement;\n if (!hasAttr(curElement, 'data-nav')) { return; }\n\n // var code = e.keyCode,\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT, KEYS.ENTER, KEYS.SPACE].indexOf(e.keyCode),\n navIndex = Number(getAttr(curElement, 'data-nav'));\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (navIndex > 0) { setFocus(navItems[navIndex - 1]); }\n } else if (keyIndex === 1) {\n if (navIndex < pages - 1) { setFocus(navItems[navIndex + 1]); }\n } else {\n navClicked = navIndex;\n goTo(navIndex, e);\n }\n }\n }\n\n function getEvent (e) {\n e = e || win.event;\n return isTouchEvent(e) ? e.changedTouches[0] : e;\n }\n function getTarget (e) {\n return e.target || win.event.srcElement;\n }\n\n function isTouchEvent (e) {\n return e.type.indexOf('touch') >= 0;\n }\n\n function preventDefaultBehavior (e) {\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\n }\n\n function getMoveDirectionExpected () {\n return getTouchDirection(toDegree(lastPosition.y - initPosition.y, lastPosition.x - initPosition.x), swipeAngle) === options.axis;\n }\n\n function onPanStart (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n if (autoplay && animating) { stopAutoplayTimer(); }\n\n panStart = true;\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n\n var $ = getEvent(e);\n events.emit(isTouchEvent(e) ? 'touchStart' : 'dragStart', info(e));\n\n if (!isTouchEvent(e) && ['img', 'a'].indexOf(getLowerCaseNodeName(getTarget(e))) >= 0) {\n preventDefaultBehavior(e);\n }\n\n lastPosition.x = initPosition.x = $.clientX;\n lastPosition.y = initPosition.y = $.clientY;\n if (carousel) {\n translateInit = parseFloat(container.style[transformAttr].replace(transformPrefix, ''));\n resetDuration(container, '0s');\n }\n }\n\n function onPanMove (e) {\n if (panStart) {\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n\n if (carousel) {\n if (!rafIndex) { rafIndex = raf(function(){ panUpdate(e); }); }\n } else {\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) { preventScroll = true; }\n }\n\n if ((typeof e.cancelable !== 'boolean' || e.cancelable) && preventScroll) {\n e.preventDefault();\n }\n }\n }\n\n function panUpdate (e) {\n if (!moveDirectionExpected) {\n panStart = false;\n return;\n }\n caf(rafIndex);\n if (panStart) { rafIndex = raf(function(){ panUpdate(e); }); }\n\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) {\n if (!preventScroll && isTouchEvent(e)) { preventScroll = true; }\n\n try {\n if (e.type) { events.emit(isTouchEvent(e) ? 'touchMove' : 'dragMove', info(e)); }\n } catch(err) {}\n\n var x = translateInit,\n dist = getDist(lastPosition, initPosition);\n if (!horizontal || fixedWidth || autoWidth) {\n x += dist;\n x += 'px';\n } else {\n var percentageX = TRANSFORM ? dist * items * 100 / ((viewport + gutter) * slideCountNew): dist * 100 / (viewport + gutter);\n x += percentageX;\n x += '%';\n }\n\n container.style[transformAttr] = transformPrefix + x + transformPostfix;\n }\n }\n\n function onPanEnd (e) {\n if (panStart) {\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n if (carousel) { resetDuration(container, ''); }\n panStart = false;\n\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n var dist = getDist(lastPosition, initPosition);\n\n if (Math.abs(dist)) {\n // drag vs click\n if (!isTouchEvent(e)) {\n // prevent \"click\"\n var target = getTarget(e);\n addEvents(target, {'click': function preventClick (e) {\n preventDefaultBehavior(e);\n removeEvents(target, {'click': preventClick});\n }});\n }\n\n if (carousel) {\n rafIndex = raf(function() {\n if (horizontal && !autoWidth) {\n var indexMoved = - dist * items / (viewport + gutter);\n indexMoved = dist > 0 ? Math.floor(indexMoved) : Math.ceil(indexMoved);\n index += indexMoved;\n } else {\n var moved = - (translateInit + dist);\n if (moved <= 0) {\n index = indexMin;\n } else if (moved >= slidePositions[slideCountNew - 1]) {\n index = indexMax;\n } else {\n var i = 0;\n while (i < slideCountNew && moved >= slidePositions[i]) {\n index = i;\n if (moved > slidePositions[i] && dist < 0) { index += 1; }\n i++;\n }\n }\n }\n\n render(e, dist);\n events.emit(isTouchEvent(e) ? 'touchEnd' : 'dragEnd', info(e));\n });\n } else {\n if (moveDirectionExpected) {\n onControlsClick(e, dist > 0 ? -1 : 1);\n }\n }\n }\n }\n\n // reset\n if (options.preventScrollOnTouch === 'auto') { preventScroll = false; }\n if (swipeAngle) { moveDirectionExpected = '?'; }\n if (autoplay && !animating) { setAutoplayTimer(); }\n }\n\n // === RESIZE FUNCTIONS === //\n // (slidePositions, index, items) => vertical_conentWrapper.height\n function updateContentWrapperHeight () {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.style.height = slidePositions[index + items] - slidePositions[index] + 'px';\n }\n\n function getPages () {\n var rough = fixedWidth ? (fixedWidth + gutter) * slideCount / viewport : slideCount / items;\n return Math.min(Math.ceil(rough), slideCount);\n }\n\n /*\n * 1. update visible nav items list\n * 2. add \"hidden\" attributes to previous visible nav items\n * 3. remove \"hidden\" attrubutes to new visible nav items\n */\n function updateNavVisibility () {\n if (!nav || navAsThumbnails) { return; }\n\n if (pages !== pagesCached) {\n var min = pagesCached,\n max = pages,\n fn = showElement;\n\n if (pagesCached > pages) {\n min = pages;\n max = pagesCached;\n fn = hideElement;\n }\n\n while (min < max) {\n fn(navItems[min]);\n min++;\n }\n\n // cache pages\n pagesCached = pages;\n }\n }\n\n function info (e) {\n return {\n container: container,\n slideItems: slideItems,\n navContainer: navContainer,\n navItems: navItems,\n controlsContainer: controlsContainer,\n hasControls: hasControls,\n prevButton: prevButton,\n nextButton: nextButton,\n items: items,\n slideBy: slideBy,\n cloneCount: cloneCount,\n slideCount: slideCount,\n slideCountNew: slideCountNew,\n index: index,\n indexCached: indexCached,\n displayIndex: getCurrentSlide(),\n navCurrentIndex: navCurrentIndex,\n navCurrentIndexCached: navCurrentIndexCached,\n pages: pages,\n pagesCached: pagesCached,\n sheet: sheet,\n isOn: isOn,\n event: e || {},\n };\n }\n\n return {\n version: '2.9.4',\n getInfo: info,\n events: events,\n goTo: goTo,\n play: play,\n pause: pause,\n isOn: isOn,\n updateSliderHeight: updateInnerWrapperHeight,\n refresh: initSliderTransform,\n destroy: destroy,\n rebuild: function() {\n return tns(extend(options, optionsElements));\n }\n };\n};\n","// get css-calc \n// @return - false | calc | -webkit-calc | -moz-calc\n// @usage - var calc = getCalc(); \nimport { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function calc() {\n var doc = document, \n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'), \n result = false;\n\n body.appendChild(div);\n try {\n var str = '(10px * 10)',\n vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str],\n val;\n for (var i = 0; i < 3; i++) {\n val = vals[i];\n div.style.width = val;\n if (div.offsetWidth === 100) { \n result = val.replace(str, ''); \n break;\n }\n }\n } catch (e) {}\n \n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return result;\n}","// get subpixel support value\n// @return - boolean\nimport { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function percentageLayout() {\n // check subpixel layout supporting\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n wrapper = doc.createElement('div'),\n outer = doc.createElement('div'),\n str = '',\n count = 70,\n perPage = 3,\n supported = false;\n\n wrapper.className = \"tns-t-subp2\";\n outer.className = \"tns-t-ct\";\n\n for (var i = 0; i < count; i++) {\n str += '
';\n }\n\n outer.innerHTML = str;\n wrapper.appendChild(outer);\n body.appendChild(wrapper);\n\n supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2;\n\n body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove();\n\n return supported;\n}","import { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function mediaquerySupport () {\n if (window.matchMedia || window.msMatchMedia) {\n return true;\n }\n \n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n style = doc.createElement('style'),\n rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}',\n position;\n\n style.type = 'text/css';\n div.className = 'tns-mq-test';\n\n body.appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(doc.createTextNode(rule));\n }\n\n position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position'];\n\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return position === \"absolute\";\n}\n","import { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function has3DTransforms(tf){\n if (!tf) { return false; }\n if (!window.getComputedStyle) { return false; }\n \n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n el = doc.createElement('p'),\n has3d,\n cssTF = tf.length > 9 ? '-' + tf.slice(0, -9).toLowerCase() + '-' : '';\n\n cssTF += 'transform';\n\n // Add it to the body to get the computed style\n body.insertBefore(el, null);\n\n el.style[tf] = 'translate3d(1px,1px,1px)';\n has3d = window.getComputedStyle(el).getPropertyValue(cssTF);\n\n body.fake ? resetFakeBody(body, docOverflow) : el.remove();\n\n return (has3d !== undefined && has3d.length > 0 && has3d !== \"none\");\n}\n","export function getSlideId() {\n var id = window.tnsId;\n window.tnsId = !id ? 1 : id + 1;\n \n return 'tns' + window.tnsId;\n}","// create and append style sheet\nexport function createStyleSheet (media, nonce) {\n // Create the