{"version":3,"file":"js/chunk-vendors.aeb492a1.js","mappings":"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","sources":["webpack://wsf-master-oap/./node_modules/mitt/dist/mitt.mjs","webpack://wsf-master-oap/./node_modules/@loreal/eventbus-js/dist/eventbus-js.esm.js","webpack://wsf-master-oap/./node_modules/@loreal/sisyphus/dist/sisyphus.esm.js","webpack://wsf-master-oap/./node_modules/@loreal/zone-plugin-loader/dist/zone-plugin-loader.esm.js","webpack://wsf-master-oap/./node_modules/animejs/lib/anime.es.js","webpack://wsf-master-oap/./node_modules/lazysizes/lazysizes.js","webpack://wsf-master-oap/./node_modules/lodash.includes/index.js","webpack://wsf-master-oap/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://wsf-master-oap/./node_modules/scrollbarwidth/scrollbarWidth.js","webpack://wsf-master-oap/./node_modules/vue-loader/dist/exportHelper.js","webpack://wsf-master-oap/./node_modules/vue-toasted/dist/toasted.js","webpack://wsf-master-oap/./node_modules/vue-toasted/dist/vue-toasted.js","webpack://wsf-master-oap/./node_modules/@vue/devtools-api/lib/esm/env.js","webpack://wsf-master-oap/./node_modules/@vue/devtools-api/lib/esm/const.js","webpack://wsf-master-oap/./node_modules/@vue/devtools-api/lib/esm/time.js","webpack://wsf-master-oap/./node_modules/@vue/devtools-api/lib/esm/proxy.js","webpack://wsf-master-oap/./node_modules/@vue/devtools-api/lib/esm/index.js","webpack://wsf-master-oap/./node_modules/vuex/dist/vuex.esm-bundler.js","webpack://wsf-master-oap/./node_modules/whatwg-fetch/fetch.js","webpack://wsf-master-oap/./node_modules/core-js/internals/a-callable.js","webpack://wsf-master-oap/./node_modules/core-js/internals/a-possible-prototype.js","webpack://wsf-master-oap/./node_modules/core-js/internals/an-instance.js","webpack://wsf-master-oap/./node_modules/core-js/internals/an-object.js","webpack://wsf-master-oap/./node_modules/core-js/internals/array-includes.js","webpack://wsf-master-oap/./node_modules/core-js/internals/array-set-length.js","webpack://wsf-master-oap/./node_modules/core-js/internals/classof-raw.js","webpack://wsf-master-oap/./node_modules/core-js/internals/classof.js","webpack://wsf-master-oap/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://wsf-master-oap/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://wsf-master-oap/./node_modules/core-js/internals/create-property-descriptor.js","webpack://wsf-master-oap/./node_modules/core-js/internals/define-built-in-accessor.js","webpack://wsf-master-oap/./node_modules/core-js/internals/define-built-in.js","webpack://wsf-master-oap/./node_modules/core-js/internals/define-global-property.js","webpack://wsf-master-oap/./node_modules/core-js/internals/descriptors.js","webpack://wsf-master-oap/./node_modules/core-js/internals/document-create-element.js","webpack://wsf-master-oap/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://wsf-master-oap/./node_modules/core-js/internals/dom-exception-constants.js","webpack://wsf-master-oap/./node_modules/core-js/internals/engine-user-agent.js","webpack://wsf-master-oap/./node_modules/core-js/internals/engine-v8-version.js","webpack://wsf-master-oap/./node_modules/core-js/internals/enum-bug-keys.js","webpack://wsf-master-oap/./node_modules/core-js/internals/error-stack-clear.js","webpack://wsf-master-oap/./node_modules/core-js/internals/export.js","webpack://wsf-master-oap/./node_modules/core-js/internals/fails.js","webpack://wsf-master-oap/./node_modules/core-js/internals/function-bind-native.js","webpack://wsf-master-oap/./node_modules/core-js/internals/function-call.js","webpack://wsf-master-oap/./node_modules/core-js/internals/function-name.js","webpack://wsf-master-oap/./node_modules/core-js/internals/function-uncurry-this-accessor.js","webpack://wsf-master-oap/./node_modules/core-js/internals/function-uncurry-this.js","webpack://wsf-master-oap/./node_modules/core-js/internals/get-built-in.js","webpack://wsf-master-oap/./node_modules/core-js/internals/get-method.js","webpack://wsf-master-oap/./node_modules/core-js/internals/global.js","webpack://wsf-master-oap/./node_modules/core-js/internals/has-own-property.js","webpack://wsf-master-oap/./node_modules/core-js/internals/hidden-keys.js","webpack://wsf-master-oap/./node_modules/core-js/internals/ie8-dom-define.js","webpack://wsf-master-oap/./node_modules/core-js/internals/indexed-object.js","webpack://wsf-master-oap/./node_modules/core-js/internals/inherit-if-required.js","webpack://wsf-master-oap/./node_modules/core-js/internals/inspect-source.js","webpack://wsf-master-oap/./node_modules/core-js/internals/internal-state.js","webpack://wsf-master-oap/./node_modules/core-js/internals/is-array.js","webpack://wsf-master-oap/./node_modules/core-js/internals/is-callable.js","webpack://wsf-master-oap/./node_modules/core-js/internals/is-forced.js","webpack://wsf-master-oap/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://wsf-master-oap/./node_modules/core-js/internals/is-object.js","webpack://wsf-master-oap/./node_modules/core-js/internals/is-possible-prototype.js","webpack://wsf-master-oap/./node_modules/core-js/internals/is-pure.js","webpack://wsf-master-oap/./node_modules/core-js/internals/is-symbol.js","webpack://wsf-master-oap/./node_modules/core-js/internals/length-of-array-like.js","webpack://wsf-master-oap/./node_modules/core-js/internals/make-built-in.js","webpack://wsf-master-oap/./node_modules/core-js/internals/math-trunc.js","webpack://wsf-master-oap/./node_modules/core-js/internals/normalize-string-argument.js","webpack://wsf-master-oap/./node_modules/core-js/internals/object-define-property.js","webpack://wsf-master-oap/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://wsf-master-oap/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://wsf-master-oap/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://wsf-master-oap/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://wsf-master-oap/./node_modules/core-js/internals/object-keys-internal.js","webpack://wsf-master-oap/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://wsf-master-oap/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://wsf-master-oap/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://wsf-master-oap/./node_modules/core-js/internals/own-keys.js","webpack://wsf-master-oap/./node_modules/core-js/internals/require-object-coercible.js","webpack://wsf-master-oap/./node_modules/core-js/internals/shared-key.js","webpack://wsf-master-oap/./node_modules/core-js/internals/shared-store.js","webpack://wsf-master-oap/./node_modules/core-js/internals/shared.js","webpack://wsf-master-oap/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://wsf-master-oap/./node_modules/core-js/internals/to-absolute-index.js","webpack://wsf-master-oap/./node_modules/core-js/internals/to-indexed-object.js","webpack://wsf-master-oap/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://wsf-master-oap/./node_modules/core-js/internals/to-length.js","webpack://wsf-master-oap/./node_modules/core-js/internals/to-object.js","webpack://wsf-master-oap/./node_modules/core-js/internals/to-primitive.js","webpack://wsf-master-oap/./node_modules/core-js/internals/to-property-key.js","webpack://wsf-master-oap/./node_modules/core-js/internals/to-string-tag-support.js","webpack://wsf-master-oap/./node_modules/core-js/internals/to-string.js","webpack://wsf-master-oap/./node_modules/core-js/internals/try-to-string.js","webpack://wsf-master-oap/./node_modules/core-js/internals/uid.js","webpack://wsf-master-oap/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://wsf-master-oap/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://wsf-master-oap/./node_modules/core-js/internals/validate-arguments-length.js","webpack://wsf-master-oap/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://wsf-master-oap/./node_modules/core-js/internals/well-known-symbol.js","webpack://wsf-master-oap/./node_modules/core-js/modules/es.array.push.js","webpack://wsf-master-oap/./node_modules/core-js/modules/web.dom-exception.stack.js","webpack://wsf-master-oap/./node_modules/core-js/modules/web.url-search-params.delete.js","webpack://wsf-master-oap/./node_modules/core-js/modules/web.url-search-params.has.js","webpack://wsf-master-oap/./node_modules/core-js/modules/web.url-search-params.size.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/bind.js","webpack://wsf-master-oap/./node_modules/axios/lib/utils.js","webpack://wsf-master-oap/./node_modules/axios/lib/core/AxiosError.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/null.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/toFormData.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/AxiosURLSearchParams.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/buildURL.js","webpack://wsf-master-oap/./node_modules/axios/lib/core/InterceptorManager.js","webpack://wsf-master-oap/./node_modules/axios/lib/defaults/transitional.js","webpack://wsf-master-oap/./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","webpack://wsf-master-oap/./node_modules/axios/lib/platform/browser/classes/FormData.js","webpack://wsf-master-oap/./node_modules/axios/lib/platform/browser/classes/Blob.js","webpack://wsf-master-oap/./node_modules/axios/lib/platform/browser/index.js","webpack://wsf-master-oap/./node_modules/axios/lib/platform/common/utils.js","webpack://wsf-master-oap/./node_modules/axios/lib/platform/index.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/toURLEncodedForm.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/formDataToJSON.js","webpack://wsf-master-oap/./node_modules/axios/lib/defaults/index.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://wsf-master-oap/./node_modules/axios/lib/core/AxiosHeaders.js","webpack://wsf-master-oap/./node_modules/axios/lib/core/transformData.js","webpack://wsf-master-oap/./node_modules/axios/lib/cancel/isCancel.js","webpack://wsf-master-oap/./node_modules/axios/lib/cancel/CanceledError.js","webpack://wsf-master-oap/./node_modules/axios/lib/core/settle.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/speedometer.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/throttle.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/progressEventReducer.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/cookies.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/combineURLs.js","webpack://wsf-master-oap/./node_modules/axios/lib/core/buildFullPath.js","webpack://wsf-master-oap/./node_modules/axios/lib/core/mergeConfig.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/resolveConfig.js","webpack://wsf-master-oap/./node_modules/axios/lib/adapters/xhr.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/composeSignals.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/trackStream.js","webpack://wsf-master-oap/./node_modules/axios/lib/adapters/fetch.js","webpack://wsf-master-oap/./node_modules/axios/lib/adapters/adapters.js","webpack://wsf-master-oap/./node_modules/axios/lib/core/dispatchRequest.js","webpack://wsf-master-oap/./node_modules/axios/lib/env/data.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/validator.js","webpack://wsf-master-oap/./node_modules/axios/lib/core/Axios.js","webpack://wsf-master-oap/./node_modules/axios/lib/cancel/CancelToken.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/spread.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://wsf-master-oap/./node_modules/axios/lib/helpers/HttpStatusCode.js","webpack://wsf-master-oap/./node_modules/axios/lib/axios.js","webpack://wsf-master-oap/./node_modules/scroll-snap-slider/dist/scroll-snap-slider.mjs","webpack://wsf-master-oap/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://wsf-master-oap/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://wsf-master-oap/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://wsf-master-oap/./node_modules/@babel/runtime/helpers/esm/defineProperty.js"],"sourcesContent":["export default function(n){return{all:n=n||new Map,on:function(t,e){var i=n.get(t);i?i.push(e):n.set(t,[e])},off:function(t,e){var i=n.get(t);i&&(e?i.splice(i.indexOf(e)>>>0,1):n.set(t,[]))},emit:function(t,e){var i=n.get(t);i&&i.slice().map(function(n){n(e)}),(i=n.get(\"*\"))&&i.slice().map(function(n){n(t,e)})}}}\n//# sourceMappingURL=mitt.mjs.map\n","import mitt from 'mitt';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nvar WHITELISTED_METHODS = ['on', 'off', 'emit'];\nfunction prefixMethods(api) {\n if (!api) throw new TypeError(\"eventbus-js#prefixMethods/error: Cannot prefix API methods\");\n var prefixedAPI = WHITELISTED_METHODS.reduce(function (accumulator, methodName) {\n var prefixedMethodName = \"$\" + methodName;\n if (!(prefixedMethodName in api)) {\n accumulator[prefixedMethodName] = api[methodName];\n }\n return accumulator;\n }, {});\n return prefixedAPI;\n}\n\nvar mockEventEmit = function mockEventEmit() {\n global.restoreEventEmit();\n window.eventBus = window.eventBus || {};\n window.eventBus.emit = jest.fn();\n return window.eventBus.emit;\n};\nvar restoreEventEmit = function restoreEventEmit() {\n if (window.eventBus && window.eventBus.emit) {\n window.eventBus.emit = undefined;\n }\n};\nvar mockEventOn = function mockEventOn() {\n global.restoreEventOn();\n window.eventBus = window.eventBus || {};\n window.eventBus.on = jest.fn();\n return window.eventBus.on;\n};\nvar restoreEventOn = function restoreEventOn() {\n if (window.eventBus && window.eventBus.on) {\n window.eventBus.on = undefined;\n }\n};\nvar mittInstanceStub = {\n on: function on() {\n return true;\n },\n emit: function emit() {\n return true;\n },\n off: function off() {\n return true;\n }\n};\nvar eventBus = /*#__PURE__*/_extends({}, /*#__PURE__*/prefixMethods(mittInstanceStub), mittInstanceStub);\nObject.defineProperty(window, 'eventBus', {\n value: eventBus,\n writable: true\n});\nvar stub = (function () {\n global.mockEventEmit = mockEventEmit;\n global.mockEventOn = mockEventOn;\n global.restoreEventEmit = restoreEventEmit;\n global.restoreEventOn = restoreEventOn;\n});\n\nvar mittInstance = /*#__PURE__*/mitt();\nvar eventBus$1 = /*#__PURE__*/_extends({}, /*#__PURE__*/prefixMethods(mittInstance), mittInstance);\nfunction exposeGlobals() {\n window.eventBus = eventBus$1;\n}\n\nexport default eventBus$1;\nexport { eventBus$1 as eventBus, exposeGlobals, stub as stubEventBus };\n//# sourceMappingURL=eventbus-js.esm.js.map\n","function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nvar Config = /*#__PURE__*/function () {\n function Config(data) {\n this.data = data;\n }\n var _proto = Config.prototype;\n _proto.extract = function extract(item) {\n var NullObjectConfig = {\n name: '',\n source: '',\n strategy: ''\n };\n var config;\n try {\n var _item$textContent;\n var nodeText = (_item$textContent = item.textContent) == null ? void 0 : _item$textContent.trim();\n config = _extends({\n name: item.getAttribute('name')\n }, JSON.parse(nodeText));\n } catch (ex) {\n config = NullObjectConfig;\n }\n return config;\n };\n _proto.get = function get() {\n return this.data.map(this.extract);\n };\n return Config;\n}();\n\nvar Strategy;\n(function (Strategy) {\n Strategy[\"Scroll\"] = \"scroll\";\n Strategy[\"Click\"] = \"click\";\n Strategy[\"Subtree\"] = \"subtree\";\n Strategy[\"Visibility\"] = \"visibility\";\n Strategy[\"Timeout\"] = \"timeout\";\n Strategy[\"Immediate\"] = \"immediate\";\n})(Strategy || (Strategy = {}));\nvar BaseStrategy = /*#__PURE__*/function () {\n function BaseStrategy(parameters) {\n this.config = parameters.config;\n this.root = parameters.root;\n this.script = parameters.script;\n }\n var _proto = BaseStrategy.prototype;\n _proto.setup = function setup(handler) {\n handler(this.script);\n };\n return BaseStrategy;\n}();\n\nvar Click = /*#__PURE__*/function (_BaseStrategy) {\n _inheritsLoose(Click, _BaseStrategy);\n function Click(parameters) {\n var _this;\n _this = _BaseStrategy.call(this, parameters) || this;\n _this.el = document.querySelector(\"\" + _this.config.element) || document;\n return _this;\n }\n var _proto = Click.prototype;\n _proto.setup = function setup(handler) {\n var _this2 = this;\n this.el.addEventListener('click', function () {\n return handler(_this2.script);\n }, {\n once: true\n });\n };\n return Click;\n}(BaseStrategy);\n\nvar Scroll = /*#__PURE__*/function (_BaseStrategy) {\n _inheritsLoose(Scroll, _BaseStrategy);\n function Scroll() {\n return _BaseStrategy.apply(this, arguments) || this;\n }\n var _proto = Scroll.prototype;\n _proto.setup = function setup(handler) {\n var _this = this;\n document.addEventListener('scroll', function () {\n return handler(_this.script);\n }, {\n once: true\n });\n };\n return Scroll;\n}(BaseStrategy);\n\nvar Subtree = /*#__PURE__*/function (_BaseStrategy) {\n _inheritsLoose(Subtree, _BaseStrategy);\n function Subtree() {\n var _this;\n _this = _BaseStrategy.apply(this, arguments) || this;\n _this.main = document.querySelector('#main');\n return _this;\n }\n var _proto = Subtree.prototype;\n _proto.setup = function setup(handler) {\n var _this2 = this;\n if (!this.main) return;\n var observerInstance = new MutationObserver(function (mutationList, observer) {\n mutationList.forEach(function (mutation) {\n var observedElement = mutation.target.querySelector(\"\" + _this2.config.element);\n if (!observedElement) {\n return;\n }\n handler(_this2.script);\n observer.disconnect();\n });\n });\n observerInstance.observe(this.main, {\n subtree: true,\n childList: true\n });\n };\n return Subtree;\n}(BaseStrategy);\n\nvar Timeout = /*#__PURE__*/function (_BaseStrategy) {\n _inheritsLoose(Timeout, _BaseStrategy);\n function Timeout() {\n return _BaseStrategy.apply(this, arguments) || this;\n }\n var _proto = Timeout.prototype;\n _proto.setup = function setup(handler) {\n var _this = this;\n window.setTimeout(function () {\n return handler(_this.script);\n }, this.config.timeout);\n };\n return Timeout;\n}(BaseStrategy);\n\nvar Visibility = /*#__PURE__*/function (_BaseStrategy) {\n _inheritsLoose(Visibility, _BaseStrategy);\n function Visibility() {\n var _this;\n _this = _BaseStrategy.apply(this, arguments) || this;\n _this.observerOptions = {\n root: null,\n rootMargin: '0px',\n threshold: 0.1\n };\n return _this;\n }\n var _proto = Visibility.prototype;\n _proto.setup = function setup(handler) {\n var _this2 = this;\n var target = document.querySelector(\"\" + this.config.element);\n if (!target) return;\n var observerInstance = new IntersectionObserver(function (entries, observer) {\n entries.forEach(function (entry) {\n if (entry.intersectionRatio <= 0) {\n return;\n }\n handler(_this2.script);\n observer.unobserve(target);\n });\n }, this.observerOptions);\n observerInstance.observe(target);\n };\n return Visibility;\n}(BaseStrategy);\n\nvar Immediate = /*#__PURE__*/function (_BaseStrategy) {\n _inheritsLoose(Immediate, _BaseStrategy);\n function Immediate() {\n return _BaseStrategy.apply(this, arguments) || this;\n }\n var _proto = Immediate.prototype;\n _proto.setup = function setup(handler) {\n handler(this.script);\n };\n return Immediate;\n}(BaseStrategy);\n\nfunction createStrategy(parameters) {\n var strategy;\n switch (parameters.config.strategy) {\n case Strategy.Scroll:\n {\n strategy = new Scroll(parameters);\n break;\n }\n case Strategy.Click:\n {\n strategy = new Click(parameters);\n break;\n }\n case Strategy.Subtree:\n {\n strategy = new Subtree(parameters);\n break;\n }\n case Strategy.Visibility:\n {\n strategy = new Visibility(parameters);\n break;\n }\n case Strategy.Timeout:\n {\n strategy = new Timeout(parameters);\n break;\n }\n /**\r\n * @fallthrough\r\n * Intentional fallthrough\r\n * In both cases, whether the plugin is configured to be loaded immediately,\r\n * or if a strategy is not provided, the third party code is loaded immediately.\r\n */\n case Strategy.Immediate:\n default:\n strategy = new Immediate(parameters);\n }\n strategy.type = parameters.config.strategy;\n return strategy;\n}\n\nvar Loader = /*#__PURE__*/function () {\n function Loader(parameters) {\n this.root = parameters.root;\n }\n var _proto = Loader.prototype;\n _proto.createNode = function createNode(config) {\n var identifier = config.name + \"-deferred\";\n var script = document.createElement('script');\n script.id = identifier;\n script.src = config.source;\n script.async = config.async || true;\n script.defer = config.defer || false;\n script.crossOrigin = 'anonymous';\n return {\n script: script,\n config: config\n };\n };\n _proto.insertNode = function insertNode(script) {\n this.root.appendChild(script);\n };\n _proto.configure = function configure(_ref) {\n var script = _ref.script,\n config = _ref.config;\n var parameters = {\n config: config,\n root: this.root,\n script: script\n };\n var strategy = createStrategy(parameters);\n strategy.setup(this.insertNode.bind(this));\n };\n return Loader;\n}();\n\nfunction load(thirdPartyScriptsConfig) {\n var root = window.document.body;\n if (!root) return;\n var loader = new Loader({\n root: root\n });\n thirdPartyScriptsConfig.filter(function (item) {\n return item.name && item.strategy && item.source;\n }).map(function (config) {\n return loader.createNode(config);\n }).forEach(function (item) {\n if (!item || Object.keys(item).length !== 2) return;\n loader.configure(item);\n });\n}\nfunction init() {\n var timerId = setTimeout(function () {\n var data = Array.from(document.querySelectorAll('[data-sisyphus-enabled=\"true\"]') || []);\n var config = new Config(data);\n var thirdParties = config.get();\n if (thirdParties != null && thirdParties.length) {\n load(thirdParties);\n }\n clearTimeout(timerId);\n }, 0);\n}\n\nexport default init;\nexport { load };\n//# sourceMappingURL=sisyphus.esm.js.map\n","var loadVuePlugin = function loadVuePlugin(vueLib, plugin) {\n try {\n plugin && vueLib.use(plugin);\n console.info('zone-plugin-loader#loadVuePlugin/info: plugin loaded');\n } catch (e) {\n if (e instanceof TypeError) {\n console.warn('zone-plugin-loader#loadVuePlugin/info: No customizations found');\n } else {\n console.error('zone-plugin-loader#loadVuePlugin/error: something went wrong\\n', e);\n }\n }\n};\n\nvar loadStorePlugins = function loadStorePlugins(storeInstance, storeModules) {\n try {\n if (!storeModules || typeof storeModules !== 'object') return;\n Object.entries(storeModules).forEach(function (_ref) {\n var name = _ref[0],\n module = _ref[1];\n return storeInstance.registerModule(name, module, {\n preserveState: true\n });\n });\n console.info('zone-plugin-loader#loadStorePlugins/info: store modules loaded');\n } catch (e) {\n if (e instanceof TypeError) {\n console.warn('zone-plugin-loader#loadStorePlugins/info: No customizations found');\n } else {\n console.error('zone-plugin-loader#loadStorePlugins/error: something went wrong\\n', e);\n }\n }\n};\n\nvar load = function load(vueLib, storeInstance) {\n var ZONE_CUSTOMIZATION_PLUGIN_NAME = process.env.VUE_APP_LOCAL_ZONE_CUSTOMIZATION_GLOBAL_VAR !== undefined && window[process.env.VUE_APP_LOCAL_ZONE_CUSTOMIZATION_GLOBAL_VAR];\n try {\n var _window$ZONE_CUSTOMIZ = window[ZONE_CUSTOMIZATION_PLUGIN_NAME],\n plugin = _window$ZONE_CUSTOMIZ[\"default\"],\n storeModules = _window$ZONE_CUSTOMIZ.storeModules;\n loadVuePlugin(vueLib, plugin);\n loadStorePlugins(storeInstance, storeModules);\n console.info('zone-plugin-loader#load/info: store modules loaded');\n } catch (e) {\n if (e instanceof TypeError) {\n console.warn('zone-plugin-loader#load/info: No customizations found');\n } else {\n console.error('zone-plugin-loader#load/error: something went wrong\\n', e);\n }\n }\n};\n\nexport default load;\n//# sourceMappingURL=zone-plugin-loader.esm.js.map\n","/*\n * anime.js v3.2.2\n * (c) 2023 Julian Garnier\n * Released under the MIT license\n * animejs.com\n */\n\n// Defaults\n\nvar defaultInstanceSettings = {\n update: null,\n begin: null,\n loopBegin: null,\n changeBegin: null,\n change: null,\n changeComplete: null,\n loopComplete: null,\n complete: null,\n loop: 1,\n direction: 'normal',\n autoplay: true,\n timelineOffset: 0\n};\n\nvar defaultTweenSettings = {\n duration: 1000,\n delay: 0,\n endDelay: 0,\n easing: 'easeOutElastic(1, .5)',\n round: 0\n};\n\nvar validTransforms = ['translateX', 'translateY', 'translateZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'perspective', 'matrix', 'matrix3d'];\n\n// Caching\n\nvar cache = {\n CSS: {},\n springs: {}\n};\n\n// Utils\n\nfunction minMax(val, min, max) {\n return Math.min(Math.max(val, min), max);\n}\n\nfunction stringContains(str, text) {\n return str.indexOf(text) > -1;\n}\n\nfunction applyArguments(func, args) {\n return func.apply(null, args);\n}\n\nvar is = {\n arr: function (a) { return Array.isArray(a); },\n obj: function (a) { return stringContains(Object.prototype.toString.call(a), 'Object'); },\n pth: function (a) { return is.obj(a) && a.hasOwnProperty('totalLength'); },\n svg: function (a) { return a instanceof SVGElement; },\n inp: function (a) { return a instanceof HTMLInputElement; },\n dom: function (a) { return a.nodeType || is.svg(a); },\n str: function (a) { return typeof a === 'string'; },\n fnc: function (a) { return typeof a === 'function'; },\n und: function (a) { return typeof a === 'undefined'; },\n nil: function (a) { return is.und(a) || a === null; },\n hex: function (a) { return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a); },\n rgb: function (a) { return /^rgb/.test(a); },\n hsl: function (a) { return /^hsl/.test(a); },\n col: function (a) { return (is.hex(a) || is.rgb(a) || is.hsl(a)); },\n key: function (a) { return !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes'; },\n};\n\n// Easings\n\nfunction parseEasingParameters(string) {\n var match = /\\(([^)]+)\\)/.exec(string);\n return match ? match[1].split(',').map(function (p) { return parseFloat(p); }) : [];\n}\n\n// Spring solver inspired by Webkit Copyright © 2016 Apple Inc. All rights reserved. https://webkit.org/demos/spring/spring.js\n\nfunction spring(string, duration) {\n\n var params = parseEasingParameters(string);\n var mass = minMax(is.und(params[0]) ? 1 : params[0], .1, 100);\n var stiffness = minMax(is.und(params[1]) ? 100 : params[1], .1, 100);\n var damping = minMax(is.und(params[2]) ? 10 : params[2], .1, 100);\n var velocity = minMax(is.und(params[3]) ? 0 : params[3], .1, 100);\n var w0 = Math.sqrt(stiffness / mass);\n var zeta = damping / (2 * Math.sqrt(stiffness * mass));\n var wd = zeta < 1 ? w0 * Math.sqrt(1 - zeta * zeta) : 0;\n var a = 1;\n var b = zeta < 1 ? (zeta * w0 + -velocity) / wd : -velocity + w0;\n\n function solver(t) {\n var progress = duration ? (duration * t) / 1000 : t;\n if (zeta < 1) {\n progress = Math.exp(-progress * zeta * w0) * (a * Math.cos(wd * progress) + b * Math.sin(wd * progress));\n } else {\n progress = (a + b * progress) * Math.exp(-progress * w0);\n }\n if (t === 0 || t === 1) { return t; }\n return 1 - progress;\n }\n\n function getDuration() {\n var cached = cache.springs[string];\n if (cached) { return cached; }\n var frame = 1/6;\n var elapsed = 0;\n var rest = 0;\n while(true) {\n elapsed += frame;\n if (solver(elapsed) === 1) {\n rest++;\n if (rest >= 16) { break; }\n } else {\n rest = 0;\n }\n }\n var duration = elapsed * frame * 1000;\n cache.springs[string] = duration;\n return duration;\n }\n\n return duration ? solver : getDuration;\n\n}\n\n// Basic steps easing implementation https://developer.mozilla.org/fr/docs/Web/CSS/transition-timing-function\n\nfunction steps(steps) {\n if ( steps === void 0 ) steps = 10;\n\n return function (t) { return Math.ceil((minMax(t, 0.000001, 1)) * steps) * (1 / steps); };\n}\n\n// BezierEasing https://github.com/gre/bezier-easing\n\nvar bezier = (function () {\n\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\n function A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1 }\n function B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1 }\n function C(aA1) { return 3.0 * aA1 }\n\n function calcBezier(aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT }\n function getSlope(aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1) }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) { aB = currentT; } else { aA = currentT; }\n } while (Math.abs(currentX) > 0.0000001 && ++i < 10);\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < 4; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) { return aGuessT; }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n\n function bezier(mX1, mY1, mX2, mY2) {\n\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { return; }\n var sampleValues = new Float32Array(kSplineTableSize);\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n\n var intervalStart = 0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample;\n\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= 0.001) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n\n }\n\n return function (x) {\n if (mX1 === mY1 && mX2 === mY2) { return x; }\n if (x === 0 || x === 1) { return x; }\n return calcBezier(getTForX(x), mY1, mY2);\n }\n\n }\n\n return bezier;\n\n})();\n\nvar penner = (function () {\n\n // Based on jQuery UI's implemenation of easing equations from Robert Penner (http://www.robertpenner.com/easing)\n\n var eases = { linear: function () { return function (t) { return t; }; } };\n\n var functionEasings = {\n Sine: function () { return function (t) { return 1 - Math.cos(t * Math.PI / 2); }; },\n Expo: function () { return function (t) { return t ? Math.pow(2, 10 * t - 10) : 0; }; },\n Circ: function () { return function (t) { return 1 - Math.sqrt(1 - t * t); }; },\n Back: function () { return function (t) { return t * t * (3 * t - 2); }; },\n Bounce: function () { return function (t) {\n var pow2, b = 4;\n while (t < (( pow2 = Math.pow(2, --b)) - 1) / 11) {}\n return 1 / Math.pow(4, 3 - b) - 7.5625 * Math.pow(( pow2 * 3 - 2 ) / 22 - t, 2)\n }; },\n Elastic: function (amplitude, period) {\n if ( amplitude === void 0 ) amplitude = 1;\n if ( period === void 0 ) period = .5;\n\n var a = minMax(amplitude, 1, 10);\n var p = minMax(period, .1, 2);\n return function (t) {\n return (t === 0 || t === 1) ? t : \n -a * Math.pow(2, 10 * (t - 1)) * Math.sin((((t - 1) - (p / (Math.PI * 2) * Math.asin(1 / a))) * (Math.PI * 2)) / p);\n }\n }\n };\n\n var baseEasings = ['Quad', 'Cubic', 'Quart', 'Quint'];\n\n baseEasings.forEach(function (name, i) {\n functionEasings[name] = function () { return function (t) { return Math.pow(t, i + 2); }; };\n });\n\n Object.keys(functionEasings).forEach(function (name) {\n var easeIn = functionEasings[name];\n eases['easeIn' + name] = easeIn;\n eases['easeOut' + name] = function (a, b) { return function (t) { return 1 - easeIn(a, b)(1 - t); }; };\n eases['easeInOut' + name] = function (a, b) { return function (t) { return t < 0.5 ? easeIn(a, b)(t * 2) / 2 : \n 1 - easeIn(a, b)(t * -2 + 2) / 2; }; };\n eases['easeOutIn' + name] = function (a, b) { return function (t) { return t < 0.5 ? (1 - easeIn(a, b)(1 - t * 2)) / 2 : \n (easeIn(a, b)(t * 2 - 1) + 1) / 2; }; };\n });\n\n return eases;\n\n})();\n\nfunction parseEasings(easing, duration) {\n if (is.fnc(easing)) { return easing; }\n var name = easing.split('(')[0];\n var ease = penner[name];\n var args = parseEasingParameters(easing);\n switch (name) {\n case 'spring' : return spring(easing, duration);\n case 'cubicBezier' : return applyArguments(bezier, args);\n case 'steps' : return applyArguments(steps, args);\n default : return applyArguments(ease, args);\n }\n}\n\n// Strings\n\nfunction selectString(str) {\n try {\n var nodes = document.querySelectorAll(str);\n return nodes;\n } catch(e) {\n return;\n }\n}\n\n// Arrays\n\nfunction filterArray(arr, callback) {\n var len = arr.length;\n var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\n var result = [];\n for (var i = 0; i < len; i++) {\n if (i in arr) {\n var val = arr[i];\n if (callback.call(thisArg, val, i, arr)) {\n result.push(val);\n }\n }\n }\n return result;\n}\n\nfunction flattenArray(arr) {\n return arr.reduce(function (a, b) { return a.concat(is.arr(b) ? flattenArray(b) : b); }, []);\n}\n\nfunction toArray(o) {\n if (is.arr(o)) { return o; }\n if (is.str(o)) { o = selectString(o) || o; }\n if (o instanceof NodeList || o instanceof HTMLCollection) { return [].slice.call(o); }\n return [o];\n}\n\nfunction arrayContains(arr, val) {\n return arr.some(function (a) { return a === val; });\n}\n\n// Objects\n\nfunction cloneObject(o) {\n var clone = {};\n for (var p in o) { clone[p] = o[p]; }\n return clone;\n}\n\nfunction replaceObjectProps(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o1) { o[p] = o2.hasOwnProperty(p) ? o2[p] : o1[p]; }\n return o;\n}\n\nfunction mergeObjects(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o2) { o[p] = is.und(o1[p]) ? o2[p] : o1[p]; }\n return o;\n}\n\n// Colors\n\nfunction rgbToRgba(rgbValue) {\n var rgb = /rgb\\((\\d+,\\s*[\\d]+,\\s*[\\d]+)\\)/g.exec(rgbValue);\n return rgb ? (\"rgba(\" + (rgb[1]) + \",1)\") : rgbValue;\n}\n\nfunction hexToRgba(hexValue) {\n var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var hex = hexValue.replace(rgx, function (m, r, g, b) { return r + r + g + g + b + b; } );\n var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n var r = parseInt(rgb[1], 16);\n var g = parseInt(rgb[2], 16);\n var b = parseInt(rgb[3], 16);\n return (\"rgba(\" + r + \",\" + g + \",\" + b + \",1)\");\n}\n\nfunction hslToRgba(hslValue) {\n var hsl = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(hslValue) || /hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*([\\d.]+)\\)/g.exec(hslValue);\n var h = parseInt(hsl[1], 10) / 360;\n var s = parseInt(hsl[2], 10) / 100;\n var l = parseInt(hsl[3], 10) / 100;\n var a = hsl[4] || 1;\n function hue2rgb(p, q, t) {\n if (t < 0) { t += 1; }\n if (t > 1) { t -= 1; }\n if (t < 1/6) { return p + (q - p) * 6 * t; }\n if (t < 1/2) { return q; }\n if (t < 2/3) { return p + (q - p) * (2/3 - t) * 6; }\n return p;\n }\n var r, g, b;\n if (s == 0) {\n r = g = b = l;\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n return (\"rgba(\" + (r * 255) + \",\" + (g * 255) + \",\" + (b * 255) + \",\" + a + \")\");\n}\n\nfunction colorToRgb(val) {\n if (is.rgb(val)) { return rgbToRgba(val); }\n if (is.hex(val)) { return hexToRgba(val); }\n if (is.hsl(val)) { return hslToRgba(val); }\n}\n\n// Units\n\nfunction getUnit(val) {\n var split = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(val);\n if (split) { return split[1]; }\n}\n\nfunction getTransformUnit(propName) {\n if (stringContains(propName, 'translate') || propName === 'perspective') { return 'px'; }\n if (stringContains(propName, 'rotate') || stringContains(propName, 'skew')) { return 'deg'; }\n}\n\n// Values\n\nfunction getFunctionValue(val, animatable) {\n if (!is.fnc(val)) { return val; }\n return val(animatable.target, animatable.id, animatable.total);\n}\n\nfunction getAttribute(el, prop) {\n return el.getAttribute(prop);\n}\n\nfunction convertPxToUnit(el, value, unit) {\n var valueUnit = getUnit(value);\n if (arrayContains([unit, 'deg', 'rad', 'turn'], valueUnit)) { return value; }\n var cached = cache.CSS[value + unit];\n if (!is.und(cached)) { return cached; }\n var baseline = 100;\n var tempEl = document.createElement(el.tagName);\n var parentEl = (el.parentNode && (el.parentNode !== document)) ? el.parentNode : document.body;\n parentEl.appendChild(tempEl);\n tempEl.style.position = 'absolute';\n tempEl.style.width = baseline + unit;\n var factor = baseline / tempEl.offsetWidth;\n parentEl.removeChild(tempEl);\n var convertedUnit = factor * parseFloat(value);\n cache.CSS[value + unit] = convertedUnit;\n return convertedUnit;\n}\n\nfunction getCSSValue(el, prop, unit) {\n if (prop in el.style) {\n var uppercasePropName = prop.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n var value = el.style[prop] || getComputedStyle(el).getPropertyValue(uppercasePropName) || '0';\n return unit ? convertPxToUnit(el, value, unit) : value;\n }\n}\n\nfunction getAnimationType(el, prop) {\n if (is.dom(el) && !is.inp(el) && (!is.nil(getAttribute(el, prop)) || (is.svg(el) && el[prop]))) { return 'attribute'; }\n if (is.dom(el) && arrayContains(validTransforms, prop)) { return 'transform'; }\n if (is.dom(el) && (prop !== 'transform' && getCSSValue(el, prop))) { return 'css'; }\n if (el[prop] != null) { return 'object'; }\n}\n\nfunction getElementTransforms(el) {\n if (!is.dom(el)) { return; }\n var str = el.style.transform || '';\n var reg = /(\\w+)\\(([^)]*)\\)/g;\n var transforms = new Map();\n var m; while (m = reg.exec(str)) { transforms.set(m[1], m[2]); }\n return transforms;\n}\n\nfunction getTransformValue(el, propName, animatable, unit) {\n var defaultVal = stringContains(propName, 'scale') ? 1 : 0 + getTransformUnit(propName);\n var value = getElementTransforms(el).get(propName) || defaultVal;\n if (animatable) {\n animatable.transforms.list.set(propName, value);\n animatable.transforms['last'] = propName;\n }\n return unit ? convertPxToUnit(el, value, unit) : value;\n}\n\nfunction getOriginalTargetValue(target, propName, unit, animatable) {\n switch (getAnimationType(target, propName)) {\n case 'transform': return getTransformValue(target, propName, animatable, unit);\n case 'css': return getCSSValue(target, propName, unit);\n case 'attribute': return getAttribute(target, propName);\n default: return target[propName] || 0;\n }\n}\n\nfunction getRelativeValue(to, from) {\n var operator = /^(\\*=|\\+=|-=)/.exec(to);\n if (!operator) { return to; }\n var u = getUnit(to) || 0;\n var x = parseFloat(from);\n var y = parseFloat(to.replace(operator[0], ''));\n switch (operator[0][0]) {\n case '+': return x + y + u;\n case '-': return x - y + u;\n case '*': return x * y + u;\n }\n}\n\nfunction validateValue(val, unit) {\n if (is.col(val)) { return colorToRgb(val); }\n if (/\\s/g.test(val)) { return val; }\n var originalUnit = getUnit(val);\n var unitLess = originalUnit ? val.substr(0, val.length - originalUnit.length) : val;\n if (unit) { return unitLess + unit; }\n return unitLess;\n}\n\n// getTotalLength() equivalent for circle, rect, polyline, polygon and line shapes\n// adapted from https://gist.github.com/SebLambla/3e0550c496c236709744\n\nfunction getDistance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n\nfunction getCircleLength(el) {\n return Math.PI * 2 * getAttribute(el, 'r');\n}\n\nfunction getRectLength(el) {\n return (getAttribute(el, 'width') * 2) + (getAttribute(el, 'height') * 2);\n}\n\nfunction getLineLength(el) {\n return getDistance(\n {x: getAttribute(el, 'x1'), y: getAttribute(el, 'y1')}, \n {x: getAttribute(el, 'x2'), y: getAttribute(el, 'y2')}\n );\n}\n\nfunction getPolylineLength(el) {\n var points = el.points;\n var totalLength = 0;\n var previousPos;\n for (var i = 0 ; i < points.numberOfItems; i++) {\n var currentPos = points.getItem(i);\n if (i > 0) { totalLength += getDistance(previousPos, currentPos); }\n previousPos = currentPos;\n }\n return totalLength;\n}\n\nfunction getPolygonLength(el) {\n var points = el.points;\n return getPolylineLength(el) + getDistance(points.getItem(points.numberOfItems - 1), points.getItem(0));\n}\n\n// Path animation\n\nfunction getTotalLength(el) {\n if (el.getTotalLength) { return el.getTotalLength(); }\n switch(el.tagName.toLowerCase()) {\n case 'circle': return getCircleLength(el);\n case 'rect': return getRectLength(el);\n case 'line': return getLineLength(el);\n case 'polyline': return getPolylineLength(el);\n case 'polygon': return getPolygonLength(el);\n }\n}\n\nfunction setDashoffset(el) {\n var pathLength = getTotalLength(el);\n el.setAttribute('stroke-dasharray', pathLength);\n return pathLength;\n}\n\n// Motion path\n\nfunction getParentSvgEl(el) {\n var parentEl = el.parentNode;\n while (is.svg(parentEl)) {\n if (!is.svg(parentEl.parentNode)) { break; }\n parentEl = parentEl.parentNode;\n }\n return parentEl;\n}\n\nfunction getParentSvg(pathEl, svgData) {\n var svg = svgData || {};\n var parentSvgEl = svg.el || getParentSvgEl(pathEl);\n var rect = parentSvgEl.getBoundingClientRect();\n var viewBoxAttr = getAttribute(parentSvgEl, 'viewBox');\n var width = rect.width;\n var height = rect.height;\n var viewBox = svg.viewBox || (viewBoxAttr ? viewBoxAttr.split(' ') : [0, 0, width, height]);\n return {\n el: parentSvgEl,\n viewBox: viewBox,\n x: viewBox[0] / 1,\n y: viewBox[1] / 1,\n w: width,\n h: height,\n vW: viewBox[2],\n vH: viewBox[3]\n }\n}\n\nfunction getPath(path, percent) {\n var pathEl = is.str(path) ? selectString(path)[0] : path;\n var p = percent || 100;\n return function(property) {\n return {\n property: property,\n el: pathEl,\n svg: getParentSvg(pathEl),\n totalLength: getTotalLength(pathEl) * (p / 100)\n }\n }\n}\n\nfunction getPathProgress(path, progress, isPathTargetInsideSVG) {\n function point(offset) {\n if ( offset === void 0 ) offset = 0;\n\n var l = progress + offset >= 1 ? progress + offset : 0;\n return path.el.getPointAtLength(l);\n }\n var svg = getParentSvg(path.el, path.svg);\n var p = point();\n var p0 = point(-1);\n var p1 = point(+1);\n var scaleX = isPathTargetInsideSVG ? 1 : svg.w / svg.vW;\n var scaleY = isPathTargetInsideSVG ? 1 : svg.h / svg.vH;\n switch (path.property) {\n case 'x': return (p.x - svg.x) * scaleX;\n case 'y': return (p.y - svg.y) * scaleY;\n case 'angle': return Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI;\n }\n}\n\n// Decompose value\n\nfunction decomposeValue(val, unit) {\n // const rgx = /-?\\d*\\.?\\d+/g; // handles basic numbers\n // const rgx = /[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n var rgx = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n var value = validateValue((is.pth(val) ? val.totalLength : val), unit) + '';\n return {\n original: value,\n numbers: value.match(rgx) ? value.match(rgx).map(Number) : [0],\n strings: (is.str(val) || unit) ? value.split(rgx) : []\n }\n}\n\n// Animatables\n\nfunction parseTargets(targets) {\n var targetsArray = targets ? (flattenArray(is.arr(targets) ? targets.map(toArray) : toArray(targets))) : [];\n return filterArray(targetsArray, function (item, pos, self) { return self.indexOf(item) === pos; });\n}\n\nfunction getAnimatables(targets) {\n var parsed = parseTargets(targets);\n return parsed.map(function (t, i) {\n return {target: t, id: i, total: parsed.length, transforms: { list: getElementTransforms(t) } };\n });\n}\n\n// Properties\n\nfunction normalizePropertyTweens(prop, tweenSettings) {\n var settings = cloneObject(tweenSettings);\n // Override duration if easing is a spring\n if (/^spring/.test(settings.easing)) { settings.duration = spring(settings.easing); }\n if (is.arr(prop)) {\n var l = prop.length;\n var isFromTo = (l === 2 && !is.obj(prop[0]));\n if (!isFromTo) {\n // Duration divided by the number of tweens\n if (!is.fnc(tweenSettings.duration)) { settings.duration = tweenSettings.duration / l; }\n } else {\n // Transform [from, to] values shorthand to a valid tween value\n prop = {value: prop};\n }\n }\n var propArray = is.arr(prop) ? prop : [prop];\n return propArray.map(function (v, i) {\n var obj = (is.obj(v) && !is.pth(v)) ? v : {value: v};\n // Default delay value should only be applied to the first tween\n if (is.und(obj.delay)) { obj.delay = !i ? tweenSettings.delay : 0; }\n // Default endDelay value should only be applied to the last tween\n if (is.und(obj.endDelay)) { obj.endDelay = i === propArray.length - 1 ? tweenSettings.endDelay : 0; }\n return obj;\n }).map(function (k) { return mergeObjects(k, settings); });\n}\n\n\nfunction flattenKeyframes(keyframes) {\n var propertyNames = filterArray(flattenArray(keyframes.map(function (key) { return Object.keys(key); })), function (p) { return is.key(p); })\n .reduce(function (a,b) { if (a.indexOf(b) < 0) { a.push(b); } return a; }, []);\n var properties = {};\n var loop = function ( i ) {\n var propName = propertyNames[i];\n properties[propName] = keyframes.map(function (key) {\n var newKey = {};\n for (var p in key) {\n if (is.key(p)) {\n if (p == propName) { newKey.value = key[p]; }\n } else {\n newKey[p] = key[p];\n }\n }\n return newKey;\n });\n };\n\n for (var i = 0; i < propertyNames.length; i++) loop( i );\n return properties;\n}\n\nfunction getProperties(tweenSettings, params) {\n var properties = [];\n var keyframes = params.keyframes;\n if (keyframes) { params = mergeObjects(flattenKeyframes(keyframes), params); }\n for (var p in params) {\n if (is.key(p)) {\n properties.push({\n name: p,\n tweens: normalizePropertyTweens(params[p], tweenSettings)\n });\n }\n }\n return properties;\n}\n\n// Tweens\n\nfunction normalizeTweenValues(tween, animatable) {\n var t = {};\n for (var p in tween) {\n var value = getFunctionValue(tween[p], animatable);\n if (is.arr(value)) {\n value = value.map(function (v) { return getFunctionValue(v, animatable); });\n if (value.length === 1) { value = value[0]; }\n }\n t[p] = value;\n }\n t.duration = parseFloat(t.duration);\n t.delay = parseFloat(t.delay);\n return t;\n}\n\nfunction normalizeTweens(prop, animatable) {\n var previousTween;\n return prop.tweens.map(function (t) {\n var tween = normalizeTweenValues(t, animatable);\n var tweenValue = tween.value;\n var to = is.arr(tweenValue) ? tweenValue[1] : tweenValue;\n var toUnit = getUnit(to);\n var originalValue = getOriginalTargetValue(animatable.target, prop.name, toUnit, animatable);\n var previousValue = previousTween ? previousTween.to.original : originalValue;\n var from = is.arr(tweenValue) ? tweenValue[0] : previousValue;\n var fromUnit = getUnit(from) || getUnit(originalValue);\n var unit = toUnit || fromUnit;\n if (is.und(to)) { to = previousValue; }\n tween.from = decomposeValue(from, unit);\n tween.to = decomposeValue(getRelativeValue(to, from), unit);\n tween.start = previousTween ? previousTween.end : 0;\n tween.end = tween.start + tween.delay + tween.duration + tween.endDelay;\n tween.easing = parseEasings(tween.easing, tween.duration);\n tween.isPath = is.pth(tweenValue);\n tween.isPathTargetInsideSVG = tween.isPath && is.svg(animatable.target);\n tween.isColor = is.col(tween.from.original);\n if (tween.isColor) { tween.round = 1; }\n previousTween = tween;\n return tween;\n });\n}\n\n// Tween progress\n\nvar setProgressValue = {\n css: function (t, p, v) { return t.style[p] = v; },\n attribute: function (t, p, v) { return t.setAttribute(p, v); },\n object: function (t, p, v) { return t[p] = v; },\n transform: function (t, p, v, transforms, manual) {\n transforms.list.set(p, v);\n if (p === transforms.last || manual) {\n var str = '';\n transforms.list.forEach(function (value, prop) { str += prop + \"(\" + value + \") \"; });\n t.style.transform = str;\n }\n }\n};\n\n// Set Value helper\n\nfunction setTargetsValue(targets, properties) {\n var animatables = getAnimatables(targets);\n animatables.forEach(function (animatable) {\n for (var property in properties) {\n var value = getFunctionValue(properties[property], animatable);\n var target = animatable.target;\n var valueUnit = getUnit(value);\n var originalValue = getOriginalTargetValue(target, property, valueUnit, animatable);\n var unit = valueUnit || getUnit(originalValue);\n var to = getRelativeValue(validateValue(value, unit), originalValue);\n var animType = getAnimationType(target, property);\n setProgressValue[animType](target, property, to, animatable.transforms, true);\n }\n });\n}\n\n// Animations\n\nfunction createAnimation(animatable, prop) {\n var animType = getAnimationType(animatable.target, prop.name);\n if (animType) {\n var tweens = normalizeTweens(prop, animatable);\n var lastTween = tweens[tweens.length - 1];\n return {\n type: animType,\n property: prop.name,\n animatable: animatable,\n tweens: tweens,\n duration: lastTween.end,\n delay: tweens[0].delay,\n endDelay: lastTween.endDelay\n }\n }\n}\n\nfunction getAnimations(animatables, properties) {\n return filterArray(flattenArray(animatables.map(function (animatable) {\n return properties.map(function (prop) {\n return createAnimation(animatable, prop);\n });\n })), function (a) { return !is.und(a); });\n}\n\n// Create Instance\n\nfunction getInstanceTimings(animations, tweenSettings) {\n var animLength = animations.length;\n var getTlOffset = function (anim) { return anim.timelineOffset ? anim.timelineOffset : 0; };\n var timings = {};\n timings.duration = animLength ? Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration; })) : tweenSettings.duration;\n timings.delay = animLength ? Math.min.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.delay; })) : tweenSettings.delay;\n timings.endDelay = animLength ? timings.duration - Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration - anim.endDelay; })) : tweenSettings.endDelay;\n return timings;\n}\n\nvar instanceID = 0;\n\nfunction createNewInstance(params) {\n var instanceSettings = replaceObjectProps(defaultInstanceSettings, params);\n var tweenSettings = replaceObjectProps(defaultTweenSettings, params);\n var properties = getProperties(tweenSettings, params);\n var animatables = getAnimatables(params.targets);\n var animations = getAnimations(animatables, properties);\n var timings = getInstanceTimings(animations, tweenSettings);\n var id = instanceID;\n instanceID++;\n return mergeObjects(instanceSettings, {\n id: id,\n children: [],\n animatables: animatables,\n animations: animations,\n duration: timings.duration,\n delay: timings.delay,\n endDelay: timings.endDelay\n });\n}\n\n// Core\n\nvar activeInstances = [];\n\nvar engine = (function () {\n var raf;\n\n function play() {\n if (!raf && (!isDocumentHidden() || !anime.suspendWhenDocumentHidden) && activeInstances.length > 0) {\n raf = requestAnimationFrame(step);\n }\n }\n function step(t) {\n // memo on algorithm issue:\n // dangerous iteration over mutable `activeInstances`\n // (that collection may be updated from within callbacks of `tick`-ed animation instances)\n var activeInstancesLength = activeInstances.length;\n var i = 0;\n while (i < activeInstancesLength) {\n var activeInstance = activeInstances[i];\n if (!activeInstance.paused) {\n activeInstance.tick(t);\n i++;\n } else {\n activeInstances.splice(i, 1);\n activeInstancesLength--;\n }\n }\n raf = i > 0 ? requestAnimationFrame(step) : undefined;\n }\n\n function handleVisibilityChange() {\n if (!anime.suspendWhenDocumentHidden) { return; }\n\n if (isDocumentHidden()) {\n // suspend ticks\n raf = cancelAnimationFrame(raf);\n } else { // is back to active tab\n // first adjust animations to consider the time that ticks were suspended\n activeInstances.forEach(\n function (instance) { return instance ._onDocumentVisibility(); }\n );\n engine();\n }\n }\n if (typeof document !== 'undefined') {\n document.addEventListener('visibilitychange', handleVisibilityChange);\n }\n\n return play;\n})();\n\nfunction isDocumentHidden() {\n return !!document && document.hidden;\n}\n\n// Public Instance\n\nfunction anime(params) {\n if ( params === void 0 ) params = {};\n\n\n var startTime = 0, lastTime = 0, now = 0;\n var children, childrenLength = 0;\n var resolve = null;\n\n function makePromise(instance) {\n var promise = window.Promise && new Promise(function (_resolve) { return resolve = _resolve; });\n instance.finished = promise;\n return promise;\n }\n\n var instance = createNewInstance(params);\n var promise = makePromise(instance);\n\n function toggleInstanceDirection() {\n var direction = instance.direction;\n if (direction !== 'alternate') {\n instance.direction = direction !== 'normal' ? 'normal' : 'reverse';\n }\n instance.reversed = !instance.reversed;\n children.forEach(function (child) { return child.reversed = instance.reversed; });\n }\n\n function adjustTime(time) {\n return instance.reversed ? instance.duration - time : time;\n }\n\n function resetTime() {\n startTime = 0;\n lastTime = adjustTime(instance.currentTime) * (1 / anime.speed);\n }\n\n function seekChild(time, child) {\n if (child) { child.seek(time - child.timelineOffset); }\n }\n\n function syncInstanceChildren(time) {\n if (!instance.reversePlayback) {\n for (var i = 0; i < childrenLength; i++) { seekChild(time, children[i]); }\n } else {\n for (var i$1 = childrenLength; i$1--;) { seekChild(time, children[i$1]); }\n }\n }\n\n function setAnimationsProgress(insTime) {\n var i = 0;\n var animations = instance.animations;\n var animationsLength = animations.length;\n while (i < animationsLength) {\n var anim = animations[i];\n var animatable = anim.animatable;\n var tweens = anim.tweens;\n var tweenLength = tweens.length - 1;\n var tween = tweens[tweenLength];\n // Only check for keyframes if there is more than one tween\n if (tweenLength) { tween = filterArray(tweens, function (t) { return (insTime < t.end); })[0] || tween; }\n var elapsed = minMax(insTime - tween.start - tween.delay, 0, tween.duration) / tween.duration;\n var eased = isNaN(elapsed) ? 1 : tween.easing(elapsed);\n var strings = tween.to.strings;\n var round = tween.round;\n var numbers = [];\n var toNumbersLength = tween.to.numbers.length;\n var progress = (void 0);\n for (var n = 0; n < toNumbersLength; n++) {\n var value = (void 0);\n var toNumber = tween.to.numbers[n];\n var fromNumber = tween.from.numbers[n] || 0;\n if (!tween.isPath) {\n value = fromNumber + (eased * (toNumber - fromNumber));\n } else {\n value = getPathProgress(tween.value, eased * toNumber, tween.isPathTargetInsideSVG);\n }\n if (round) {\n if (!(tween.isColor && n > 2)) {\n value = Math.round(value * round) / round;\n }\n }\n numbers.push(value);\n }\n // Manual Array.reduce for better performances\n var stringsLength = strings.length;\n if (!stringsLength) {\n progress = numbers[0];\n } else {\n progress = strings[0];\n for (var s = 0; s < stringsLength; s++) {\n var a = strings[s];\n var b = strings[s + 1];\n var n$1 = numbers[s];\n if (!isNaN(n$1)) {\n if (!b) {\n progress += n$1 + ' ';\n } else {\n progress += n$1 + b;\n }\n }\n }\n }\n setProgressValue[anim.type](animatable.target, anim.property, progress, animatable.transforms);\n anim.currentValue = progress;\n i++;\n }\n }\n\n function setCallback(cb) {\n if (instance[cb] && !instance.passThrough) { instance[cb](instance); }\n }\n\n function countIteration() {\n if (instance.remaining && instance.remaining !== true) {\n instance.remaining--;\n }\n }\n\n function setInstanceProgress(engineTime) {\n var insDuration = instance.duration;\n var insDelay = instance.delay;\n var insEndDelay = insDuration - instance.endDelay;\n var insTime = adjustTime(engineTime);\n instance.progress = minMax((insTime / insDuration) * 100, 0, 100);\n instance.reversePlayback = insTime < instance.currentTime;\n if (children) { syncInstanceChildren(insTime); }\n if (!instance.began && instance.currentTime > 0) {\n instance.began = true;\n setCallback('begin');\n }\n if (!instance.loopBegan && instance.currentTime > 0) {\n instance.loopBegan = true;\n setCallback('loopBegin');\n }\n if (insTime <= insDelay && instance.currentTime !== 0) {\n setAnimationsProgress(0);\n }\n if ((insTime >= insEndDelay && instance.currentTime !== insDuration) || !insDuration) {\n setAnimationsProgress(insDuration);\n }\n if (insTime > insDelay && insTime < insEndDelay) {\n if (!instance.changeBegan) {\n instance.changeBegan = true;\n instance.changeCompleted = false;\n setCallback('changeBegin');\n }\n setCallback('change');\n setAnimationsProgress(insTime);\n } else {\n if (instance.changeBegan) {\n instance.changeCompleted = true;\n instance.changeBegan = false;\n setCallback('changeComplete');\n }\n }\n instance.currentTime = minMax(insTime, 0, insDuration);\n if (instance.began) { setCallback('update'); }\n if (engineTime >= insDuration) {\n lastTime = 0;\n countIteration();\n if (!instance.remaining) {\n instance.paused = true;\n if (!instance.completed) {\n instance.completed = true;\n setCallback('loopComplete');\n setCallback('complete');\n if (!instance.passThrough && 'Promise' in window) {\n resolve();\n promise = makePromise(instance);\n }\n }\n } else {\n startTime = now;\n setCallback('loopComplete');\n instance.loopBegan = false;\n if (instance.direction === 'alternate') {\n toggleInstanceDirection();\n }\n }\n }\n }\n\n instance.reset = function() {\n var direction = instance.direction;\n instance.passThrough = false;\n instance.currentTime = 0;\n instance.progress = 0;\n instance.paused = true;\n instance.began = false;\n instance.loopBegan = false;\n instance.changeBegan = false;\n instance.completed = false;\n instance.changeCompleted = false;\n instance.reversePlayback = false;\n instance.reversed = direction === 'reverse';\n instance.remaining = instance.loop;\n children = instance.children;\n childrenLength = children.length;\n for (var i = childrenLength; i--;) { instance.children[i].reset(); }\n if (instance.reversed && instance.loop !== true || (direction === 'alternate' && instance.loop === 1)) { instance.remaining++; }\n setAnimationsProgress(instance.reversed ? instance.duration : 0);\n };\n\n // internal method (for engine) to adjust animation timings before restoring engine ticks (rAF)\n instance._onDocumentVisibility = resetTime;\n\n // Set Value helper\n\n instance.set = function(targets, properties) {\n setTargetsValue(targets, properties);\n return instance;\n };\n\n instance.tick = function(t) {\n now = t;\n if (!startTime) { startTime = now; }\n setInstanceProgress((now + (lastTime - startTime)) * anime.speed);\n };\n\n instance.seek = function(time) {\n setInstanceProgress(adjustTime(time));\n };\n\n instance.pause = function() {\n instance.paused = true;\n resetTime();\n };\n\n instance.play = function() {\n if (!instance.paused) { return; }\n if (instance.completed) { instance.reset(); }\n instance.paused = false;\n activeInstances.push(instance);\n resetTime();\n engine();\n };\n\n instance.reverse = function() {\n toggleInstanceDirection();\n instance.completed = instance.reversed ? false : true;\n resetTime();\n };\n\n instance.restart = function() {\n instance.reset();\n instance.play();\n };\n\n instance.remove = function(targets) {\n var targetsArray = parseTargets(targets);\n removeTargetsFromInstance(targetsArray, instance);\n };\n\n instance.reset();\n\n if (instance.autoplay) { instance.play(); }\n\n return instance;\n\n}\n\n// Remove targets from animation\n\nfunction removeTargetsFromAnimations(targetsArray, animations) {\n for (var a = animations.length; a--;) {\n if (arrayContains(targetsArray, animations[a].animatable.target)) {\n animations.splice(a, 1);\n }\n }\n}\n\nfunction removeTargetsFromInstance(targetsArray, instance) {\n var animations = instance.animations;\n var children = instance.children;\n removeTargetsFromAnimations(targetsArray, animations);\n for (var c = children.length; c--;) {\n var child = children[c];\n var childAnimations = child.animations;\n removeTargetsFromAnimations(targetsArray, childAnimations);\n if (!childAnimations.length && !child.children.length) { children.splice(c, 1); }\n }\n if (!animations.length && !children.length) { instance.pause(); }\n}\n\nfunction removeTargetsFromActiveInstances(targets) {\n var targetsArray = parseTargets(targets);\n for (var i = activeInstances.length; i--;) {\n var instance = activeInstances[i];\n removeTargetsFromInstance(targetsArray, instance);\n }\n}\n\n// Stagger helpers\n\nfunction stagger(val, params) {\n if ( params === void 0 ) params = {};\n\n var direction = params.direction || 'normal';\n var easing = params.easing ? parseEasings(params.easing) : null;\n var grid = params.grid;\n var axis = params.axis;\n var fromIndex = params.from || 0;\n var fromFirst = fromIndex === 'first';\n var fromCenter = fromIndex === 'center';\n var fromLast = fromIndex === 'last';\n var isRange = is.arr(val);\n var val1 = isRange ? parseFloat(val[0]) : parseFloat(val);\n var val2 = isRange ? parseFloat(val[1]) : 0;\n var unit = getUnit(isRange ? val[1] : val) || 0;\n var start = params.start || 0 + (isRange ? val1 : 0);\n var values = [];\n var maxValue = 0;\n return function (el, i, t) {\n if (fromFirst) { fromIndex = 0; }\n if (fromCenter) { fromIndex = (t - 1) / 2; }\n if (fromLast) { fromIndex = t - 1; }\n if (!values.length) {\n for (var index = 0; index < t; index++) {\n if (!grid) {\n values.push(Math.abs(fromIndex - index));\n } else {\n var fromX = !fromCenter ? fromIndex%grid[0] : (grid[0]-1)/2;\n var fromY = !fromCenter ? Math.floor(fromIndex/grid[0]) : (grid[1]-1)/2;\n var toX = index%grid[0];\n var toY = Math.floor(index/grid[0]);\n var distanceX = fromX - toX;\n var distanceY = fromY - toY;\n var value = Math.sqrt(distanceX * distanceX + distanceY * distanceY);\n if (axis === 'x') { value = -distanceX; }\n if (axis === 'y') { value = -distanceY; }\n values.push(value);\n }\n maxValue = Math.max.apply(Math, values);\n }\n if (easing) { values = values.map(function (val) { return easing(val / maxValue) * maxValue; }); }\n if (direction === 'reverse') { values = values.map(function (val) { return axis ? (val < 0) ? val * -1 : -val : Math.abs(maxValue - val); }); }\n }\n var spacing = isRange ? (val2 - val1) / maxValue : val1;\n return start + (spacing * (Math.round(values[i] * 100) / 100)) + unit;\n }\n}\n\n// Timeline\n\nfunction timeline(params) {\n if ( params === void 0 ) params = {};\n\n var tl = anime(params);\n tl.duration = 0;\n tl.add = function(instanceParams, timelineOffset) {\n var tlIndex = activeInstances.indexOf(tl);\n var children = tl.children;\n if (tlIndex > -1) { activeInstances.splice(tlIndex, 1); }\n function passThrough(ins) { ins.passThrough = true; }\n for (var i = 0; i < children.length; i++) { passThrough(children[i]); }\n var insParams = mergeObjects(instanceParams, replaceObjectProps(defaultTweenSettings, params));\n insParams.targets = insParams.targets || params.targets;\n var tlDuration = tl.duration;\n insParams.autoplay = false;\n insParams.direction = tl.direction;\n insParams.timelineOffset = is.und(timelineOffset) ? tlDuration : getRelativeValue(timelineOffset, tlDuration);\n passThrough(tl);\n tl.seek(insParams.timelineOffset);\n var ins = anime(insParams);\n passThrough(ins);\n children.push(ins);\n var timings = getInstanceTimings(children, params);\n tl.delay = timings.delay;\n tl.endDelay = timings.endDelay;\n tl.duration = timings.duration;\n tl.seek(0);\n tl.reset();\n if (tl.autoplay) { tl.play(); }\n return tl;\n };\n return tl;\n}\n\nanime.version = '3.2.1';\nanime.speed = 1;\n// TODO:#review: naming, documentation\nanime.suspendWhenDocumentHidden = true;\nanime.running = activeInstances;\nanime.remove = removeTargetsFromActiveInstances;\nanime.get = getOriginalTargetValue;\nanime.set = setTargetsValue;\nanime.convertPx = convertPxToUnit;\nanime.path = getPath;\nanime.setDashoffset = setDashoffset;\nanime.stagger = stagger;\nanime.timeline = timeline;\nanime.easing = parseEasings;\nanime.penner = penner;\nanime.random = function (min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; };\n\nexport default anime;\n","(function(window, factory) {\n\tvar lazySizes = factory(window, window.document, Date);\n\twindow.lazySizes = lazySizes;\n\tif(typeof module == 'object' && module.exports){\n\t\tmodule.exports = lazySizes;\n\t}\n}(typeof window != 'undefined' ?\n window : {}, \n/**\n * import(\"./types/global\")\n * @typedef { import(\"./types/lazysizes-config\").LazySizesConfigPartial } LazySizesConfigPartial\n */\nfunction l(window, document, Date) { // Pass in the window Date function also for SSR because the Date class can be lost\n\t'use strict';\n\t/*jshint eqnull:true */\n\n\tvar lazysizes,\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tlazySizesCfg;\n\n\t(function(){\n\t\tvar prop;\n\n\t\tvar lazySizesDefaults = {\n\t\t\tlazyClass: 'lazyload',\n\t\t\tloadedClass: 'lazyloaded',\n\t\t\tloadingClass: 'lazyloading',\n\t\t\tpreloadClass: 'lazypreload',\n\t\t\terrorClass: 'lazyerror',\n\t\t\t//strictClass: 'lazystrict',\n\t\t\tautosizesClass: 'lazyautosizes',\n\t\t\tfastLoadedClass: 'ls-is-cached',\n\t\t\tiframeLoadMode: 0,\n\t\t\tsrcAttr: 'data-src',\n\t\t\tsrcsetAttr: 'data-srcset',\n\t\t\tsizesAttr: 'data-sizes',\n\t\t\t//preloadAfterLoad: false,\n\t\t\tminSize: 40,\n\t\t\tcustomMedia: {},\n\t\t\tinit: true,\n\t\t\texpFactor: 1.5,\n\t\t\thFac: 0.8,\n\t\t\tloadMode: 2,\n\t\t\tloadHidden: true,\n\t\t\tricTimeout: 0,\n\t\t\tthrottleDelay: 125,\n\t\t};\n\n\t\tlazySizesCfg = window.lazySizesConfig || window.lazysizesConfig || {};\n\n\t\tfor(prop in lazySizesDefaults){\n\t\t\tif(!(prop in lazySizesCfg)){\n\t\t\t\tlazySizesCfg[prop] = lazySizesDefaults[prop];\n\t\t\t}\n\t\t}\n\t})();\n\n\tif (!document || !document.getElementsByClassName) {\n\t\treturn {\n\t\t\tinit: function () {},\n\t\t\t/**\n\t\t\t * @type { LazySizesConfigPartial }\n\t\t\t */\n\t\t\tcfg: lazySizesCfg,\n\t\t\t/**\n\t\t\t * @type { true }\n\t\t\t */\n\t\t\tnoSupport: true,\n\t\t};\n\t}\n\n\tvar docElem = document.documentElement;\n\n\tvar supportPicture = window.HTMLPictureElement;\n\n\tvar _addEventListener = 'addEventListener';\n\n\tvar _getAttribute = 'getAttribute';\n\n\t/**\n\t * Update to bind to window because 'this' becomes null during SSR\n\t * builds.\n\t */\n\tvar addEventListener = window[_addEventListener].bind(window);\n\n\tvar setTimeout = window.setTimeout;\n\n\tvar requestAnimationFrame = window.requestAnimationFrame || setTimeout;\n\n\tvar requestIdleCallback = window.requestIdleCallback;\n\n\tvar regPicture = /^picture$/i;\n\n\tvar loadEvents = ['load', 'error', 'lazyincluded', '_lazyloaded'];\n\n\tvar regClassCache = {};\n\n\tvar forEach = Array.prototype.forEach;\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar hasClass = function(ele, cls) {\n\t\tif(!regClassCache[cls]){\n\t\t\tregClassCache[cls] = new RegExp('(\\\\s|^)'+cls+'(\\\\s|$)');\n\t\t}\n\t\treturn regClassCache[cls].test(ele[_getAttribute]('class') || '') && regClassCache[cls];\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar addClass = function(ele, cls) {\n\t\tif (!hasClass(ele, cls)){\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').trim() + ' ' + cls);\n\t\t}\n\t};\n\n\t/**\n\t * @param ele {Element}\n\t * @param cls {string}\n\t */\n\tvar removeClass = function(ele, cls) {\n\t\tvar reg;\n\t\tif ((reg = hasClass(ele,cls))) {\n\t\t\tele.setAttribute('class', (ele[_getAttribute]('class') || '').replace(reg, ' '));\n\t\t}\n\t};\n\n\tvar addRemoveLoadEvents = function(dom, fn, add){\n\t\tvar action = add ? _addEventListener : 'removeEventListener';\n\t\tif(add){\n\t\t\taddRemoveLoadEvents(dom, fn);\n\t\t}\n\t\tloadEvents.forEach(function(evt){\n\t\t\tdom[action](evt, fn);\n\t\t});\n\t};\n\n\t/**\n\t * @param elem { Element }\n\t * @param name { string }\n\t * @param detail { any }\n\t * @param noBubbles { boolean }\n\t * @param noCancelable { boolean }\n\t * @returns { CustomEvent }\n\t */\n\tvar triggerEvent = function(elem, name, detail, noBubbles, noCancelable){\n\t\tvar event = document.createEvent('Event');\n\n\t\tif(!detail){\n\t\t\tdetail = {};\n\t\t}\n\n\t\tdetail.instance = lazysizes;\n\n\t\tevent.initEvent(name, !noBubbles, !noCancelable);\n\n\t\tevent.detail = detail;\n\n\t\telem.dispatchEvent(event);\n\t\treturn event;\n\t};\n\n\tvar updatePolyfill = function (el, full){\n\t\tvar polyfill;\n\t\tif( !supportPicture && ( polyfill = (window.picturefill || lazySizesCfg.pf) ) ){\n\t\t\tif(full && full.src && !el[_getAttribute]('srcset')){\n\t\t\t\tel.setAttribute('srcset', full.src);\n\t\t\t}\n\t\t\tpolyfill({reevaluate: true, elements: [el]});\n\t\t} else if(full && full.src){\n\t\t\tel.src = full.src;\n\t\t}\n\t};\n\n\tvar getCSS = function (elem, style){\n\t\treturn (getComputedStyle(elem, null) || {})[style];\n\t};\n\n\t/**\n\t *\n\t * @param elem { Element }\n\t * @param parent { Element }\n\t * @param [width] {number}\n\t * @returns {number}\n\t */\n\tvar getWidth = function(elem, parent, width){\n\t\twidth = width || elem.offsetWidth;\n\n\t\twhile(width < lazySizesCfg.minSize && parent && !elem._lazysizesWidth){\n\t\t\twidth = parent.offsetWidth;\n\t\t\tparent = parent.parentNode;\n\t\t}\n\n\t\treturn width;\n\t};\n\n\tvar rAF = (function(){\n\t\tvar running, waiting;\n\t\tvar firstFns = [];\n\t\tvar secondFns = [];\n\t\tvar fns = firstFns;\n\n\t\tvar run = function(){\n\t\t\tvar runFns = fns;\n\n\t\t\tfns = firstFns.length ? secondFns : firstFns;\n\n\t\t\trunning = true;\n\t\t\twaiting = false;\n\n\t\t\twhile(runFns.length){\n\t\t\t\trunFns.shift()();\n\t\t\t}\n\n\t\t\trunning = false;\n\t\t};\n\n\t\tvar rafBatch = function(fn, queue){\n\t\t\tif(running && !queue){\n\t\t\t\tfn.apply(this, arguments);\n\t\t\t} else {\n\t\t\t\tfns.push(fn);\n\n\t\t\t\tif(!waiting){\n\t\t\t\t\twaiting = true;\n\t\t\t\t\t(document.hidden ? setTimeout : requestAnimationFrame)(run);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\trafBatch._lsFlush = run;\n\n\t\treturn rafBatch;\n\t})();\n\n\tvar rAFIt = function(fn, simple){\n\t\treturn simple ?\n\t\t\tfunction() {\n\t\t\t\trAF(fn);\n\t\t\t} :\n\t\t\tfunction(){\n\t\t\t\tvar that = this;\n\t\t\t\tvar args = arguments;\n\t\t\t\trAF(function(){\n\t\t\t\t\tfn.apply(that, args);\n\t\t\t\t});\n\t\t\t}\n\t\t;\n\t};\n\n\tvar throttle = function(fn){\n\t\tvar running;\n\t\tvar lastTime = 0;\n\t\tvar gDelay = lazySizesCfg.throttleDelay;\n\t\tvar rICTimeout = lazySizesCfg.ricTimeout;\n\t\tvar run = function(){\n\t\t\trunning = false;\n\t\t\tlastTime = Date.now();\n\t\t\tfn();\n\t\t};\n\t\tvar idleCallback = requestIdleCallback && rICTimeout > 49 ?\n\t\t\tfunction(){\n\t\t\t\trequestIdleCallback(run, {timeout: rICTimeout});\n\n\t\t\t\tif(rICTimeout !== lazySizesCfg.ricTimeout){\n\t\t\t\t\trICTimeout = lazySizesCfg.ricTimeout;\n\t\t\t\t}\n\t\t\t} :\n\t\t\trAFIt(function(){\n\t\t\t\tsetTimeout(run);\n\t\t\t}, true)\n\t\t;\n\n\t\treturn function(isPriority){\n\t\t\tvar delay;\n\n\t\t\tif((isPriority = isPriority === true)){\n\t\t\t\trICTimeout = 33;\n\t\t\t}\n\n\t\t\tif(running){\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\trunning = true;\n\n\t\t\tdelay = gDelay - (Date.now() - lastTime);\n\n\t\t\tif(delay < 0){\n\t\t\t\tdelay = 0;\n\t\t\t}\n\n\t\t\tif(isPriority || delay < 9){\n\t\t\t\tidleCallback();\n\t\t\t} else {\n\t\t\t\tsetTimeout(idleCallback, delay);\n\t\t\t}\n\t\t};\n\t};\n\n\t//based on http://modernjavascript.blogspot.de/2013/08/building-better-debounce.html\n\tvar debounce = function(func) {\n\t\tvar timeout, timestamp;\n\t\tvar wait = 99;\n\t\tvar run = function(){\n\t\t\ttimeout = null;\n\t\t\tfunc();\n\t\t};\n\t\tvar later = function() {\n\t\t\tvar last = Date.now() - timestamp;\n\n\t\t\tif (last < wait) {\n\t\t\t\tsetTimeout(later, wait - last);\n\t\t\t} else {\n\t\t\t\t(requestIdleCallback || run)(run);\n\t\t\t}\n\t\t};\n\n\t\treturn function() {\n\t\t\ttimestamp = Date.now();\n\n\t\t\tif (!timeout) {\n\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t}\n\t\t};\n\t};\n\n\tvar loader = (function(){\n\t\tvar preloadElems, isCompleted, resetPreloadingTimer, loadMode, started;\n\n\t\tvar eLvW, elvH, eLtop, eLleft, eLright, eLbottom, isBodyHidden;\n\n\t\tvar regImg = /^img$/i;\n\t\tvar regIframe = /^iframe$/i;\n\n\t\tvar supportScroll = ('onscroll' in window) && !(/(gle|ing)bot/.test(navigator.userAgent));\n\n\t\tvar shrinkExpand = 0;\n\t\tvar currentExpand = 0;\n\n\t\tvar isLoading = 0;\n\t\tvar lowRuns = -1;\n\n\t\tvar resetPreloading = function(e){\n\t\t\tisLoading--;\n\t\t\tif(!e || isLoading < 0 || !e.target){\n\t\t\t\tisLoading = 0;\n\t\t\t}\n\t\t};\n\n\t\tvar isVisible = function (elem) {\n\t\t\tif (isBodyHidden == null) {\n\t\t\t\tisBodyHidden = getCSS(document.body, 'visibility') == 'hidden';\n\t\t\t}\n\n\t\t\treturn isBodyHidden || !(getCSS(elem.parentNode, 'visibility') == 'hidden' && getCSS(elem, 'visibility') == 'hidden');\n\t\t};\n\n\t\tvar isNestedVisible = function(elem, elemExpand){\n\t\t\tvar outerRect;\n\t\t\tvar parent = elem;\n\t\t\tvar visible = isVisible(elem);\n\n\t\t\teLtop -= elemExpand;\n\t\t\teLbottom += elemExpand;\n\t\t\teLleft -= elemExpand;\n\t\t\teLright += elemExpand;\n\n\t\t\twhile(visible && (parent = parent.offsetParent) && parent != document.body && parent != docElem){\n\t\t\t\tvisible = ((getCSS(parent, 'opacity') || 1) > 0);\n\n\t\t\t\tif(visible && getCSS(parent, 'overflow') != 'visible'){\n\t\t\t\t\touterRect = parent.getBoundingClientRect();\n\t\t\t\t\tvisible = eLright > outerRect.left &&\n\t\t\t\t\t\teLleft < outerRect.right &&\n\t\t\t\t\t\teLbottom > outerRect.top - 1 &&\n\t\t\t\t\t\teLtop < outerRect.bottom + 1\n\t\t\t\t\t;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn visible;\n\t\t};\n\n\t\tvar checkElements = function() {\n\t\t\tvar eLlen, i, rect, autoLoadElem, loadedSomething, elemExpand, elemNegativeExpand, elemExpandVal,\n\t\t\t\tbeforeExpandVal, defaultExpand, preloadExpand, hFac;\n\t\t\tvar lazyloadElems = lazysizes.elements;\n\n\t\t\tif((loadMode = lazySizesCfg.loadMode) && isLoading < 8 && (eLlen = lazyloadElems.length)){\n\n\t\t\t\ti = 0;\n\n\t\t\t\tlowRuns++;\n\n\t\t\t\tfor(; i < eLlen; i++){\n\n\t\t\t\t\tif(!lazyloadElems[i] || lazyloadElems[i]._lazyRace){continue;}\n\n\t\t\t\t\tif(!supportScroll || (lazysizes.prematureUnveil && lazysizes.prematureUnveil(lazyloadElems[i]))){unveilElement(lazyloadElems[i]);continue;}\n\n\t\t\t\t\tif(!(elemExpandVal = lazyloadElems[i][_getAttribute]('data-expand')) || !(elemExpand = elemExpandVal * 1)){\n\t\t\t\t\t\telemExpand = currentExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!defaultExpand) {\n\t\t\t\t\t\tdefaultExpand = (!lazySizesCfg.expand || lazySizesCfg.expand < 1) ?\n\t\t\t\t\t\t\tdocElem.clientHeight > 500 && docElem.clientWidth > 500 ? 500 : 370 :\n\t\t\t\t\t\t\tlazySizesCfg.expand;\n\n\t\t\t\t\t\tlazysizes._defEx = defaultExpand;\n\n\t\t\t\t\t\tpreloadExpand = defaultExpand * lazySizesCfg.expFactor;\n\t\t\t\t\t\thFac = lazySizesCfg.hFac;\n\t\t\t\t\t\tisBodyHidden = null;\n\n\t\t\t\t\t\tif(currentExpand < preloadExpand && isLoading < 1 && lowRuns > 2 && loadMode > 2 && !document.hidden){\n\t\t\t\t\t\t\tcurrentExpand = preloadExpand;\n\t\t\t\t\t\t\tlowRuns = 0;\n\t\t\t\t\t\t} else if(loadMode > 1 && lowRuns > 1 && isLoading < 6){\n\t\t\t\t\t\t\tcurrentExpand = defaultExpand;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcurrentExpand = shrinkExpand;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif(beforeExpandVal !== elemExpand){\n\t\t\t\t\t\teLvW = innerWidth + (elemExpand * hFac);\n\t\t\t\t\t\telvH = innerHeight + elemExpand;\n\t\t\t\t\t\telemNegativeExpand = elemExpand * -1;\n\t\t\t\t\t\tbeforeExpandVal = elemExpand;\n\t\t\t\t\t}\n\n\t\t\t\t\trect = lazyloadElems[i].getBoundingClientRect();\n\n\t\t\t\t\tif ((eLbottom = rect.bottom) >= elemNegativeExpand &&\n\t\t\t\t\t\t(eLtop = rect.top) <= elvH &&\n\t\t\t\t\t\t(eLright = rect.right) >= elemNegativeExpand * hFac &&\n\t\t\t\t\t\t(eLleft = rect.left) <= eLvW &&\n\t\t\t\t\t\t(eLbottom || eLright || eLleft || eLtop) &&\n\t\t\t\t\t\t(lazySizesCfg.loadHidden || isVisible(lazyloadElems[i])) &&\n\t\t\t\t\t\t((isCompleted && isLoading < 3 && !elemExpandVal && (loadMode < 3 || lowRuns < 4)) || isNestedVisible(lazyloadElems[i], elemExpand))){\n\t\t\t\t\t\tunveilElement(lazyloadElems[i]);\n\t\t\t\t\t\tloadedSomething = true;\n\t\t\t\t\t\tif(isLoading > 9){break;}\n\t\t\t\t\t} else if(!loadedSomething && isCompleted && !autoLoadElem &&\n\t\t\t\t\t\tisLoading < 4 && lowRuns < 4 && loadMode > 2 &&\n\t\t\t\t\t\t(preloadElems[0] || lazySizesCfg.preloadAfterLoad) &&\n\t\t\t\t\t\t(preloadElems[0] || (!elemExpandVal && ((eLbottom || eLright || eLleft || eLtop) || lazyloadElems[i][_getAttribute](lazySizesCfg.sizesAttr) != 'auto')))){\n\t\t\t\t\t\tautoLoadElem = preloadElems[0] || lazyloadElems[i];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(autoLoadElem && !loadedSomething){\n\t\t\t\t\tunveilElement(autoLoadElem);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar throttledCheckElements = throttle(checkElements);\n\n\t\tvar switchLoadingClass = function(e){\n\t\t\tvar elem = e.target;\n\n\t\t\tif (elem._lazyCache) {\n\t\t\t\tdelete elem._lazyCache;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tresetPreloading(e);\n\t\t\taddClass(elem, lazySizesCfg.loadedClass);\n\t\t\tremoveClass(elem, lazySizesCfg.loadingClass);\n\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass);\n\t\t\ttriggerEvent(elem, 'lazyloaded');\n\t\t};\n\t\tvar rafedSwitchLoadingClass = rAFIt(switchLoadingClass);\n\t\tvar rafSwitchLoadingClass = function(e){\n\t\t\trafedSwitchLoadingClass({target: e.target});\n\t\t};\n\n\t\tvar changeIframeSrc = function(elem, src){\n\t\t\tvar loadMode = elem.getAttribute('data-load-mode') || lazySizesCfg.iframeLoadMode;\n\n\t\t\t// loadMode can be also a string!\n\t\t\tif (loadMode == 0) {\n\t\t\t\telem.contentWindow.location.replace(src);\n\t\t\t} else if (loadMode == 1) {\n\t\t\t\telem.src = src;\n\t\t\t}\n\t\t};\n\n\t\tvar handleSources = function(source){\n\t\t\tvar customMedia;\n\n\t\t\tvar sourceSrcset = source[_getAttribute](lazySizesCfg.srcsetAttr);\n\n\t\t\tif( (customMedia = lazySizesCfg.customMedia[source[_getAttribute]('data-media') || source[_getAttribute]('media')]) ){\n\t\t\t\tsource.setAttribute('media', customMedia);\n\t\t\t}\n\n\t\t\tif(sourceSrcset){\n\t\t\t\tsource.setAttribute('srcset', sourceSrcset);\n\t\t\t}\n\t\t};\n\n\t\tvar lazyUnveil = rAFIt(function (elem, detail, isAuto, sizes, isImg){\n\t\t\tvar src, srcset, parent, isPicture, event, firesLoad;\n\n\t\t\tif(!(event = triggerEvent(elem, 'lazybeforeunveil', detail)).defaultPrevented){\n\n\t\t\t\tif(sizes){\n\t\t\t\t\tif(isAuto){\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.autosizesClass);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.setAttribute('sizes', sizes);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tsrcset = elem[_getAttribute](lazySizesCfg.srcsetAttr);\n\t\t\t\tsrc = elem[_getAttribute](lazySizesCfg.srcAttr);\n\n\t\t\t\tif(isImg) {\n\t\t\t\t\tparent = elem.parentNode;\n\t\t\t\t\tisPicture = parent && regPicture.test(parent.nodeName || '');\n\t\t\t\t}\n\n\t\t\t\tfiresLoad = detail.firesLoad || (('src' in elem) && (srcset || src || isPicture));\n\n\t\t\t\tevent = {target: elem};\n\n\t\t\t\taddClass(elem, lazySizesCfg.loadingClass);\n\n\t\t\t\tif(firesLoad){\n\t\t\t\t\tclearTimeout(resetPreloadingTimer);\n\t\t\t\t\tresetPreloadingTimer = setTimeout(resetPreloading, 2500);\n\t\t\t\t\taddRemoveLoadEvents(elem, rafSwitchLoadingClass, true);\n\t\t\t\t}\n\n\t\t\t\tif(isPicture){\n\t\t\t\t\tforEach.call(parent.getElementsByTagName('source'), handleSources);\n\t\t\t\t}\n\n\t\t\t\tif(srcset){\n\t\t\t\t\telem.setAttribute('srcset', srcset);\n\t\t\t\t} else if(src && !isPicture){\n\t\t\t\t\tif(regIframe.test(elem.nodeName)){\n\t\t\t\t\t\tchangeIframeSrc(elem, src);\n\t\t\t\t\t} else {\n\t\t\t\t\t\telem.src = src;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif(isImg && (srcset || isPicture)){\n\t\t\t\t\tupdatePolyfill(elem, {src: src});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(elem._lazyRace){\n\t\t\t\tdelete elem._lazyRace;\n\t\t\t}\n\t\t\tremoveClass(elem, lazySizesCfg.lazyClass);\n\n\t\t\trAF(function(){\n\t\t\t\t// Part of this can be removed as soon as this fix is older: https://bugs.chromium.org/p/chromium/issues/detail?id=7731 (2015)\n\t\t\t\tvar isLoaded = elem.complete && elem.naturalWidth > 1;\n\n\t\t\t\tif( !firesLoad || isLoaded){\n\t\t\t\t\tif (isLoaded) {\n\t\t\t\t\t\taddClass(elem, lazySizesCfg.fastLoadedClass);\n\t\t\t\t\t}\n\t\t\t\t\tswitchLoadingClass(event);\n\t\t\t\t\telem._lazyCache = true;\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\tif ('_lazyCache' in elem) {\n\t\t\t\t\t\t\tdelete elem._lazyCache;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9);\n\t\t\t\t}\n\t\t\t\tif (elem.loading == 'lazy') {\n\t\t\t\t\tisLoading--;\n\t\t\t\t}\n\t\t\t}, true);\n\t\t});\n\n\t\t/**\n\t\t *\n\t\t * @param elem { Element }\n\t\t */\n\t\tvar unveilElement = function (elem){\n\t\t\tif (elem._lazyRace) {return;}\n\t\t\tvar detail;\n\n\t\t\tvar isImg = regImg.test(elem.nodeName);\n\n\t\t\t//allow using sizes=\"auto\", but don't use. it's invalid. Use data-sizes=\"auto\" or a valid value for sizes instead (i.e.: sizes=\"80vw\")\n\t\t\tvar sizes = isImg && (elem[_getAttribute](lazySizesCfg.sizesAttr) || elem[_getAttribute]('sizes'));\n\t\t\tvar isAuto = sizes == 'auto';\n\n\t\t\tif( (isAuto || !isCompleted) && isImg && (elem[_getAttribute]('src') || elem.srcset) && !elem.complete && !hasClass(elem, lazySizesCfg.errorClass) && hasClass(elem, lazySizesCfg.lazyClass)){return;}\n\n\t\t\tdetail = triggerEvent(elem, 'lazyunveilread').detail;\n\n\t\t\tif(isAuto){\n\t\t\t\t autoSizer.updateElem(elem, true, elem.offsetWidth);\n\t\t\t}\n\n\t\t\telem._lazyRace = true;\n\t\t\tisLoading++;\n\n\t\t\tlazyUnveil(elem, detail, isAuto, sizes, isImg);\n\t\t};\n\n\t\tvar afterScroll = debounce(function(){\n\t\t\tlazySizesCfg.loadMode = 3;\n\t\t\tthrottledCheckElements();\n\t\t});\n\n\t\tvar altLoadmodeScrollListner = function(){\n\t\t\tif(lazySizesCfg.loadMode == 3){\n\t\t\t\tlazySizesCfg.loadMode = 2;\n\t\t\t}\n\t\t\tafterScroll();\n\t\t};\n\n\t\tvar onload = function(){\n\t\t\tif(isCompleted){return;}\n\t\t\tif(Date.now() - started < 999){\n\t\t\t\tsetTimeout(onload, 999);\n\t\t\t\treturn;\n\t\t\t}\n\n\n\t\t\tisCompleted = true;\n\n\t\t\tlazySizesCfg.loadMode = 3;\n\n\t\t\tthrottledCheckElements();\n\n\t\t\taddEventListener('scroll', altLoadmodeScrollListner, true);\n\t\t};\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tstarted = Date.now();\n\n\t\t\t\tlazysizes.elements = document.getElementsByClassName(lazySizesCfg.lazyClass);\n\t\t\t\tpreloadElems = document.getElementsByClassName(lazySizesCfg.lazyClass + ' ' + lazySizesCfg.preloadClass);\n\n\t\t\t\taddEventListener('scroll', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('resize', throttledCheckElements, true);\n\n\t\t\t\taddEventListener('pageshow', function (e) {\n\t\t\t\t\tif (e.persisted) {\n\t\t\t\t\t\tvar loadingElements = document.querySelectorAll('.' + lazySizesCfg.loadingClass);\n\n\t\t\t\t\t\tif (loadingElements.length && loadingElements.forEach) {\n\t\t\t\t\t\t\trequestAnimationFrame(function () {\n\t\t\t\t\t\t\t\tloadingElements.forEach( function (img) {\n\t\t\t\t\t\t\t\t\tif (img.complete) {\n\t\t\t\t\t\t\t\t\t\tunveilElement(img);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif(window.MutationObserver){\n\t\t\t\t\tnew MutationObserver( throttledCheckElements ).observe( docElem, {childList: true, subtree: true, attributes: true} );\n\t\t\t\t} else {\n\t\t\t\t\tdocElem[_addEventListener]('DOMNodeInserted', throttledCheckElements, true);\n\t\t\t\t\tdocElem[_addEventListener]('DOMAttrModified', throttledCheckElements, true);\n\t\t\t\t\tsetInterval(throttledCheckElements, 999);\n\t\t\t\t}\n\n\t\t\t\taddEventListener('hashchange', throttledCheckElements, true);\n\n\t\t\t\t//, 'fullscreenchange'\n\t\t\t\t['focus', 'mouseover', 'click', 'load', 'transitionend', 'animationend'].forEach(function(name){\n\t\t\t\t\tdocument[_addEventListener](name, throttledCheckElements, true);\n\t\t\t\t});\n\n\t\t\t\tif((/d$|^c/.test(document.readyState))){\n\t\t\t\t\tonload();\n\t\t\t\t} else {\n\t\t\t\t\taddEventListener('load', onload);\n\t\t\t\t\tdocument[_addEventListener]('DOMContentLoaded', throttledCheckElements);\n\t\t\t\t\tsetTimeout(onload, 20000);\n\t\t\t\t}\n\n\t\t\t\tif(lazysizes.elements.length){\n\t\t\t\t\tcheckElements();\n\t\t\t\t\trAF._lsFlush();\n\t\t\t\t} else {\n\t\t\t\t\tthrottledCheckElements();\n\t\t\t\t}\n\t\t\t},\n\t\t\tcheckElems: throttledCheckElements,\n\t\t\tunveil: unveilElement,\n\t\t\t_aLSL: altLoadmodeScrollListner,\n\t\t};\n\t})();\n\n\n\tvar autoSizer = (function(){\n\t\tvar autosizesElems;\n\n\t\tvar sizeElement = rAFIt(function(elem, parent, event, width){\n\t\t\tvar sources, i, len;\n\t\t\telem._lazysizesWidth = width;\n\t\t\twidth += 'px';\n\n\t\t\telem.setAttribute('sizes', width);\n\n\t\t\tif(regPicture.test(parent.nodeName || '')){\n\t\t\t\tsources = parent.getElementsByTagName('source');\n\t\t\t\tfor(i = 0, len = sources.length; i < len; i++){\n\t\t\t\t\tsources[i].setAttribute('sizes', width);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif(!event.detail.dataAttr){\n\t\t\t\tupdatePolyfill(elem, event.detail);\n\t\t\t}\n\t\t});\n\t\t/**\n\t\t *\n\t\t * @param elem {Element}\n\t\t * @param dataAttr\n\t\t * @param [width] { number }\n\t\t */\n\t\tvar getSizeElement = function (elem, dataAttr, width){\n\t\t\tvar event;\n\t\t\tvar parent = elem.parentNode;\n\n\t\t\tif(parent){\n\t\t\t\twidth = getWidth(elem, parent, width);\n\t\t\t\tevent = triggerEvent(elem, 'lazybeforesizes', {width: width, dataAttr: !!dataAttr});\n\n\t\t\t\tif(!event.defaultPrevented){\n\t\t\t\t\twidth = event.detail.width;\n\n\t\t\t\t\tif(width && width !== elem._lazysizesWidth){\n\t\t\t\t\t\tsizeElement(elem, parent, event, width);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar updateElementsSizes = function(){\n\t\t\tvar i;\n\t\t\tvar len = autosizesElems.length;\n\t\t\tif(len){\n\t\t\t\ti = 0;\n\n\t\t\t\tfor(; i < len; i++){\n\t\t\t\t\tgetSizeElement(autosizesElems[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tvar debouncedUpdateElementsSizes = debounce(updateElementsSizes);\n\n\t\treturn {\n\t\t\t_: function(){\n\t\t\t\tautosizesElems = document.getElementsByClassName(lazySizesCfg.autosizesClass);\n\t\t\t\taddEventListener('resize', debouncedUpdateElementsSizes);\n\t\t\t},\n\t\t\tcheckElems: debouncedUpdateElementsSizes,\n\t\t\tupdateElem: getSizeElement\n\t\t};\n\t})();\n\n\tvar init = function(){\n\t\tif(!init.i && document.getElementsByClassName){\n\t\t\tinit.i = true;\n\t\t\tautoSizer._();\n\t\t\tloader._();\n\t\t}\n\t};\n\n\tsetTimeout(function(){\n\t\tif(lazySizesCfg.init){\n\t\t\tinit();\n\t\t}\n\t});\n\n\tlazysizes = {\n\t\t/**\n\t\t * @type { LazySizesConfigPartial }\n\t\t */\n\t\tcfg: lazySizesCfg,\n\t\tautoSizer: autoSizer,\n\t\tloader: loader,\n\t\tinit: init,\n\t\tuP: updatePolyfill,\n\t\taC: addClass,\n\t\trC: removeClass,\n\t\thC: hasClass,\n\t\tfire: triggerEvent,\n\t\tgW: getWidth,\n\t\trAF: rAF,\n\t};\n\n\treturn lazysizes;\n}\n));\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n if (value !== value) {\n return baseFindIndex(array, baseIsNaN, fromIndex);\n }\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && objectToString.call(value) == stringTag);\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object ? baseValues(object, keys(object)) : [];\n}\n\nmodule.exports = includes;\n","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/*! scrollbarWidth.js v0.1.3 | felixexter | MIT | https://github.com/felixexter/scrollbarWidth */\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine([], factory);\n\t} else if (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t} else {\n\t\t(root.jQuery || root).scrollbarWidth = factory();\n\t}\n}(this, function () {\n\t'use strict';\n\n\tfunction scrollbarWidth() {\n\t\tif (typeof document === 'undefined') {\n\t\t\treturn 0\n\t\t}\n\n\t\tvar\n\t\t\tbody = document.body,\n\t\t\tbox = document.createElement('div'),\n\t\t\tboxStyle = box.style,\n\t\t\twidth;\n\n\t\tboxStyle.position = 'absolute';\n\t\tboxStyle.top = boxStyle.left = '-9999px';\n\t\tboxStyle.width = boxStyle.height = '100px';\n\t\tboxStyle.overflow = 'scroll';\n\n\t\tbody.appendChild(box);\n\n\t\twidth = box.offsetWidth - box.clientWidth;\n\n\t\tbody.removeChild(box);\n\n\t\treturn width;\n\t}\n\n\treturn scrollbarWidth;\n}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 5);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar randomFromSeed = __webpack_require__(16);\n\nvar ORIGINAL = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-';\nvar alphabet;\nvar previousSeed;\n\nvar shuffled;\n\nfunction reset() {\n shuffled = false;\n}\n\nfunction setCharacters(_alphabet_) {\n if (!_alphabet_) {\n if (alphabet !== ORIGINAL) {\n alphabet = ORIGINAL;\n reset();\n }\n return;\n }\n\n if (_alphabet_ === alphabet) {\n return;\n }\n\n if (_alphabet_.length !== ORIGINAL.length) {\n throw new Error('Custom alphabet for shortid must be ' + ORIGINAL.length + ' unique characters. You submitted ' + _alphabet_.length + ' characters: ' + _alphabet_);\n }\n\n var unique = _alphabet_.split('').filter(function(item, ind, arr){\n return ind !== arr.lastIndexOf(item);\n });\n\n if (unique.length) {\n throw new Error('Custom alphabet for shortid must be ' + ORIGINAL.length + ' unique characters. These characters were not unique: ' + unique.join(', '));\n }\n\n alphabet = _alphabet_;\n reset();\n}\n\nfunction characters(_alphabet_) {\n setCharacters(_alphabet_);\n return alphabet;\n}\n\nfunction setSeed(seed) {\n randomFromSeed.seed(seed);\n if (previousSeed !== seed) {\n reset();\n previousSeed = seed;\n }\n}\n\nfunction shuffle() {\n if (!alphabet) {\n setCharacters(ORIGINAL);\n }\n\n var sourceArray = alphabet.split('');\n var targetArray = [];\n var r = randomFromSeed.nextValue();\n var characterIndex;\n\n while (sourceArray.length > 0) {\n r = randomFromSeed.nextValue();\n characterIndex = Math.floor(r * sourceArray.length);\n targetArray.push(sourceArray.splice(characterIndex, 1)[0]);\n }\n return targetArray.join('');\n}\n\nfunction getShuffled() {\n if (shuffled) {\n return shuffled;\n }\n shuffled = shuffle();\n return shuffled;\n}\n\n/**\n * lookup shuffled letter\n * @param index\n * @returns {string}\n */\nfunction lookup(index) {\n var alphabetShuffled = getShuffled();\n return alphabetShuffled[index];\n}\n\nfunction get () {\n return alphabet || ORIGINAL;\n}\n\nmodule.exports = {\n get: get,\n characters: characters,\n seed: setSeed,\n lookup: lookup,\n shuffled: getShuffled\n};\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_animejs__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_animejs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_animejs__);\n\n\nvar duration = 300;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n animateIn: function animateIn(el) {\n __WEBPACK_IMPORTED_MODULE_0_animejs___default()({\n targets: el,\n translateY: '-35px',\n opacity: 1,\n duration: duration,\n easing: 'easeOutCubic'\n });\n },\n animateOut: function animateOut(el, onComplete) {\n __WEBPACK_IMPORTED_MODULE_0_animejs___default()({\n targets: el,\n opacity: 0,\n marginTop: '-40px',\n duration: duration,\n easing: 'easeOutExpo',\n complete: onComplete\n });\n },\n animateOutBottom: function animateOutBottom(el, onComplete) {\n __WEBPACK_IMPORTED_MODULE_0_animejs___default()({\n targets: el,\n opacity: 0,\n marginBottom: '-40px',\n duration: duration,\n easing: 'easeOutExpo',\n complete: onComplete\n });\n },\n animateReset: function animateReset(el) {\n __WEBPACK_IMPORTED_MODULE_0_animejs___default()({\n targets: el,\n left: 0,\n opacity: 1,\n duration: duration,\n easing: 'easeOutExpo'\n });\n },\n animatePanning: function animatePanning(el, left, opacity) {\n __WEBPACK_IMPORTED_MODULE_0_animejs___default()({\n targets: el,\n duration: 10,\n easing: 'easeOutQuad',\n left: left,\n opacity: opacity\n });\n },\n animatePanEnd: function animatePanEnd(el, onComplete) {\n __WEBPACK_IMPORTED_MODULE_0_animejs___default()({\n targets: el,\n opacity: 0,\n duration: duration,\n easing: 'easeOutExpo',\n complete: onComplete\n });\n },\n clearAnimation: function clearAnimation(toasts) {\n\n var timeline = __WEBPACK_IMPORTED_MODULE_0_animejs___default.a.timeline();\n\n toasts.forEach(function (t) {\n timeline.add({\n targets: t.el,\n opacity: 0,\n right: '-40px',\n duration: 300,\n offset: '-=150',\n easing: 'easeOutExpo',\n complete: function complete() {\n t.remove();\n }\n });\n });\n }\n});\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = __webpack_require__(13);\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Toasted; });\n/* unused harmony export _show */\n/* unused harmony export initiateCustomToasts */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__show__ = __webpack_require__(7);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__animations__ = __webpack_require__(1);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\nvar uuid = __webpack_require__(2);\n\n// add Object.assign Polyfill\n__webpack_require__(8).polyfill();\n\n/**\n * Toast\n * core instance of toast\n *\n * @param _options\n * @returns {Toasted}\n * @constructor\n */\nvar Toasted = function Toasted(_options) {\n\tvar _this = this;\n\n\t/**\n * Unique id of the toast\n */\n\tthis.id = uuid.generate();\n\n\t/**\n * Shared Options of the Toast\n */\n\tthis.options = _options;\n\n\t/**\n * Cached Options of the Toast\n */\n\tthis.cached_options = {};\n\n\t/**\n * Shared Toasts list\n */\n\tthis.global = {};\n\n\t/**\n * All Registered Groups\n */\n\tthis.groups = [];\n\n\t/**\n * All Registered Toasts\n */\n\tthis.toasts = [];\n\n\t/**\n * Element of the Toast Container\n */\n\tthis.container = null;\n\n\t/**\n * Initiate toast container\n */\n\tinitiateToastContainer(this);\n\n\t/**\n * Initiate custom toasts\n */\n\tinitiateCustomToasts(this);\n\n\t/**\n * Create New Group of Toasts\n *\n * @param o\n */\n\tthis.group = function (o) {\n\n\t\tif (!o) o = {};\n\n\t\tif (!o.globalToasts) {\n\t\t\to.globalToasts = {};\n\t\t}\n\n\t\t// share parents global toasts\n\t\tObject.assign(o.globalToasts, _this.global);\n\n\t\t// tell parent about the group\n\t\tvar group = new Toasted(o);\n\t\t_this.groups.push(group);\n\n\t\treturn group;\n\t};\n\n\t/**\n * Register a Global Toast\n *\n * @param name\n * @param payload\n * @param options\n */\n\tthis.register = function (name, payload, options) {\n\t\toptions = options || {};\n\t\treturn register(_this, name, payload, options);\n\t};\n\n\t/**\n * Show a Simple Toast\n *\n * @param message\n * @param options\n * @returns {*}\n */\n\tthis.show = function (message, options) {\n\t\treturn _show(_this, message, options);\n\t};\n\n\t/**\n * Show a Toast with Success Style\n *\n * @param message\n * @param options\n * @returns {*}\n */\n\tthis.success = function (message, options) {\n\t\toptions = options || {};\n\t\toptions.type = \"success\";\n\t\treturn _show(_this, message, options);\n\t};\n\n\t/**\n * Show a Toast with Info Style\n *\n * @param message\n * @param options\n * @returns {*}\n */\n\tthis.info = function (message, options) {\n\t\toptions = options || {};\n\t\toptions.type = \"info\";\n\t\treturn _show(_this, message, options);\n\t};\n\n\t/**\n * Show a Toast with Error Style\n *\n * @param message\n * @param options\n * @returns {*}\n */\n\tthis.error = function (message, options) {\n\t\toptions = options || {};\n\t\toptions.type = \"error\";\n\t\treturn _show(_this, message, options);\n\t};\n\n\t/**\n * Remove a Toast\n * @param el\n */\n\tthis.remove = function (el) {\n\t\t_this.toasts = _this.toasts.filter(function (t) {\n\t\t\treturn t.el.hash !== el.hash;\n\t\t});\n\t\tif (el.parentNode) el.parentNode.removeChild(el);\n\t};\n\n\t/**\n * Clear All Toasts\n *\n * @returns {boolean}\n */\n\tthis.clear = function (onClear) {\n\t\t__WEBPACK_IMPORTED_MODULE_1__animations__[\"a\" /* default */].clearAnimation(_this.toasts, function () {\n\t\t\tonClear && onClear();\n\t\t});\n\t\t_this.toasts = [];\n\n\t\treturn true;\n\t};\n\n\treturn this;\n};\n\n/**\n * Wrapper for show method in order to manipulate options\n *\n * @param instance\n * @param message\n * @param options\n * @returns {*}\n * @private\n */\nvar _show = function _show(instance, message, options) {\n\toptions = options || {};\n\tvar toast = null;\n\n\tif ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) !== \"object\") {\n\t\tconsole.error(\"Options should be a type of object. given : \" + options);\n\t\treturn null;\n\t}\n\n\t// singleton feature\n\tif (instance.options.singleton && instance.toasts.length > 0) {\n\t\tinstance.cached_options = options;\n\t\tinstance.toasts[instance.toasts.length - 1].goAway(0);\n\t}\n\n\t// clone the global options\n\tvar _options = Object.assign({}, instance.options);\n\n\t// merge the cached global options with options\n\tObject.assign(_options, options);\n\n\ttoast = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__show__[\"a\" /* default */])(instance, message, _options);\n\tinstance.toasts.push(toast);\n\n\treturn toast;\n};\n\n/**\n * Register the Custom Toasts\n */\nvar initiateCustomToasts = function initiateCustomToasts(instance) {\n\n\tvar customToasts = instance.options.globalToasts;\n\n\t// this will initiate toast for the custom toast.\n\tvar initiate = function initiate(message, options) {\n\n\t\t// check if passed option is a available method if so call it.\n\t\tif (typeof options === 'string' && instance[options]) {\n\t\t\treturn instance[options].apply(instance, [message, {}]);\n\t\t}\n\n\t\t// or else create a new toast with passed options.\n\t\treturn _show(instance, message, options);\n\t};\n\n\tif (customToasts) {\n\n\t\tinstance.global = {};\n\n\t\tObject.keys(customToasts).forEach(function (key) {\n\n\t\t\t// register the custom toast events to the Toast.custom property\n\t\t\tinstance.global[key] = function () {\n\t\t\t\tvar payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n\n\t\t\t\t//console.log(payload);\n\t\t\t\t// return the it in order to expose the Toast methods\n\t\t\t\treturn customToasts[key].apply(null, [payload, initiate]);\n\t\t\t};\n\t\t});\n\t}\n};\n\nvar initiateToastContainer = function initiateToastContainer(instance) {\n\t// create notification container\n\tvar container = document.createElement('div');\n\tcontainer.id = instance.id;\n\tcontainer.setAttribute('role', 'status');\n\tcontainer.setAttribute('aria-live', 'polite');\n\tcontainer.setAttribute('aria-atomic', 'false');\n\n\tdocument.body.appendChild(container);\n\tinstance.container = container;\n};\n\nvar register = function register(instance, name, callback, options) {\n\n\t!instance.options.globalToasts ? instance.options.globalToasts = {} : null;\n\n\tinstance.options.globalToasts[name] = function (payload, initiate) {\n\n\t\t// if call back is string we will keep it that way..\n\t\tvar message = null;\n\n\t\tif (typeof callback === 'string') {\n\t\t\tmessage = callback;\n\t\t}\n\n\t\tif (typeof callback === 'function') {\n\t\t\tmessage = callback(payload);\n\t\t}\n\n\t\treturn initiate(message, options);\n\t};\n\n\tinitiateCustomToasts(instance);\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = ({ Toasted: Toasted });\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n 2017 Julian Garnier\n Released under the MIT license\n*/\nvar $jscomp={scope:{}};$jscomp.defineProperty=\"function\"==typeof Object.defineProperties?Object.defineProperty:function(e,r,p){if(p.get||p.set)throw new TypeError(\"ES3 does not support getters and setters.\");e!=Array.prototype&&e!=Object.prototype&&(e[r]=p.value)};$jscomp.getGlobal=function(e){return\"undefined\"!=typeof window&&window===e?e:\"undefined\"!=typeof global&&null!=global?global:e};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX=\"jscomp_symbol_\";\n$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(e){return $jscomp.SYMBOL_PREFIX+(e||\"\")+$jscomp.symbolCounter_++};\n$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var e=$jscomp.global.Symbol.iterator;e||(e=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol(\"iterator\"));\"function\"!=typeof Array.prototype[e]&&$jscomp.defineProperty(Array.prototype,e,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(e){var r=0;return $jscomp.iteratorPrototype(function(){return rb&&(b+=1);1b?c:b<2/3?a+(c-a)*(2/3-b)*6:a}var d=/hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(a)||/hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*([\\d.]+)\\)/g.exec(a);a=parseInt(d[1])/360;var b=parseInt(d[2])/100,f=parseInt(d[3])/100,d=d[4]||1;if(0==b)f=b=a=f;else{var n=.5>f?f*(1+b):f+b-f*b,k=2*f-n,f=c(k,n,a+1/3),b=c(k,n,a);a=c(k,n,a-1/3)}return\"rgba(\"+\n255*f+\",\"+255*b+\",\"+255*a+\",\"+d+\")\"}function y(a){if(a=/([\\+\\-]?[0-9#\\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(a))return a[2]}function V(a){if(-1=g.currentTime)for(var G=0;G=w||!k)g.began||(g.began=!0,f(\"begin\")),f(\"run\");if(q>n&&q=k&&r!==k||!k)b(k),x||e();f(\"update\");a>=k&&(g.remaining?(t=h,\"alternate\"===g.direction&&(g.reversed=!g.reversed)):(g.pause(),g.completed||(g.completed=!0,f(\"complete\"),\"Promise\"in window&&(p(),m=c()))),l=0)}a=void 0===a?{}:a;var h,t,l=0,p=null,m=c(),g=fa(a);g.reset=function(){var a=g.direction,c=g.loop;g.currentTime=\n0;g.progress=0;g.paused=!0;g.began=!1;g.completed=!1;g.reversed=\"reverse\"===a;g.remaining=\"alternate\"===a&&1===c?2:c;b(0);for(a=g.children.length;a--;)g.children[a].reset()};g.tick=function(a){h=a;t||(t=h);k((l+h-t)*q.speed)};g.seek=function(a){k(d(a))};g.pause=function(){var a=v.indexOf(g);-1=c&&0<=b&&1>=b){var e=new Float32Array(11);if(c!==d||b!==f)for(var k=0;11>k;++k)e[k]=a(.1*k,c,b);return function(k){if(c===d&&b===f)return k;if(0===k)return 0;if(1===k)return 1;for(var h=0,l=1;10!==l&&e[l]<=k;++l)h+=.1;--l;var l=h+(k-e[l])/(e[l+1]-e[l])*.1,n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(.001<=n){for(h=0;4>h;++h){n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(0===n)break;var m=a(l,c,b)-k,l=l-m/n}k=l}else if(0===\nn)k=l;else{var l=h,h=h+.1,g=0;do m=l+(h-l)/2,n=a(m,c,b)-k,0++g);k=m}return a(k,d,f)}}}}(),Q=function(){function a(a,b){return 0===a||1===a?a:-Math.pow(2,10*(a-1))*Math.sin(2*(a-1-b/(2*Math.PI)*Math.asin(1))*Math.PI/b)}var c=\"Quad Cubic Quart Quint Sine Expo Circ Back Elastic\".split(\" \"),d={In:[[.55,.085,.68,.53],[.55,.055,.675,.19],[.895,.03,.685,.22],[.755,.05,.855,.06],[.47,0,.745,.715],[.95,.05,.795,.035],[.6,.04,.98,.335],[.6,-.28,.735,.045],a],Out:[[.25,\n.46,.45,.94],[.215,.61,.355,1],[.165,.84,.44,1],[.23,1,.32,1],[.39,.575,.565,1],[.19,1,.22,1],[.075,.82,.165,1],[.175,.885,.32,1.275],function(b,c){return 1-a(1-b,c)}],InOut:[[.455,.03,.515,.955],[.645,.045,.355,1],[.77,0,.175,1],[.86,0,.07,1],[.445,.05,.55,.95],[1,0,0,1],[.785,.135,.15,.86],[.68,-.55,.265,1.55],function(b,c){return.5>b?a(2*b,c)/2:1-a(-2*b+2,c)/2}]},b={linear:A(.25,.25,.75,.75)},f={},e;for(e in d)f.type=e,d[f.type].forEach(function(a){return function(d,f){b[\"ease\"+a.type+c[f]]=h.fnc(d)?\nd:A.apply($jscomp$this,d)}}(f)),f={type:f.type};return b}(),ha={css:function(a,c,d){return a.style[c]=d},attribute:function(a,c,d){return a.setAttribute(c,d)},object:function(a,c,d){return a[c]=d},transform:function(a,c,d,b,f){b[f]||(b[f]=[]);b[f].push(c+\"(\"+d+\")\")}},v=[],B=0,ia=function(){function a(){B=requestAnimationFrame(c)}function c(c){var b=v.length;if(b){for(var d=0;db&&(c.duration=d.duration);c.children.push(d)});c.seek(0);c.reset();c.autoplay&&c.restart();return c};return c};q.random=function(a,c){return Math.floor(Math.random()*(c-a+1))+a};return q});\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(18)))\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__js_toast__ = __webpack_require__(3);\n\n\n// register plugin if it is used via cdn or directly as a script tag\nif (typeof window !== 'undefined') {\n\twindow.Toasted = __WEBPACK_IMPORTED_MODULE_0__js_toast__[\"a\" /* Toasted */];\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (__WEBPACK_IMPORTED_MODULE_0__js_toast__[\"a\" /* Toasted */]);\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export goAway */\n/* unused harmony export changeText */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return toastObject; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__animations_js__ = __webpack_require__(1);\nvar _this = this;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\n// fade the toast away\nvar _goAway = function _goAway(el, delay, instance) {\n\n // Animate toast out\n setTimeout(function () {\n\n // if the toast is on bottom set it as bottom animation\n if (instance.cached_options.position && instance.cached_options.position.includes('bottom')) {\n __WEBPACK_IMPORTED_MODULE_0__animations_js__[\"a\" /* default */].animateOutBottom(el, function () {\n instance.remove(el);\n });\n return;\n }\n\n __WEBPACK_IMPORTED_MODULE_0__animations_js__[\"a\" /* default */].animateOut(el, function () {\n instance.remove(el);\n });\n }, delay);\n\n return true;\n};\n\n// change the text of toast\n\nvar changeText = function changeText(el, text) {\n if ((typeof HTMLElement === 'undefined' ? 'undefined' : _typeof(HTMLElement)) === \"object\" ? text instanceof HTMLElement : text && (typeof text === 'undefined' ? 'undefined' : _typeof(text)) === \"object\" && text !== null && text.nodeType === 1 && typeof text.nodeName === \"string\") {\n el.appendChild(text);\n } else {\n el.innerHTML = text;\n }\n\n return _this;\n};\n\nvar toastObject = function toastObject(el, instance) {\n var _disposed = false;\n\n return {\n el: el,\n text: function text(_text) {\n changeText(el, _text);\n return this;\n },\n goAway: function goAway() {\n var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 800;\n\n _disposed = true;\n return _goAway(el, delay, instance);\n },\n remove: function remove() {\n instance.remove(el);\n },\n disposed: function disposed() {\n return _disposed;\n }\n };\n};\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_hammerjs__ = __webpack_require__(9);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_hammerjs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_hammerjs__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__animations__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__object__ = __webpack_require__(6);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\n\nvar uuid = __webpack_require__(2);\n\n// string includes polyfill\nif (!String.prototype.includes) {\n\tObject.defineProperty(String.prototype, 'includes', {\n\t\tvalue: function value(search, start) {\n\t\t\tif (typeof start !== 'number') {\n\t\t\t\tstart = 0;\n\t\t\t}\n\n\t\t\tif (start + search.length > this.length) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn this.indexOf(search, start) !== -1;\n\t\t\t}\n\t\t}\n\t});\n}\n\nvar _options = {};\nvar _instance = null;\n/**\n * parse Options\n *\n * @param options\n * @returns {{el: *, text: text, goAway: goAway}}\n */\nvar parseOptions = function parseOptions(options) {\n\n\t// class name to be added on the toast\n\toptions.className = options.className || null;\n\n\t// complete call back of the toast\n\toptions.onComplete = options.onComplete || null;\n\n\t// toast position\n\toptions.position = options.position || \"top-right\";\n\n\t// toast duration\n\toptions.duration = options.duration || null;\n\n\t// keep toast open on mouse over\n\toptions.keepOnHover = options.keepOnHover || false;\n\n\t// normal type will allow the basic color\n\toptions.theme = options.theme || \"toasted-primary\";\n\n\t// normal type will allow the basic color\n\toptions.type = options.type || \"default\";\n\n\t// class name to be added on the toast container\n\toptions.containerClass = options.containerClass || null;\n\n\t// check if the fullWidth is enabled\n\toptions.fullWidth = options.fullWidth || false;\n\n\t// get icon name\n\toptions.icon = options.icon || null;\n\n\t// get action name\n\toptions.action = options.action || null;\n\n\t// check if the toast needs to be fitted in the screen (no margin gap between screen)\n\toptions.fitToScreen = options.fitToScreen || null;\n\n\t// check if closes the toast when the user swipes it\n\toptions.closeOnSwipe = typeof options.closeOnSwipe !== 'undefined' ? options.closeOnSwipe : true;\n\n\t// get the icon pack name. defaults to material\n\toptions.iconPack = options.iconPack || 'material';\n\n\t/* transform options */\n\n\t// toast class\n\tif (options.className && typeof options.className === \"string\") {\n\t\toptions.className = options.className.split(' ');\n\t}\n\n\tif (!options.className) {\n\t\toptions.className = [];\n\t}\n\n\toptions.theme && options.className.push(options.theme.trim());\n\toptions.type && options.className.push(options.type);\n\n\t// toast container class\n\tif (options.containerClass && typeof options.containerClass === \"string\") {\n\t\toptions.containerClass = options.containerClass.split(' ');\n\t}\n\n\tif (!options.containerClass) {\n\t\toptions.containerClass = [];\n\t}\n\n\toptions.position && options.containerClass.push(options.position.trim());\n\toptions.fullWidth && options.containerClass.push('full-width');\n\toptions.fitToScreen && options.containerClass.push('fit-to-screen');\n\n\t_options = options;\n\treturn options;\n};\n\nvar createToast = function createToast(html, options) {\n\n\t// Create toast\n\tvar toast = document.createElement('div');\n\ttoast.classList.add('toasted');\n\n\t// set unique identifier\n\ttoast.hash = uuid.generate();\n\n\tif (options.className) {\n\t\toptions.className.forEach(function (className) {\n\t\t\ttoast.classList.add(className);\n\t\t});\n\t}\n\n\t// If type of parameter is HTML Element\n\tif ((typeof HTMLElement === 'undefined' ? 'undefined' : _typeof(HTMLElement)) === \"object\" ? html instanceof HTMLElement : html && (typeof html === 'undefined' ? 'undefined' : _typeof(html)) === \"object\" && html !== null && html.nodeType === 1 && typeof html.nodeName === \"string\") {\n\t\ttoast.appendChild(html);\n\t} else {\n\t\t// Insert as text;\n\t\ttoast.innerHTML = html;\n\t}\n\n\t// add material icon if available\n\tcreateIcon(options, toast);\n\n\tif (options.closeOnSwipe) {\n\t\t// Bind hammer\n\t\tvar hammerHandler = new __WEBPACK_IMPORTED_MODULE_0_hammerjs___default.a(toast, { prevent_default: false });\n\t\thammerHandler.on('pan', function (e) {\n\t\t\tvar deltaX = e.deltaX;\n\t\t\tvar activationDistance = 80;\n\n\t\t\t// Change toast state\n\t\t\tif (!toast.classList.contains('panning')) {\n\t\t\t\ttoast.classList.add('panning');\n\t\t\t}\n\n\t\t\tvar opacityPercent = 1 - Math.abs(deltaX / activationDistance);\n\t\t\tif (opacityPercent < 0) opacityPercent = 0;\n\n\t\t\t__WEBPACK_IMPORTED_MODULE_1__animations__[\"a\" /* default */].animatePanning(toast, deltaX, opacityPercent);\n\t\t});\n\n\t\thammerHandler.on('panend', function (e) {\n\t\t\tvar deltaX = e.deltaX;\n\t\t\tvar activationDistance = 80;\n\n\t\t\t// If toast dragged past activation point\n\t\t\tif (Math.abs(deltaX) > activationDistance) {\n\n\t\t\t\t__WEBPACK_IMPORTED_MODULE_1__animations__[\"a\" /* default */].animatePanEnd(toast, function () {\n\t\t\t\t\tif (typeof options.onComplete === \"function\") {\n\t\t\t\t\t\toptions.onComplete();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (toast.parentNode) {\n\t\t\t\t\t\t_instance.remove(toast);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttoast.classList.remove('panning');\n\t\t\t\t// Put toast back into original position\n\t\t\t\t__WEBPACK_IMPORTED_MODULE_1__animations__[\"a\" /* default */].animateReset(toast);\n\t\t\t}\n\t\t});\n\t}\n\n\t// create and append actions\n\tif (Array.isArray(options.action)) {\n\t\toptions.action.forEach(function (action) {\n\t\t\tvar el = createAction(action, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__object__[\"a\" /* toastObject */])(toast, _instance));\n\t\t\tif (el) toast.appendChild(el);\n\t\t});\n\t} else if (_typeof(options.action) === 'object') {\n\t\tvar action = createAction(options.action, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__object__[\"a\" /* toastObject */])(toast, _instance));\n\t\tif (action) toast.appendChild(action);\n\t}\n\n\treturn toast;\n};\n\nvar createIcon = function createIcon(options, toast) {\n\n\t// add material icon if available\n\tif (options.icon) {\n\n\t\tvar iel = document.createElement('i');\n\t\tiel.setAttribute('aria-hidden', 'true');\n\n\t\tswitch (options.iconPack) {\n\t\t\tcase 'fontawesome':\n\n\t\t\t\tiel.classList.add('fa');\n\n\t\t\t\tvar faName = options.icon.name ? options.icon.name : options.icon;\n\n\t\t\t\tif (faName.includes('fa-')) {\n\t\t\t\t\tiel.classList.add(faName.trim());\n\t\t\t\t} else {\n\t\t\t\t\tiel.classList.add('fa-' + faName.trim());\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'mdi':\n\n\t\t\t\tiel.classList.add('mdi');\n\n\t\t\t\tvar mdiName = options.icon.name ? options.icon.name : options.icon;\n\n\t\t\t\tif (mdiName.includes('mdi-')) {\n\t\t\t\t\tiel.classList.add(mdiName.trim());\n\t\t\t\t} else {\n\t\t\t\t\tiel.classList.add('mdi-' + mdiName.trim());\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'custom-class':\n\n\t\t\t\tvar classes = options.icon.name ? options.icon.name : options.icon;\n\n\t\t\t\tif (typeof classes === 'string') {\n\t\t\t\t\tclasses.split(' ').forEach(function (className) {\n\t\t\t\t\t\tiel.classList.add(className);\n\t\t\t\t\t});\n\t\t\t\t} else if (Array.isArray(classes)) {\n\t\t\t\t\tclasses.forEach(function (className) {\n\t\t\t\t\t\tiel.classList.add(className.trim());\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'callback':\n\t\t\t\tvar callback = options.icon && options.icon instanceof Function ? options.icon : null;\n\n\t\t\t\tif (callback) {\n\t\t\t\t\tiel = callback(iel);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tiel.classList.add('material-icons');\n\t\t\t\tiel.textContent = options.icon.name ? options.icon.name : options.icon;\n\t\t}\n\n\t\tif (options.icon.after) {\n\t\t\tiel.classList.add('after');\n\t\t}\n\n\t\tappendIcon(options, iel, toast);\n\t}\n};\n\nvar appendIcon = function appendIcon(options, el, toast) {\n\n\tif (options.icon) {\n\n\t\tif (options.icon.after && options.icon.name) {\n\t\t\ttoast.appendChild(el);\n\t\t} else if (options.icon.name) {\n\t\t\ttoast.insertBefore(el, toast.firstChild);\n\t\t} else {\n\t\t\ttoast.insertBefore(el, toast.firstChild);\n\t\t}\n\t}\n};\n\n/**\n * Create Action for the toast\n *\n * @param action\n * @param toastObject\n * @returns {Element}\n */\nvar createAction = function createAction(action, toastObject) {\n\n\tif (!action) {\n\t\treturn null;\n\t}\n\n\tvar el = document.createElement('a');\n\tel.classList.add('action');\n\tel.classList.add('ripple');\n\n\tif (action.text) {\n\t\tel.text = action.text;\n\t}\n\n\tif (action.href) {\n\t\tel.href = action.href;\n\t}\n\n\tif (action.target) {\n\t\tel.target = action.target;\n\t}\n\n\tif (action.icon) {\n\n\t\t// add icon class to style it\n\t\tel.classList.add('icon');\n\n\t\t// create icon element\n\t\tvar iel = document.createElement('i');\n\n\t\tswitch (_options.iconPack) {\n\t\t\tcase 'fontawesome':\n\t\t\t\tiel.classList.add('fa');\n\n\t\t\t\tif (action.icon.includes('fa-')) {\n\t\t\t\t\tiel.classList.add(action.icon.trim());\n\t\t\t\t} else {\n\t\t\t\t\tiel.classList.add('fa-' + action.icon.trim());\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'mdi':\n\t\t\t\tiel.classList.add('mdi');\n\n\t\t\t\tif (action.icon.includes('mdi-')) {\n\t\t\t\t\tiel.classList.add(action.icon.trim());\n\t\t\t\t} else {\n\t\t\t\t\tiel.classList.add('mdi-' + action.icon.trim());\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'custom-class':\n\n\t\t\t\tif (typeof action.icon === 'string') {\n\t\t\t\t\taction.icon.split(' ').forEach(function (className) {\n\t\t\t\t\t\tel.classList.add(className);\n\t\t\t\t\t});\n\t\t\t\t} else if (Array.isArray(action.icon)) {\n\t\t\t\t\taction.icon.forEach(function (className) {\n\t\t\t\t\t\tel.classList.add(className.trim());\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tiel.classList.add('material-icons');\n\t\t\t\tiel.textContent = action.icon;\n\t\t}\n\n\t\t// append it to the button\n\t\tel.appendChild(iel);\n\t}\n\n\tif (action.class) {\n\n\t\tif (typeof action.class === 'string') {\n\t\t\taction.class.split(' ').forEach(function (className) {\n\t\t\t\tel.classList.add(className);\n\t\t\t});\n\t\t} else if (Array.isArray(action.class)) {\n\t\t\taction.class.forEach(function (className) {\n\t\t\t\tel.classList.add(className.trim());\n\t\t\t});\n\t\t}\n\t}\n\n\t// initiate push with ready\n\tif (action.push) {\n\n\t\tel.addEventListener('click', function (e) {\n\t\t\te.preventDefault();\n\n\t\t\t// check if vue router passed through global options\n\t\t\tif (!_options.router) {\n\t\t\t\tconsole.warn('[vue-toasted] : Vue Router instance is not attached. please check the docs');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_options.router.push(action.push);\n\n\t\t\t// fade away toast after action.\n\t\t\tif (!action.push.dontClose) {\n\t\t\t\ttoastObject.goAway(0);\n\t\t\t}\n\t\t});\n\t}\n\n\tif (action.onClick && typeof action.onClick === 'function') {\n\t\tel.addEventListener('click', function (e) {\n\n\t\t\tif (action.onClick) {\n\t\t\t\te.preventDefault();\n\t\t\t\taction.onClick(e, toastObject);\n\t\t\t}\n\t\t});\n\t}\n\n\treturn el;\n};\n\n/**\n * this method will create the toast\n *\n * @param instance\n * @param message\n * @param options\n * @returns {{el: *, text: text, goAway: goAway}}\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (instance, message, options) {\n\n\t// share the instance across\n\t_instance = instance;\n\n\toptions = parseOptions(options);\n\tvar container = _instance.container;\n\n\toptions.containerClass.unshift('toasted-container');\n\n\t// check if the container classes has changed if so update it\n\tif (container.className !== options.containerClass.join(' ')) {\n\t\tcontainer.className = \"\";\n\t\toptions.containerClass.forEach(function (className) {\n\t\t\tcontainer.classList.add(className);\n\t\t});\n\t}\n\n\t// Select and append toast\n\tvar newToast = createToast(message, options);\n\n\t// only append toast if message is not undefined\n\tif (message) {\n\t\tcontainer.appendChild(newToast);\n\t}\n\n\tnewToast.style.opacity = 0;\n\n\t// Animate toast in\n\t__WEBPACK_IMPORTED_MODULE_1__animations__[\"a\" /* default */].animateIn(newToast);\n\n\t// Allows timer to be pause while being panned\n\tvar timeLeft = options.duration;\n\tvar counterInterval = void 0;\n\tif (timeLeft !== null) {\n\n\t\tvar createInterval = function createInterval() {\n\t\t\treturn setInterval(function () {\n\t\t\t\tif (newToast.parentNode === null) window.clearInterval(counterInterval);\n\n\t\t\t\t// If toast is not being dragged, decrease its time remaining\n\t\t\t\tif (!newToast.classList.contains('panning')) {\n\t\t\t\t\ttimeLeft -= 20;\n\t\t\t\t}\n\n\t\t\t\tif (timeLeft <= 0) {\n\t\t\t\t\t// Animate toast out\n\n\t\t\t\t\t__WEBPACK_IMPORTED_MODULE_1__animations__[\"a\" /* default */].animateOut(newToast, function () {\n\t\t\t\t\t\t// Call the optional callback\n\t\t\t\t\t\tif (typeof options.onComplete === \"function\") options.onComplete();\n\t\t\t\t\t\t// Remove toast after it times out\n\t\t\t\t\t\tif (newToast.parentNode) {\n\t\t\t\t\t\t\t_instance.remove(newToast);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\twindow.clearInterval(counterInterval);\n\t\t\t\t}\n\t\t\t}, 20);\n\t\t};\n\n\t\tcounterInterval = createInterval();\n\n\t\t// Toggle interval on hover\n\t\tif (options.keepOnHover) {\n\t\t\tnewToast.addEventListener('mouseover', function () {\n\t\t\t\twindow.clearInterval(counterInterval);\n\t\t\t});\n\t\t\tnewToast.addEventListener('mouseout', function () {\n\t\t\t\tcounterInterval = createInterval();\n\t\t\t});\n\t\t}\n\t}\n\n\treturn __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__object__[\"a\" /* toastObject */])(newToast, _instance);\n});;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\n};\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (true) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = function() {\n return Hammer;\n }.call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n// This file replaces `format.js` in bundlers like webpack or Rollup,\n// according to `browser` config in `package.json`.\n\nmodule.exports = function (random, alphabet, size) {\n // We can’t use bytes bigger than the alphabet. To make bytes values closer\n // to the alphabet, we apply bitmask on them. We look for the closest\n // `2 ** x - 1` number, which will be bigger than alphabet size. If we have\n // 30 symbols in the alphabet, we will take 31 (00011111).\n // We do not use faster Math.clz32, because it is not available in browsers.\n var mask = (2 << Math.log(alphabet.length - 1) / Math.LN2) - 1\n // Bitmask is not a perfect solution (in our example it will pass 31 bytes,\n // which is bigger than the alphabet). As a result, we will need more bytes,\n // than ID size, because we will refuse bytes bigger than the alphabet.\n\n // Every hardware random generator call is costly,\n // because we need to wait for entropy collection. This is why often it will\n // be faster to ask for few extra bytes in advance, to avoid additional calls.\n\n // Here we calculate how many random bytes should we call in advance.\n // It depends on ID length, mask / alphabet size and magic number 1.6\n // (which was selected according benchmarks).\n\n // -~f => Math.ceil(f) if n is float number\n // -~i => i + 1 if n is integer number\n var step = -~(1.6 * mask * size / alphabet.length)\n var id = ''\n\n while (true) {\n var bytes = random(step)\n // Compact alternative for `for (var i = 0; i < step; i++)`\n var i = step\n while (i--) {\n // If random byte is bigger than alphabet even after bitmask,\n // we refuse it by `|| ''`.\n id += alphabet[bytes[i] & mask] || ''\n // More compact than `id.length + 1 === size`\n if (id.length === +size) return id\n }\n }\n}\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar generate = __webpack_require__(12);\nvar alphabet = __webpack_require__(0);\n\n// Ignore all milliseconds before a certain time to reduce the size of the date entropy without sacrificing uniqueness.\n// This number should be updated every year or so to keep the generated id short.\n// To regenerate `new Date() - 0` and bump the version. Always bump the version!\nvar REDUCE_TIME = 1567752802062;\n\n// don't change unless we change the algos or REDUCE_TIME\n// must be an integer and less than 16\nvar version = 7;\n\n// Counter is used when shortid is called multiple times in one second.\nvar counter;\n\n// Remember the last time shortid was called in case counter is needed.\nvar previousSeconds;\n\n/**\n * Generate unique id\n * Returns string id\n */\nfunction build(clusterWorkerId) {\n var str = '';\n\n var seconds = Math.floor((Date.now() - REDUCE_TIME) * 0.001);\n\n if (seconds === previousSeconds) {\n counter++;\n } else {\n counter = 0;\n previousSeconds = seconds;\n }\n\n str = str + generate(version);\n str = str + generate(clusterWorkerId);\n if (counter > 0) {\n str = str + generate(counter);\n }\n str = str + generate(seconds);\n return str;\n}\n\nmodule.exports = build;\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar alphabet = __webpack_require__(0);\nvar random = __webpack_require__(15);\nvar format = __webpack_require__(10);\n\nfunction generate(number) {\n var loopCounter = 0;\n var done;\n\n var str = '';\n\n while (!done) {\n str = str + format(random, alphabet.get(), 1);\n done = number < (Math.pow(16, loopCounter + 1 ) );\n loopCounter++;\n }\n return str;\n}\n\nmodule.exports = generate;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar alphabet = __webpack_require__(0);\nvar build = __webpack_require__(11);\nvar isValid = __webpack_require__(14);\n\n// if you are using cluster or multiple servers use this to make each instance\n// has a unique value for worker\n// Note: I don't know if this is automatically set when using third\n// party cluster solutions such as pm2.\nvar clusterWorkerId = __webpack_require__(17) || 0;\n\n/**\n * Set the seed.\n * Highly recommended if you don't want people to try to figure out your id schema.\n * exposed as shortid.seed(int)\n * @param seed Integer value to seed the random alphabet. ALWAYS USE THE SAME SEED or you might get overlaps.\n */\nfunction seed(seedValue) {\n alphabet.seed(seedValue);\n return module.exports;\n}\n\n/**\n * Set the cluster worker or machine id\n * exposed as shortid.worker(int)\n * @param workerId worker must be positive integer. Number less than 16 is recommended.\n * returns shortid module so it can be chained.\n */\nfunction worker(workerId) {\n clusterWorkerId = workerId;\n return module.exports;\n}\n\n/**\n *\n * sets new characters to use in the alphabet\n * returns the shuffled alphabet\n */\nfunction characters(newCharacters) {\n if (newCharacters !== undefined) {\n alphabet.characters(newCharacters);\n }\n\n return alphabet.shuffled();\n}\n\n/**\n * Generate unique id\n * Returns string id\n */\nfunction generate() {\n return build(clusterWorkerId);\n}\n\n// Export all other functions as properties of the generate function\nmodule.exports = generate;\nmodule.exports.generate = generate;\nmodule.exports.seed = seed;\nmodule.exports.worker = worker;\nmodule.exports.characters = characters;\nmodule.exports.isValid = isValid;\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar alphabet = __webpack_require__(0);\n\nfunction isShortId(id) {\n if (!id || typeof id !== 'string' || id.length < 6 ) {\n return false;\n }\n\n var nonAlphabetic = new RegExp('[^' +\n alphabet.get().replace(/[|\\\\{}()[\\]^$+*?.-]/g, '\\\\$&') +\n ']');\n return !nonAlphabetic.test(id);\n}\n\nmodule.exports = isShortId;\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar crypto = typeof window === 'object' && (window.crypto || window.msCrypto); // IE 11 uses window.msCrypto\n\nvar randomByte;\n\nif (!crypto || !crypto.getRandomValues) {\n randomByte = function(size) {\n var bytes = [];\n for (var i = 0; i < size; i++) {\n bytes.push(Math.floor(Math.random() * 256));\n }\n return bytes;\n };\n} else {\n randomByte = function(size) {\n return crypto.getRandomValues(new Uint8Array(size));\n };\n}\n\nmodule.exports = randomByte;\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Found this seed-based random generator somewhere\n// Based on The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu)\n\nvar seed = 1;\n\n/**\n * return a random number based on a seed\n * @param seed\n * @returns {number}\n */\nfunction getNextValue() {\n seed = (seed * 9301 + 49297) % 233280;\n return seed/(233280.0);\n}\n\nfunction setSeed(_seed_) {\n seed = _seed_;\n}\n\nmodule.exports = {\n nextValue: getNextValue,\n seed: setSeed\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = 0;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports) {\n\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=toasted.js.map","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse {\n\t\tvar a = factory();\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// identity function for calling harmony imports with the correct context\n/******/ \t__webpack_require__.i = function(value) { return value; };\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"/dist/\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 6);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar randomFromSeed = __webpack_require__(19);\n\nvar ORIGINAL = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-';\nvar alphabet;\nvar previousSeed;\n\nvar shuffled;\n\nfunction reset() {\n shuffled = false;\n}\n\nfunction setCharacters(_alphabet_) {\n if (!_alphabet_) {\n if (alphabet !== ORIGINAL) {\n alphabet = ORIGINAL;\n reset();\n }\n return;\n }\n\n if (_alphabet_ === alphabet) {\n return;\n }\n\n if (_alphabet_.length !== ORIGINAL.length) {\n throw new Error('Custom alphabet for shortid must be ' + ORIGINAL.length + ' unique characters. You submitted ' + _alphabet_.length + ' characters: ' + _alphabet_);\n }\n\n var unique = _alphabet_.split('').filter(function(item, ind, arr){\n return ind !== arr.lastIndexOf(item);\n });\n\n if (unique.length) {\n throw new Error('Custom alphabet for shortid must be ' + ORIGINAL.length + ' unique characters. These characters were not unique: ' + unique.join(', '));\n }\n\n alphabet = _alphabet_;\n reset();\n}\n\nfunction characters(_alphabet_) {\n setCharacters(_alphabet_);\n return alphabet;\n}\n\nfunction setSeed(seed) {\n randomFromSeed.seed(seed);\n if (previousSeed !== seed) {\n reset();\n previousSeed = seed;\n }\n}\n\nfunction shuffle() {\n if (!alphabet) {\n setCharacters(ORIGINAL);\n }\n\n var sourceArray = alphabet.split('');\n var targetArray = [];\n var r = randomFromSeed.nextValue();\n var characterIndex;\n\n while (sourceArray.length > 0) {\n r = randomFromSeed.nextValue();\n characterIndex = Math.floor(r * sourceArray.length);\n targetArray.push(sourceArray.splice(characterIndex, 1)[0]);\n }\n return targetArray.join('');\n}\n\nfunction getShuffled() {\n if (shuffled) {\n return shuffled;\n }\n shuffled = shuffle();\n return shuffled;\n}\n\n/**\n * lookup shuffled letter\n * @param index\n * @returns {string}\n */\nfunction lookup(index) {\n var alphabetShuffled = getShuffled();\n return alphabetShuffled[index];\n}\n\nfunction get () {\n return alphabet || ORIGINAL;\n}\n\nmodule.exports = {\n get: get,\n characters: characters,\n seed: setSeed,\n lookup: lookup,\n shuffled: getShuffled\n};\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_animejs__ = __webpack_require__(5);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_animejs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_animejs__);\n\n\nvar duration = 300;\n\n/* harmony default export */ __webpack_exports__[\"a\"] = ({\n animateIn: function animateIn(el) {\n __WEBPACK_IMPORTED_MODULE_0_animejs___default()({\n targets: el,\n translateY: '-35px',\n opacity: 1,\n duration: duration,\n easing: 'easeOutCubic'\n });\n },\n animateOut: function animateOut(el, onComplete) {\n __WEBPACK_IMPORTED_MODULE_0_animejs___default()({\n targets: el,\n opacity: 0,\n marginTop: '-40px',\n duration: duration,\n easing: 'easeOutExpo',\n complete: onComplete\n });\n },\n animateOutBottom: function animateOutBottom(el, onComplete) {\n __WEBPACK_IMPORTED_MODULE_0_animejs___default()({\n targets: el,\n opacity: 0,\n marginBottom: '-40px',\n duration: duration,\n easing: 'easeOutExpo',\n complete: onComplete\n });\n },\n animateReset: function animateReset(el) {\n __WEBPACK_IMPORTED_MODULE_0_animejs___default()({\n targets: el,\n left: 0,\n opacity: 1,\n duration: duration,\n easing: 'easeOutExpo'\n });\n },\n animatePanning: function animatePanning(el, left, opacity) {\n __WEBPACK_IMPORTED_MODULE_0_animejs___default()({\n targets: el,\n duration: 10,\n easing: 'easeOutQuad',\n left: left,\n opacity: opacity\n });\n },\n animatePanEnd: function animatePanEnd(el, onComplete) {\n __WEBPACK_IMPORTED_MODULE_0_animejs___default()({\n targets: el,\n opacity: 0,\n duration: duration,\n easing: 'easeOutExpo',\n complete: onComplete\n });\n },\n clearAnimation: function clearAnimation(toasts) {\n\n var timeline = __WEBPACK_IMPORTED_MODULE_0_animejs___default.a.timeline();\n\n toasts.forEach(function (t) {\n timeline.add({\n targets: t.el,\n opacity: 0,\n right: '-40px',\n duration: 300,\n offset: '-=150',\n easing: 'easeOutExpo',\n complete: function complete() {\n t.remove();\n }\n });\n });\n }\n});\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nmodule.exports = __webpack_require__(16);\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return Toasted; });\n/* unused harmony export _show */\n/* unused harmony export initiateCustomToasts */\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__show__ = __webpack_require__(8);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__animations__ = __webpack_require__(1);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\nvar uuid = __webpack_require__(2);\n\n// add Object.assign Polyfill\n__webpack_require__(11).polyfill();\n\n/**\n * Toast\n * core instance of toast\n *\n * @param _options\n * @returns {Toasted}\n * @constructor\n */\nvar Toasted = function Toasted(_options) {\n\tvar _this = this;\n\n\t/**\n * Unique id of the toast\n */\n\tthis.id = uuid.generate();\n\n\t/**\n * Shared Options of the Toast\n */\n\tthis.options = _options;\n\n\t/**\n * Cached Options of the Toast\n */\n\tthis.cached_options = {};\n\n\t/**\n * Shared Toasts list\n */\n\tthis.global = {};\n\n\t/**\n * All Registered Groups\n */\n\tthis.groups = [];\n\n\t/**\n * All Registered Toasts\n */\n\tthis.toasts = [];\n\n\t/**\n * Element of the Toast Container\n */\n\tthis.container = null;\n\n\t/**\n * Initiate toast container\n */\n\tinitiateToastContainer(this);\n\n\t/**\n * Initiate custom toasts\n */\n\tinitiateCustomToasts(this);\n\n\t/**\n * Create New Group of Toasts\n *\n * @param o\n */\n\tthis.group = function (o) {\n\n\t\tif (!o) o = {};\n\n\t\tif (!o.globalToasts) {\n\t\t\to.globalToasts = {};\n\t\t}\n\n\t\t// share parents global toasts\n\t\tObject.assign(o.globalToasts, _this.global);\n\n\t\t// tell parent about the group\n\t\tvar group = new Toasted(o);\n\t\t_this.groups.push(group);\n\n\t\treturn group;\n\t};\n\n\t/**\n * Register a Global Toast\n *\n * @param name\n * @param payload\n * @param options\n */\n\tthis.register = function (name, payload, options) {\n\t\toptions = options || {};\n\t\treturn register(_this, name, payload, options);\n\t};\n\n\t/**\n * Show a Simple Toast\n *\n * @param message\n * @param options\n * @returns {*}\n */\n\tthis.show = function (message, options) {\n\t\treturn _show(_this, message, options);\n\t};\n\n\t/**\n * Show a Toast with Success Style\n *\n * @param message\n * @param options\n * @returns {*}\n */\n\tthis.success = function (message, options) {\n\t\toptions = options || {};\n\t\toptions.type = \"success\";\n\t\treturn _show(_this, message, options);\n\t};\n\n\t/**\n * Show a Toast with Info Style\n *\n * @param message\n * @param options\n * @returns {*}\n */\n\tthis.info = function (message, options) {\n\t\toptions = options || {};\n\t\toptions.type = \"info\";\n\t\treturn _show(_this, message, options);\n\t};\n\n\t/**\n * Show a Toast with Error Style\n *\n * @param message\n * @param options\n * @returns {*}\n */\n\tthis.error = function (message, options) {\n\t\toptions = options || {};\n\t\toptions.type = \"error\";\n\t\treturn _show(_this, message, options);\n\t};\n\n\t/**\n * Remove a Toast\n * @param el\n */\n\tthis.remove = function (el) {\n\t\t_this.toasts = _this.toasts.filter(function (t) {\n\t\t\treturn t.el.hash !== el.hash;\n\t\t});\n\t\tif (el.parentNode) el.parentNode.removeChild(el);\n\t};\n\n\t/**\n * Clear All Toasts\n *\n * @returns {boolean}\n */\n\tthis.clear = function (onClear) {\n\t\t__WEBPACK_IMPORTED_MODULE_1__animations__[\"a\" /* default */].clearAnimation(_this.toasts, function () {\n\t\t\tonClear && onClear();\n\t\t});\n\t\t_this.toasts = [];\n\n\t\treturn true;\n\t};\n\n\treturn this;\n};\n\n/**\n * Wrapper for show method in order to manipulate options\n *\n * @param instance\n * @param message\n * @param options\n * @returns {*}\n * @private\n */\nvar _show = function _show(instance, message, options) {\n\toptions = options || {};\n\tvar toast = null;\n\n\tif ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) !== \"object\") {\n\t\tconsole.error(\"Options should be a type of object. given : \" + options);\n\t\treturn null;\n\t}\n\n\t// singleton feature\n\tif (instance.options.singleton && instance.toasts.length > 0) {\n\t\tinstance.cached_options = options;\n\t\tinstance.toasts[instance.toasts.length - 1].goAway(0);\n\t}\n\n\t// clone the global options\n\tvar _options = Object.assign({}, instance.options);\n\n\t// merge the cached global options with options\n\tObject.assign(_options, options);\n\n\ttoast = __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__show__[\"a\" /* default */])(instance, message, _options);\n\tinstance.toasts.push(toast);\n\n\treturn toast;\n};\n\n/**\n * Register the Custom Toasts\n */\nvar initiateCustomToasts = function initiateCustomToasts(instance) {\n\n\tvar customToasts = instance.options.globalToasts;\n\n\t// this will initiate toast for the custom toast.\n\tvar initiate = function initiate(message, options) {\n\n\t\t// check if passed option is a available method if so call it.\n\t\tif (typeof options === 'string' && instance[options]) {\n\t\t\treturn instance[options].apply(instance, [message, {}]);\n\t\t}\n\n\t\t// or else create a new toast with passed options.\n\t\treturn _show(instance, message, options);\n\t};\n\n\tif (customToasts) {\n\n\t\tinstance.global = {};\n\n\t\tObject.keys(customToasts).forEach(function (key) {\n\n\t\t\t// register the custom toast events to the Toast.custom property\n\t\t\tinstance.global[key] = function () {\n\t\t\t\tvar payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n\n\t\t\t\t//console.log(payload);\n\t\t\t\t// return the it in order to expose the Toast methods\n\t\t\t\treturn customToasts[key].apply(null, [payload, initiate]);\n\t\t\t};\n\t\t});\n\t}\n};\n\nvar initiateToastContainer = function initiateToastContainer(instance) {\n\t// create notification container\n\tvar container = document.createElement('div');\n\tcontainer.id = instance.id;\n\tcontainer.setAttribute('role', 'status');\n\tcontainer.setAttribute('aria-live', 'polite');\n\tcontainer.setAttribute('aria-atomic', 'false');\n\n\tdocument.body.appendChild(container);\n\tinstance.container = container;\n};\n\nvar register = function register(instance, name, callback, options) {\n\n\t!instance.options.globalToasts ? instance.options.globalToasts = {} : null;\n\n\tinstance.options.globalToasts[name] = function (payload, initiate) {\n\n\t\t// if call back is string we will keep it that way..\n\t\tvar message = null;\n\n\t\tif (typeof callback === 'string') {\n\t\t\tmessage = callback;\n\t\t}\n\n\t\tif (typeof callback === 'function') {\n\t\t\tmessage = callback(payload);\n\t\t}\n\n\t\treturn initiate(message, options);\n\t};\n\n\tinitiateCustomToasts(instance);\n};\n\n/* unused harmony default export */ var _unused_webpack_default_export = ({ Toasted: Toasted });\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\n/* styles */\n__webpack_require__(22)\n\nvar Component = __webpack_require__(21)(\n /* script */\n null,\n /* template */\n null,\n /* scopeId */\n null,\n /* cssModules */\n null\n)\n\nmodule.exports = Component.exports\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*\n 2017 Julian Garnier\n Released under the MIT license\n*/\nvar $jscomp={scope:{}};$jscomp.defineProperty=\"function\"==typeof Object.defineProperties?Object.defineProperty:function(e,r,p){if(p.get||p.set)throw new TypeError(\"ES3 does not support getters and setters.\");e!=Array.prototype&&e!=Object.prototype&&(e[r]=p.value)};$jscomp.getGlobal=function(e){return\"undefined\"!=typeof window&&window===e?e:\"undefined\"!=typeof global&&null!=global?global:e};$jscomp.global=$jscomp.getGlobal(this);$jscomp.SYMBOL_PREFIX=\"jscomp_symbol_\";\n$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(e){return $jscomp.SYMBOL_PREFIX+(e||\"\")+$jscomp.symbolCounter_++};\n$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var e=$jscomp.global.Symbol.iterator;e||(e=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol(\"iterator\"));\"function\"!=typeof Array.prototype[e]&&$jscomp.defineProperty(Array.prototype,e,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(e){var r=0;return $jscomp.iteratorPrototype(function(){return rb&&(b+=1);1b?c:b<2/3?a+(c-a)*(2/3-b)*6:a}var d=/hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(a)||/hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*([\\d.]+)\\)/g.exec(a);a=parseInt(d[1])/360;var b=parseInt(d[2])/100,f=parseInt(d[3])/100,d=d[4]||1;if(0==b)f=b=a=f;else{var n=.5>f?f*(1+b):f+b-f*b,k=2*f-n,f=c(k,n,a+1/3),b=c(k,n,a);a=c(k,n,a-1/3)}return\"rgba(\"+\n255*f+\",\"+255*b+\",\"+255*a+\",\"+d+\")\"}function y(a){if(a=/([\\+\\-]?[0-9#\\.]+)(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(a))return a[2]}function V(a){if(-1=g.currentTime)for(var G=0;G=w||!k)g.began||(g.began=!0,f(\"begin\")),f(\"run\");if(q>n&&q=k&&r!==k||!k)b(k),x||e();f(\"update\");a>=k&&(g.remaining?(t=h,\"alternate\"===g.direction&&(g.reversed=!g.reversed)):(g.pause(),g.completed||(g.completed=!0,f(\"complete\"),\"Promise\"in window&&(p(),m=c()))),l=0)}a=void 0===a?{}:a;var h,t,l=0,p=null,m=c(),g=fa(a);g.reset=function(){var a=g.direction,c=g.loop;g.currentTime=\n0;g.progress=0;g.paused=!0;g.began=!1;g.completed=!1;g.reversed=\"reverse\"===a;g.remaining=\"alternate\"===a&&1===c?2:c;b(0);for(a=g.children.length;a--;)g.children[a].reset()};g.tick=function(a){h=a;t||(t=h);k((l+h-t)*q.speed)};g.seek=function(a){k(d(a))};g.pause=function(){var a=v.indexOf(g);-1=c&&0<=b&&1>=b){var e=new Float32Array(11);if(c!==d||b!==f)for(var k=0;11>k;++k)e[k]=a(.1*k,c,b);return function(k){if(c===d&&b===f)return k;if(0===k)return 0;if(1===k)return 1;for(var h=0,l=1;10!==l&&e[l]<=k;++l)h+=.1;--l;var l=h+(k-e[l])/(e[l+1]-e[l])*.1,n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(.001<=n){for(h=0;4>h;++h){n=3*(1-3*b+3*c)*l*l+2*(3*b-6*c)*l+3*c;if(0===n)break;var m=a(l,c,b)-k,l=l-m/n}k=l}else if(0===\nn)k=l;else{var l=h,h=h+.1,g=0;do m=l+(h-l)/2,n=a(m,c,b)-k,0++g);k=m}return a(k,d,f)}}}}(),Q=function(){function a(a,b){return 0===a||1===a?a:-Math.pow(2,10*(a-1))*Math.sin(2*(a-1-b/(2*Math.PI)*Math.asin(1))*Math.PI/b)}var c=\"Quad Cubic Quart Quint Sine Expo Circ Back Elastic\".split(\" \"),d={In:[[.55,.085,.68,.53],[.55,.055,.675,.19],[.895,.03,.685,.22],[.755,.05,.855,.06],[.47,0,.745,.715],[.95,.05,.795,.035],[.6,.04,.98,.335],[.6,-.28,.735,.045],a],Out:[[.25,\n.46,.45,.94],[.215,.61,.355,1],[.165,.84,.44,1],[.23,1,.32,1],[.39,.575,.565,1],[.19,1,.22,1],[.075,.82,.165,1],[.175,.885,.32,1.275],function(b,c){return 1-a(1-b,c)}],InOut:[[.455,.03,.515,.955],[.645,.045,.355,1],[.77,0,.175,1],[.86,0,.07,1],[.445,.05,.55,.95],[1,0,0,1],[.785,.135,.15,.86],[.68,-.55,.265,1.55],function(b,c){return.5>b?a(2*b,c)/2:1-a(-2*b+2,c)/2}]},b={linear:A(.25,.25,.75,.75)},f={},e;for(e in d)f.type=e,d[f.type].forEach(function(a){return function(d,f){b[\"ease\"+a.type+c[f]]=h.fnc(d)?\nd:A.apply($jscomp$this,d)}}(f)),f={type:f.type};return b}(),ha={css:function(a,c,d){return a.style[c]=d},attribute:function(a,c,d){return a.setAttribute(c,d)},object:function(a,c,d){return a[c]=d},transform:function(a,c,d,b,f){b[f]||(b[f]=[]);b[f].push(c+\"(\"+d+\")\")}},v=[],B=0,ia=function(){function a(){B=requestAnimationFrame(c)}function c(c){var b=v.length;if(b){for(var d=0;db&&(c.duration=d.duration);c.children.push(d)});c.seek(0);c.reset();c.autoplay&&c.restart();return c};return c};q.random=function(a,c){return Math.floor(Math.random()*(c-a+1))+a};return q});\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(25)))\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\nObject.defineProperty(__webpack_exports__, \"__esModule\", { value: true });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__js_toast__ = __webpack_require__(3);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__toast_vue__ = __webpack_require__(4);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__toast_vue___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1__toast_vue__);\n\n\n\nvar Toasted = {\n install: function install(Vue, options) {\n if (!options) {\n options = {};\n }\n\n var Toast = new __WEBPACK_IMPORTED_MODULE_0__js_toast__[\"a\" /* Toasted */](options);\n Vue.component('toasted', __WEBPACK_IMPORTED_MODULE_1__toast_vue___default.a);\n Vue.toasted = Vue.prototype.$toasted = Toast;\n }\n};\n\n// register plugin if it is used via cdn or directly as a script tag\nif (typeof window !== 'undefined' && window.Vue) {\n window.Toasted = Toasted;\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Toasted);\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* unused harmony export goAway */\n/* unused harmony export changeText */\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return toastObject; });\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__animations_js__ = __webpack_require__(1);\nvar _this = this;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\n// fade the toast away\nvar _goAway = function _goAway(el, delay, instance) {\n\n // Animate toast out\n setTimeout(function () {\n\n // if the toast is on bottom set it as bottom animation\n if (instance.cached_options.position && instance.cached_options.position.includes('bottom')) {\n __WEBPACK_IMPORTED_MODULE_0__animations_js__[\"a\" /* default */].animateOutBottom(el, function () {\n instance.remove(el);\n });\n return;\n }\n\n __WEBPACK_IMPORTED_MODULE_0__animations_js__[\"a\" /* default */].animateOut(el, function () {\n instance.remove(el);\n });\n }, delay);\n\n return true;\n};\n\n// change the text of toast\n\nvar changeText = function changeText(el, text) {\n if ((typeof HTMLElement === 'undefined' ? 'undefined' : _typeof(HTMLElement)) === \"object\" ? text instanceof HTMLElement : text && (typeof text === 'undefined' ? 'undefined' : _typeof(text)) === \"object\" && text !== null && text.nodeType === 1 && typeof text.nodeName === \"string\") {\n el.appendChild(text);\n } else {\n el.innerHTML = text;\n }\n\n return _this;\n};\n\nvar toastObject = function toastObject(el, instance) {\n var _disposed = false;\n\n return {\n el: el,\n text: function text(_text) {\n changeText(el, _text);\n return this;\n },\n goAway: function goAway() {\n var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 800;\n\n _disposed = true;\n return _goAway(el, delay, instance);\n },\n remove: function remove() {\n instance.remove(el);\n },\n disposed: function disposed() {\n return _disposed;\n }\n };\n};\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_hammerjs__ = __webpack_require__(12);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_hammerjs___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_hammerjs__);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__animations__ = __webpack_require__(1);\n/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__object__ = __webpack_require__(7);\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n\n\n\nvar uuid = __webpack_require__(2);\n\n// string includes polyfill\nif (!String.prototype.includes) {\n\tObject.defineProperty(String.prototype, 'includes', {\n\t\tvalue: function value(search, start) {\n\t\t\tif (typeof start !== 'number') {\n\t\t\t\tstart = 0;\n\t\t\t}\n\n\t\t\tif (start + search.length > this.length) {\n\t\t\t\treturn false;\n\t\t\t} else {\n\t\t\t\treturn this.indexOf(search, start) !== -1;\n\t\t\t}\n\t\t}\n\t});\n}\n\nvar _options = {};\nvar _instance = null;\n/**\n * parse Options\n *\n * @param options\n * @returns {{el: *, text: text, goAway: goAway}}\n */\nvar parseOptions = function parseOptions(options) {\n\n\t// class name to be added on the toast\n\toptions.className = options.className || null;\n\n\t// complete call back of the toast\n\toptions.onComplete = options.onComplete || null;\n\n\t// toast position\n\toptions.position = options.position || \"top-right\";\n\n\t// toast duration\n\toptions.duration = options.duration || null;\n\n\t// keep toast open on mouse over\n\toptions.keepOnHover = options.keepOnHover || false;\n\n\t// normal type will allow the basic color\n\toptions.theme = options.theme || \"toasted-primary\";\n\n\t// normal type will allow the basic color\n\toptions.type = options.type || \"default\";\n\n\t// class name to be added on the toast container\n\toptions.containerClass = options.containerClass || null;\n\n\t// check if the fullWidth is enabled\n\toptions.fullWidth = options.fullWidth || false;\n\n\t// get icon name\n\toptions.icon = options.icon || null;\n\n\t// get action name\n\toptions.action = options.action || null;\n\n\t// check if the toast needs to be fitted in the screen (no margin gap between screen)\n\toptions.fitToScreen = options.fitToScreen || null;\n\n\t// check if closes the toast when the user swipes it\n\toptions.closeOnSwipe = typeof options.closeOnSwipe !== 'undefined' ? options.closeOnSwipe : true;\n\n\t// get the icon pack name. defaults to material\n\toptions.iconPack = options.iconPack || 'material';\n\n\t/* transform options */\n\n\t// toast class\n\tif (options.className && typeof options.className === \"string\") {\n\t\toptions.className = options.className.split(' ');\n\t}\n\n\tif (!options.className) {\n\t\toptions.className = [];\n\t}\n\n\toptions.theme && options.className.push(options.theme.trim());\n\toptions.type && options.className.push(options.type);\n\n\t// toast container class\n\tif (options.containerClass && typeof options.containerClass === \"string\") {\n\t\toptions.containerClass = options.containerClass.split(' ');\n\t}\n\n\tif (!options.containerClass) {\n\t\toptions.containerClass = [];\n\t}\n\n\toptions.position && options.containerClass.push(options.position.trim());\n\toptions.fullWidth && options.containerClass.push('full-width');\n\toptions.fitToScreen && options.containerClass.push('fit-to-screen');\n\n\t_options = options;\n\treturn options;\n};\n\nvar createToast = function createToast(html, options) {\n\n\t// Create toast\n\tvar toast = document.createElement('div');\n\ttoast.classList.add('toasted');\n\n\t// set unique identifier\n\ttoast.hash = uuid.generate();\n\n\tif (options.className) {\n\t\toptions.className.forEach(function (className) {\n\t\t\ttoast.classList.add(className);\n\t\t});\n\t}\n\n\t// If type of parameter is HTML Element\n\tif ((typeof HTMLElement === 'undefined' ? 'undefined' : _typeof(HTMLElement)) === \"object\" ? html instanceof HTMLElement : html && (typeof html === 'undefined' ? 'undefined' : _typeof(html)) === \"object\" && html !== null && html.nodeType === 1 && typeof html.nodeName === \"string\") {\n\t\ttoast.appendChild(html);\n\t} else {\n\t\t// Insert as text;\n\t\ttoast.innerHTML = html;\n\t}\n\n\t// add material icon if available\n\tcreateIcon(options, toast);\n\n\tif (options.closeOnSwipe) {\n\t\t// Bind hammer\n\t\tvar hammerHandler = new __WEBPACK_IMPORTED_MODULE_0_hammerjs___default.a(toast, { prevent_default: false });\n\t\thammerHandler.on('pan', function (e) {\n\t\t\tvar deltaX = e.deltaX;\n\t\t\tvar activationDistance = 80;\n\n\t\t\t// Change toast state\n\t\t\tif (!toast.classList.contains('panning')) {\n\t\t\t\ttoast.classList.add('panning');\n\t\t\t}\n\n\t\t\tvar opacityPercent = 1 - Math.abs(deltaX / activationDistance);\n\t\t\tif (opacityPercent < 0) opacityPercent = 0;\n\n\t\t\t__WEBPACK_IMPORTED_MODULE_1__animations__[\"a\" /* default */].animatePanning(toast, deltaX, opacityPercent);\n\t\t});\n\n\t\thammerHandler.on('panend', function (e) {\n\t\t\tvar deltaX = e.deltaX;\n\t\t\tvar activationDistance = 80;\n\n\t\t\t// If toast dragged past activation point\n\t\t\tif (Math.abs(deltaX) > activationDistance) {\n\n\t\t\t\t__WEBPACK_IMPORTED_MODULE_1__animations__[\"a\" /* default */].animatePanEnd(toast, function () {\n\t\t\t\t\tif (typeof options.onComplete === \"function\") {\n\t\t\t\t\t\toptions.onComplete();\n\t\t\t\t\t}\n\n\t\t\t\t\tif (toast.parentNode) {\n\t\t\t\t\t\t_instance.remove(toast);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\ttoast.classList.remove('panning');\n\t\t\t\t// Put toast back into original position\n\t\t\t\t__WEBPACK_IMPORTED_MODULE_1__animations__[\"a\" /* default */].animateReset(toast);\n\t\t\t}\n\t\t});\n\t}\n\n\t// create and append actions\n\tif (Array.isArray(options.action)) {\n\t\toptions.action.forEach(function (action) {\n\t\t\tvar el = createAction(action, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__object__[\"a\" /* toastObject */])(toast, _instance));\n\t\t\tif (el) toast.appendChild(el);\n\t\t});\n\t} else if (_typeof(options.action) === 'object') {\n\t\tvar action = createAction(options.action, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__object__[\"a\" /* toastObject */])(toast, _instance));\n\t\tif (action) toast.appendChild(action);\n\t}\n\n\treturn toast;\n};\n\nvar createIcon = function createIcon(options, toast) {\n\n\t// add material icon if available\n\tif (options.icon) {\n\n\t\tvar iel = document.createElement('i');\n\t\tiel.setAttribute('aria-hidden', 'true');\n\n\t\tswitch (options.iconPack) {\n\t\t\tcase 'fontawesome':\n\n\t\t\t\tiel.classList.add('fa');\n\n\t\t\t\tvar faName = options.icon.name ? options.icon.name : options.icon;\n\n\t\t\t\tif (faName.includes('fa-')) {\n\t\t\t\t\tiel.classList.add(faName.trim());\n\t\t\t\t} else {\n\t\t\t\t\tiel.classList.add('fa-' + faName.trim());\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'mdi':\n\n\t\t\t\tiel.classList.add('mdi');\n\n\t\t\t\tvar mdiName = options.icon.name ? options.icon.name : options.icon;\n\n\t\t\t\tif (mdiName.includes('mdi-')) {\n\t\t\t\t\tiel.classList.add(mdiName.trim());\n\t\t\t\t} else {\n\t\t\t\t\tiel.classList.add('mdi-' + mdiName.trim());\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'custom-class':\n\n\t\t\t\tvar classes = options.icon.name ? options.icon.name : options.icon;\n\n\t\t\t\tif (typeof classes === 'string') {\n\t\t\t\t\tclasses.split(' ').forEach(function (className) {\n\t\t\t\t\t\tiel.classList.add(className);\n\t\t\t\t\t});\n\t\t\t\t} else if (Array.isArray(classes)) {\n\t\t\t\t\tclasses.forEach(function (className) {\n\t\t\t\t\t\tiel.classList.add(className.trim());\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'callback':\n\t\t\t\tvar callback = options.icon && options.icon instanceof Function ? options.icon : null;\n\n\t\t\t\tif (callback) {\n\t\t\t\t\tiel = callback(iel);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tiel.classList.add('material-icons');\n\t\t\t\tiel.textContent = options.icon.name ? options.icon.name : options.icon;\n\t\t}\n\n\t\tif (options.icon.after) {\n\t\t\tiel.classList.add('after');\n\t\t}\n\n\t\tappendIcon(options, iel, toast);\n\t}\n};\n\nvar appendIcon = function appendIcon(options, el, toast) {\n\n\tif (options.icon) {\n\n\t\tif (options.icon.after && options.icon.name) {\n\t\t\ttoast.appendChild(el);\n\t\t} else if (options.icon.name) {\n\t\t\ttoast.insertBefore(el, toast.firstChild);\n\t\t} else {\n\t\t\ttoast.insertBefore(el, toast.firstChild);\n\t\t}\n\t}\n};\n\n/**\n * Create Action for the toast\n *\n * @param action\n * @param toastObject\n * @returns {Element}\n */\nvar createAction = function createAction(action, toastObject) {\n\n\tif (!action) {\n\t\treturn null;\n\t}\n\n\tvar el = document.createElement('a');\n\tel.classList.add('action');\n\tel.classList.add('ripple');\n\n\tif (action.text) {\n\t\tel.text = action.text;\n\t}\n\n\tif (action.href) {\n\t\tel.href = action.href;\n\t}\n\n\tif (action.target) {\n\t\tel.target = action.target;\n\t}\n\n\tif (action.icon) {\n\n\t\t// add icon class to style it\n\t\tel.classList.add('icon');\n\n\t\t// create icon element\n\t\tvar iel = document.createElement('i');\n\n\t\tswitch (_options.iconPack) {\n\t\t\tcase 'fontawesome':\n\t\t\t\tiel.classList.add('fa');\n\n\t\t\t\tif (action.icon.includes('fa-')) {\n\t\t\t\t\tiel.classList.add(action.icon.trim());\n\t\t\t\t} else {\n\t\t\t\t\tiel.classList.add('fa-' + action.icon.trim());\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'mdi':\n\t\t\t\tiel.classList.add('mdi');\n\n\t\t\t\tif (action.icon.includes('mdi-')) {\n\t\t\t\t\tiel.classList.add(action.icon.trim());\n\t\t\t\t} else {\n\t\t\t\t\tiel.classList.add('mdi-' + action.icon.trim());\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tcase 'custom-class':\n\n\t\t\t\tif (typeof action.icon === 'string') {\n\t\t\t\t\taction.icon.split(' ').forEach(function (className) {\n\t\t\t\t\t\tel.classList.add(className);\n\t\t\t\t\t});\n\t\t\t\t} else if (Array.isArray(action.icon)) {\n\t\t\t\t\taction.icon.forEach(function (className) {\n\t\t\t\t\t\tel.classList.add(className.trim());\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tiel.classList.add('material-icons');\n\t\t\t\tiel.textContent = action.icon;\n\t\t}\n\n\t\t// append it to the button\n\t\tel.appendChild(iel);\n\t}\n\n\tif (action.class) {\n\n\t\tif (typeof action.class === 'string') {\n\t\t\taction.class.split(' ').forEach(function (className) {\n\t\t\t\tel.classList.add(className);\n\t\t\t});\n\t\t} else if (Array.isArray(action.class)) {\n\t\t\taction.class.forEach(function (className) {\n\t\t\t\tel.classList.add(className.trim());\n\t\t\t});\n\t\t}\n\t}\n\n\t// initiate push with ready\n\tif (action.push) {\n\n\t\tel.addEventListener('click', function (e) {\n\t\t\te.preventDefault();\n\n\t\t\t// check if vue router passed through global options\n\t\t\tif (!_options.router) {\n\t\t\t\tconsole.warn('[vue-toasted] : Vue Router instance is not attached. please check the docs');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t_options.router.push(action.push);\n\n\t\t\t// fade away toast after action.\n\t\t\tif (!action.push.dontClose) {\n\t\t\t\ttoastObject.goAway(0);\n\t\t\t}\n\t\t});\n\t}\n\n\tif (action.onClick && typeof action.onClick === 'function') {\n\t\tel.addEventListener('click', function (e) {\n\n\t\t\tif (action.onClick) {\n\t\t\t\te.preventDefault();\n\t\t\t\taction.onClick(e, toastObject);\n\t\t\t}\n\t\t});\n\t}\n\n\treturn el;\n};\n\n/**\n * this method will create the toast\n *\n * @param instance\n * @param message\n * @param options\n * @returns {{el: *, text: text, goAway: goAway}}\n */\n/* harmony default export */ __webpack_exports__[\"a\"] = (function (instance, message, options) {\n\n\t// share the instance across\n\t_instance = instance;\n\n\toptions = parseOptions(options);\n\tvar container = _instance.container;\n\n\toptions.containerClass.unshift('toasted-container');\n\n\t// check if the container classes has changed if so update it\n\tif (container.className !== options.containerClass.join(' ')) {\n\t\tcontainer.className = \"\";\n\t\toptions.containerClass.forEach(function (className) {\n\t\t\tcontainer.classList.add(className);\n\t\t});\n\t}\n\n\t// Select and append toast\n\tvar newToast = createToast(message, options);\n\n\t// only append toast if message is not undefined\n\tif (message) {\n\t\tcontainer.appendChild(newToast);\n\t}\n\n\tnewToast.style.opacity = 0;\n\n\t// Animate toast in\n\t__WEBPACK_IMPORTED_MODULE_1__animations__[\"a\" /* default */].animateIn(newToast);\n\n\t// Allows timer to be pause while being panned\n\tvar timeLeft = options.duration;\n\tvar counterInterval = void 0;\n\tif (timeLeft !== null) {\n\n\t\tvar createInterval = function createInterval() {\n\t\t\treturn setInterval(function () {\n\t\t\t\tif (newToast.parentNode === null) window.clearInterval(counterInterval);\n\n\t\t\t\t// If toast is not being dragged, decrease its time remaining\n\t\t\t\tif (!newToast.classList.contains('panning')) {\n\t\t\t\t\ttimeLeft -= 20;\n\t\t\t\t}\n\n\t\t\t\tif (timeLeft <= 0) {\n\t\t\t\t\t// Animate toast out\n\n\t\t\t\t\t__WEBPACK_IMPORTED_MODULE_1__animations__[\"a\" /* default */].animateOut(newToast, function () {\n\t\t\t\t\t\t// Call the optional callback\n\t\t\t\t\t\tif (typeof options.onComplete === \"function\") options.onComplete();\n\t\t\t\t\t\t// Remove toast after it times out\n\t\t\t\t\t\tif (newToast.parentNode) {\n\t\t\t\t\t\t\t_instance.remove(newToast);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\twindow.clearInterval(counterInterval);\n\t\t\t\t}\n\t\t\t}, 20);\n\t\t};\n\n\t\tcounterInterval = createInterval();\n\n\t\t// Toggle interval on hover\n\t\tif (options.keepOnHover) {\n\t\t\tnewToast.addEventListener('mouseover', function () {\n\t\t\t\twindow.clearInterval(counterInterval);\n\t\t\t});\n\t\t\tnewToast.addEventListener('mouseout', function () {\n\t\t\t\tcounterInterval = createInterval();\n\t\t\t});\n\t\t}\n\t}\n\n\treturn __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__object__[\"a\" /* toastObject */])(newToast, _instance);\n});;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nexports = module.exports = __webpack_require__(10)();\n// imports\n\n\n// module\nexports.push([module.i, \".toasted{padding:0 20px}.toasted.rounded{border-radius:24px}.toasted .primary,.toasted.toasted-primary{border-radius:2px;min-height:38px;line-height:1.1em;background-color:#353535;padding:6px 20px;font-size:15px;font-weight:300;color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)}.toasted .primary.success,.toasted.toasted-primary.success{background:#4caf50}.toasted .primary.error,.toasted.toasted-primary.error{background:#f44336}.toasted .primary.info,.toasted.toasted-primary.info{background:#3f51b5}.toasted .primary .action,.toasted.toasted-primary .action{color:#a1c2fa}.toasted.bubble{border-radius:30px;min-height:38px;line-height:1.1em;background-color:#ff7043;padding:0 20px;font-size:15px;font-weight:300;color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24)}.toasted.bubble.success{background:#4caf50}.toasted.bubble.error{background:#f44336}.toasted.bubble.info{background:#3f51b5}.toasted.bubble .action{color:#8e2b0c}.toasted.outline{border-radius:30px;min-height:38px;line-height:1.1em;background-color:#fff;border:1px solid #676767;padding:0 20px;font-size:15px;color:#676767;box-shadow:0 1px 3px rgba(0,0,0,.12),0 1px 2px rgba(0,0,0,.24);font-weight:700}.toasted.outline.success{color:#4caf50;border-color:#4caf50}.toasted.outline.error{color:#f44336;border-color:#f44336}.toasted.outline.info{color:#3f51b5;border-color:#3f51b5}.toasted.outline .action{color:#607d8b}.toasted-container{position:fixed;z-index:10000}.toasted-container,.toasted-container.full-width{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.toasted-container.full-width{max-width:86%;width:100%}.toasted-container.full-width.fit-to-screen{min-width:100%}.toasted-container.full-width.fit-to-screen .toasted:first-child{margin-top:0}.toasted-container.full-width.fit-to-screen.top-right{top:0;right:0}.toasted-container.full-width.fit-to-screen.top-left{top:0;left:0}.toasted-container.full-width.fit-to-screen.top-center{top:0;left:0;-webkit-transform:translateX(0);transform:translateX(0)}.toasted-container.full-width.fit-to-screen.bottom-right{right:0;bottom:0}.toasted-container.full-width.fit-to-screen.bottom-left{left:0;bottom:0}.toasted-container.full-width.fit-to-screen.bottom-center{left:0;bottom:0;-webkit-transform:translateX(0);transform:translateX(0)}.toasted-container.top-right{top:10%;right:7%}.toasted-container.top-left{top:10%;left:7%}.toasted-container.top-center{top:10%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.toasted-container.bottom-right{right:5%;bottom:7%}.toasted-container.bottom-left{left:5%;bottom:7%}.toasted-container.bottom-center{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);bottom:7%}.toasted-container.bottom-left .toasted,.toasted-container.top-left .toasted{float:left}.toasted-container.bottom-right .toasted,.toasted-container.top-right .toasted{float:right}.toasted-container .toasted{top:35px;width:auto;clear:both;margin-top:10px;position:relative;max-width:100%;height:auto;word-break:normal;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;box-sizing:inherit}.toasted-container .toasted .fa,.toasted-container .toasted .fab,.toasted-container .toasted .far,.toasted-container .toasted .fas,.toasted-container .toasted .material-icons,.toasted-container .toasted .mdi{margin-right:.5rem;margin-left:-.4rem}.toasted-container .toasted .fa.after,.toasted-container .toasted .fab.after,.toasted-container .toasted .far.after,.toasted-container .toasted .fas.after,.toasted-container .toasted .material-icons.after,.toasted-container .toasted .mdi.after{margin-left:.5rem;margin-right:-.4rem}.toasted-container .toasted .action{text-decoration:none;font-size:.8rem;padding:8px;margin:5px -7px 5px 7px;border-radius:3px;text-transform:uppercase;letter-spacing:.03em;font-weight:600;cursor:pointer}.toasted-container .toasted .action.icon{padding:4px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.toasted-container .toasted .action.icon .fa,.toasted-container .toasted .action.icon .material-icons,.toasted-container .toasted .action.icon .mdi{margin-right:0;margin-left:4px}.toasted-container .toasted .action.icon:hover{text-decoration:none}.toasted-container .toasted .action:hover{text-decoration:underline}@media only screen and (max-width:600px){.toasted-container{min-width:100%}.toasted-container .toasted:first-child{margin-top:0}.toasted-container.top-right{top:0;right:0}.toasted-container.top-left{top:0;left:0}.toasted-container.top-center{top:0;left:0;-webkit-transform:translateX(0);transform:translateX(0)}.toasted-container.bottom-right{right:0;bottom:0}.toasted-container.bottom-left{left:0;bottom:0}.toasted-container.bottom-center{left:0;bottom:0;-webkit-transform:translateX(0);transform:translateX(0)}.toasted-container.bottom-center,.toasted-container.top-center{-ms-flex-align:stretch!important;align-items:stretch!important}.toasted-container.bottom-left .toasted,.toasted-container.bottom-right .toasted,.toasted-container.top-left .toasted,.toasted-container.top-right .toasted{float:none}.toasted-container .toasted{border-radius:0}}\", \"\"]);\n\n// exports\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\n};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (true) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = function() {\n return Hammer;\n }.call(exports, __webpack_require__, exports, module),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\n// This file replaces `format.js` in bundlers like webpack or Rollup,\n// according to `browser` config in `package.json`.\n\nmodule.exports = function (random, alphabet, size) {\n // We can’t use bytes bigger than the alphabet. To make bytes values closer\n // to the alphabet, we apply bitmask on them. We look for the closest\n // `2 ** x - 1` number, which will be bigger than alphabet size. If we have\n // 30 symbols in the alphabet, we will take 31 (00011111).\n // We do not use faster Math.clz32, because it is not available in browsers.\n var mask = (2 << Math.log(alphabet.length - 1) / Math.LN2) - 1\n // Bitmask is not a perfect solution (in our example it will pass 31 bytes,\n // which is bigger than the alphabet). As a result, we will need more bytes,\n // than ID size, because we will refuse bytes bigger than the alphabet.\n\n // Every hardware random generator call is costly,\n // because we need to wait for entropy collection. This is why often it will\n // be faster to ask for few extra bytes in advance, to avoid additional calls.\n\n // Here we calculate how many random bytes should we call in advance.\n // It depends on ID length, mask / alphabet size and magic number 1.6\n // (which was selected according benchmarks).\n\n // -~f => Math.ceil(f) if n is float number\n // -~i => i + 1 if n is integer number\n var step = -~(1.6 * mask * size / alphabet.length)\n var id = ''\n\n while (true) {\n var bytes = random(step)\n // Compact alternative for `for (var i = 0; i < step; i++)`\n var i = step\n while (i--) {\n // If random byte is bigger than alphabet even after bitmask,\n // we refuse it by `|| ''`.\n id += alphabet[bytes[i] & mask] || ''\n // More compact than `id.length + 1 === size`\n if (id.length === +size) return id\n }\n }\n}\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar generate = __webpack_require__(15);\nvar alphabet = __webpack_require__(0);\n\n// Ignore all milliseconds before a certain time to reduce the size of the date entropy without sacrificing uniqueness.\n// This number should be updated every year or so to keep the generated id short.\n// To regenerate `new Date() - 0` and bump the version. Always bump the version!\nvar REDUCE_TIME = 1567752802062;\n\n// don't change unless we change the algos or REDUCE_TIME\n// must be an integer and less than 16\nvar version = 7;\n\n// Counter is used when shortid is called multiple times in one second.\nvar counter;\n\n// Remember the last time shortid was called in case counter is needed.\nvar previousSeconds;\n\n/**\n * Generate unique id\n * Returns string id\n */\nfunction build(clusterWorkerId) {\n var str = '';\n\n var seconds = Math.floor((Date.now() - REDUCE_TIME) * 0.001);\n\n if (seconds === previousSeconds) {\n counter++;\n } else {\n counter = 0;\n previousSeconds = seconds;\n }\n\n str = str + generate(version);\n str = str + generate(clusterWorkerId);\n if (counter > 0) {\n str = str + generate(counter);\n }\n str = str + generate(seconds);\n return str;\n}\n\nmodule.exports = build;\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar alphabet = __webpack_require__(0);\nvar random = __webpack_require__(18);\nvar format = __webpack_require__(13);\n\nfunction generate(number) {\n var loopCounter = 0;\n var done;\n\n var str = '';\n\n while (!done) {\n str = str + format(random, alphabet.get(), 1);\n done = number < (Math.pow(16, loopCounter + 1 ) );\n loopCounter++;\n }\n return str;\n}\n\nmodule.exports = generate;\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar alphabet = __webpack_require__(0);\nvar build = __webpack_require__(14);\nvar isValid = __webpack_require__(17);\n\n// if you are using cluster or multiple servers use this to make each instance\n// has a unique value for worker\n// Note: I don't know if this is automatically set when using third\n// party cluster solutions such as pm2.\nvar clusterWorkerId = __webpack_require__(20) || 0;\n\n/**\n * Set the seed.\n * Highly recommended if you don't want people to try to figure out your id schema.\n * exposed as shortid.seed(int)\n * @param seed Integer value to seed the random alphabet. ALWAYS USE THE SAME SEED or you might get overlaps.\n */\nfunction seed(seedValue) {\n alphabet.seed(seedValue);\n return module.exports;\n}\n\n/**\n * Set the cluster worker or machine id\n * exposed as shortid.worker(int)\n * @param workerId worker must be positive integer. Number less than 16 is recommended.\n * returns shortid module so it can be chained.\n */\nfunction worker(workerId) {\n clusterWorkerId = workerId;\n return module.exports;\n}\n\n/**\n *\n * sets new characters to use in the alphabet\n * returns the shuffled alphabet\n */\nfunction characters(newCharacters) {\n if (newCharacters !== undefined) {\n alphabet.characters(newCharacters);\n }\n\n return alphabet.shuffled();\n}\n\n/**\n * Generate unique id\n * Returns string id\n */\nfunction generate() {\n return build(clusterWorkerId);\n}\n\n// Export all other functions as properties of the generate function\nmodule.exports = generate;\nmodule.exports.generate = generate;\nmodule.exports.seed = seed;\nmodule.exports.worker = worker;\nmodule.exports.characters = characters;\nmodule.exports.isValid = isValid;\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar alphabet = __webpack_require__(0);\n\nfunction isShortId(id) {\n if (!id || typeof id !== 'string' || id.length < 6 ) {\n return false;\n }\n\n var nonAlphabetic = new RegExp('[^' +\n alphabet.get().replace(/[|\\\\{}()[\\]^$+*?.-]/g, '\\\\$&') +\n ']');\n return !nonAlphabetic.test(id);\n}\n\nmodule.exports = isShortId;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar crypto = typeof window === 'object' && (window.crypto || window.msCrypto); // IE 11 uses window.msCrypto\n\nvar randomByte;\n\nif (!crypto || !crypto.getRandomValues) {\n randomByte = function(size) {\n var bytes = [];\n for (var i = 0; i < size; i++) {\n bytes.push(Math.floor(Math.random() * 256));\n }\n return bytes;\n };\n} else {\n randomByte = function(size) {\n return crypto.getRandomValues(new Uint8Array(size));\n };\n}\n\nmodule.exports = randomByte;\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\n// Found this seed-based random generator somewhere\n// Based on The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu)\n\nvar seed = 1;\n\n/**\n * return a random number based on a seed\n * @param seed\n * @returns {number}\n */\nfunction getNextValue() {\n seed = (seed * 9301 + 49297) % 233280;\n return seed/(233280.0);\n}\n\nfunction setSeed(_seed_) {\n seed = _seed_;\n}\n\nmodule.exports = {\n nextValue: getNextValue,\n seed: setSeed\n};\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nmodule.exports = 0;\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports) {\n\n// this module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle\n\nmodule.exports = function normalizeComponent (\n rawScriptExports,\n compiledTemplate,\n scopeId,\n cssModules\n) {\n var esModule\n var scriptExports = rawScriptExports = rawScriptExports || {}\n\n // ES6 modules interop\n var type = typeof rawScriptExports.default\n if (type === 'object' || type === 'function') {\n esModule = rawScriptExports\n scriptExports = rawScriptExports.default\n }\n\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (compiledTemplate) {\n options.render = compiledTemplate.render\n options.staticRenderFns = compiledTemplate.staticRenderFns\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = scopeId\n }\n\n // inject cssModules\n if (cssModules) {\n var computed = Object.create(options.computed || null)\n Object.keys(cssModules).forEach(function (key) {\n var module = cssModules[key]\n computed[key] = function () { return module }\n })\n options.computed = computed\n }\n\n return {\n esModule: esModule,\n exports: scriptExports,\n options: options\n }\n}\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// style-loader: Adds some css to the DOM by adding a