{"version":3,"file":"index.6a1c91f8.js","sources":["../../vite/modulepreload-polyfill","../../assets/js/fontawesome.js","../../assets/js/skip-link-focus-fix.js","../../node_modules/velocity-animate/velocity.es5.js","../../node_modules/emailjs-com/source/models/EmailJSResponseStatus.js","../../node_modules/emailjs-com/source/services/ui/UI.js","../../node_modules/emailjs-com/source/index.js","../../node_modules/sweetalert2/src/utils/utils.js","../../node_modules/sweetalert2/src/utils/params.js","../../node_modules/sweetalert2/src/utils/classes.js","../../node_modules/sweetalert2/src/utils/dom/getters.js","../../node_modules/sweetalert2/src/utils/dom/domUtils.js","../../node_modules/sweetalert2/src/utils/isNodeEnv.js","../../node_modules/sweetalert2/src/constants.js","../../node_modules/sweetalert2/src/globalState.js","../../node_modules/sweetalert2/src/utils/dom/init.js","../../node_modules/sweetalert2/src/utils/dom/parseHtmlToContainer.js","../../node_modules/sweetalert2/src/utils/dom/animationEndEvent.js","../../node_modules/sweetalert2/src/utils/dom/measureScrollbar.js","../../node_modules/sweetalert2/src/utils/dom/renderers/renderActions.js","../../node_modules/sweetalert2/src/utils/dom/renderers/renderContainer.js","../../node_modules/sweetalert2/src/privateProps.js","../../node_modules/sweetalert2/src/utils/dom/renderers/renderInput.js","../../node_modules/sweetalert2/src/utils/dom/renderers/renderContent.js","../../node_modules/sweetalert2/src/utils/dom/renderers/renderFooter.js","../../node_modules/sweetalert2/src/utils/dom/renderers/renderCloseButton.js","../../node_modules/sweetalert2/src/utils/dom/renderers/renderIcon.js","../../node_modules/sweetalert2/src/utils/dom/renderers/renderImage.js","../../node_modules/sweetalert2/src/utils/dom/renderers/renderProgressSteps.js","../../node_modules/sweetalert2/src/utils/dom/renderers/renderTitle.js","../../node_modules/sweetalert2/src/utils/dom/renderers/renderPopup.js","../../node_modules/sweetalert2/src/utils/dom/renderers/render.js","../../node_modules/sweetalert2/src/utils/DismissReason.js","../../node_modules/sweetalert2/src/utils/aria.js","../../node_modules/sweetalert2/src/utils/getTemplateParams.js","../../node_modules/sweetalert2/src/utils/defaultInputValidators.js","../../node_modules/sweetalert2/src/utils/setParameters.js","../../node_modules/sweetalert2/src/utils/Timer.js","../../node_modules/sweetalert2/src/utils/scrollbarFix.js","../../node_modules/sweetalert2/src/utils/iosFix.js","../../node_modules/sweetalert2/src/utils/openPopup.js","../../node_modules/sweetalert2/src/staticMethods/showLoading.js","../../node_modules/sweetalert2/src/utils/dom/inputUtils.js","../../node_modules/sweetalert2/src/instanceMethods/hideLoading.js","../../node_modules/sweetalert2/src/instanceMethods/getInput.js","../../node_modules/sweetalert2/src/privateMethods.js","../../node_modules/sweetalert2/src/staticMethods/dom.js","../../node_modules/sweetalert2/src/keydown-handler.js","../../node_modules/sweetalert2/src/instanceMethods/close.js","../../node_modules/sweetalert2/src/instanceMethods/enable-disable-elements.js","../../node_modules/sweetalert2/src/instanceMethods/validation-message.js","../../node_modules/sweetalert2/src/instanceMethods/progress-steps.js","../../node_modules/sweetalert2/src/instanceMethods/update.js","../../node_modules/sweetalert2/src/instanceMethods/_destroy.js","../../node_modules/sweetalert2/src/buttons-handlers.js","../../node_modules/sweetalert2/src/popup-click-handler.js","../../node_modules/sweetalert2/src/staticMethods/argsToParams.js","../../node_modules/sweetalert2/src/staticMethods/fire.js","../../node_modules/sweetalert2/src/staticMethods/mixin.js","../../node_modules/sweetalert2/src/staticMethods/timer.js","../../node_modules/sweetalert2/src/staticMethods/bindClickHandler.js","../../node_modules/sweetalert2/src/SweetAlert.js","../../node_modules/sweetalert2/src/sweetalert2.js","../../node_modules/aos/dist/aos.js","../../assets/js/scrollTop.js","../../assets/js/preventCopy.js","../../assets/js/pwaupdate.js","../../assets/js/app.js"],"sourcesContent":["const p = function polyfill() {\n const relList = document.createElement('link').relList;\n if (relList && relList.supports && relList.supports('modulepreload')) {\n return;\n }\n for (const link of document.querySelectorAll('link[rel=\"modulepreload\"]')) {\n processPreload(link);\n }\n new MutationObserver((mutations) => {\n for (const mutation of mutations) {\n if (mutation.type !== 'childList') {\n continue;\n }\n for (const node of mutation.addedNodes) {\n if (node.tagName === 'LINK' && node.rel === 'modulepreload')\n processPreload(node);\n }\n }\n }).observe(document, { childList: true, subtree: true });\n function getFetchOpts(script) {\n const fetchOpts = {};\n if (script.integrity)\n fetchOpts.integrity = script.integrity;\n if (script.referrerpolicy)\n fetchOpts.referrerPolicy = script.referrerpolicy;\n if (script.crossorigin === 'use-credentials')\n fetchOpts.credentials = 'include';\n else if (script.crossorigin === 'anonymous')\n fetchOpts.credentials = 'omit';\n else\n fetchOpts.credentials = 'same-origin';\n return fetchOpts;\n }\n function processPreload(link) {\n if (link.ep)\n // ep marker = processed\n return;\n link.ep = true;\n // prepopulate the load record\n const fetchOpts = getFetchOpts(link);\n fetch(link.href, fetchOpts);\n }\n};__VITE_IS_MODERN__&&p();","/*!\n * Font Awesome Pro 5.15.3 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license (Commercial License)\n */\n(function () {\n 'use strict';\n\n var _WINDOW = {};\n var _DOCUMENT = {};\n\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n } catch (e) {}\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e) {\n return false;\n }\n }();\n\n function bunker(fn) {\n try {\n fn();\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n }\n\n var w = WINDOW || {};\n if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w[NAMESPACE_IDENTIFIER];\n\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var icons = {\n \"instagram\": [448, 512, [], \"f16d\", \"M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"],\n \"telegram-plane\": [448, 512, [], \"f3fe\", \"M446.7 98.6l-67.6 318.8c-5.1 22.5-18.4 28.1-37.3 17.5l-103-75.9-49.7 47.8c-5.5 5.5-10.1 10.1-20.7 10.1l7.4-104.9 190.9-172.5c8.3-7.4-1.8-11.5-12.9-4.1L117.8 284 16.2 252.2c-22.1-6.9-22.5-22.1 4.6-32.7L418.2 66.4c18.4-6.9 34.5 4.1 28.5 32.2z\"],\n \"whatsapp\": [448, 512, [], \"f232\", \"M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z\"],\n };\n\n bunker(function () {\n defineIcons('fab', icons);\n });\n\n}());\n(function () {\n 'use strict';\n\n var _WINDOW = {};\n var _DOCUMENT = {};\n\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n } catch (e) {}\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e) {\n return false;\n }\n }();\n\n function bunker(fn) {\n try {\n fn();\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n }\n\n var w = WINDOW || {};\n if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w[NAMESPACE_IDENTIFIER];\n\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var icons = {\n \"comments-alt\": [576, 512, [], \"f4b6\", [\"M352 287.9H162.3L79.5 350a9.7 9.7 0 0 1-15.5-7.8V288a64.06 64.06 0 0 1-64-64V64A64.06 64.06 0 0 1 64 0h288a64.06 64.06 0 0 1 64 64v160a63.91 63.91 0 0 1-64 63.9z\", \"M576 224v160a64.06 64.06 0 0 1-64 64h-32v54.3a9.7 9.7 0 0 1-15.5 7.8L381.7 448H256a64.06 64.06 0 0 1-64-64v-64h160a96.15 96.15 0 0 0 96-96v-64h64a64.06 64.06 0 0 1 64 64z\"]],\n };\n\n bunker(function () {\n defineIcons('fad', icons);\n });\n\n}());\n(function () {\n 'use strict';\n\n var _WINDOW = {};\n var _DOCUMENT = {};\n\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n } catch (e) {}\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e) {\n return false;\n }\n }();\n\n function bunker(fn) {\n try {\n fn();\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n }\n\n var w = WINDOW || {};\n if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w[NAMESPACE_IDENTIFIER];\n\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var icons = {\n \"phone-alt\": [512, 512, [], \"f879\", \"M493.09 351.3L384.7 304.8a31.36 31.36 0 0 0-36.5 8.9l-44.1 53.9A350 350 0 0 1 144.5 208l53.9-44.1a31.35 31.35 0 0 0 8.9-36.49l-46.5-108.5A31.33 31.33 0 0 0 125 .81L24.2 24.11A31.05 31.05 0 0 0 0 54.51C0 307.8 205.3 512 457.49 512A31.23 31.23 0 0 0 488 487.7L511.19 387a31.21 31.21 0 0 0-18.1-35.7zM456.89 480C222.4 479.7 32.3 289.7 32.1 55.21l99.6-23 46 107.39-72.8 59.5C153.3 302.3 209.4 358.6 313 407.2l59.5-72.8 107.39 46z\"],\n };\n\n bunker(function () {\n defineIcons('fal', icons);\n });\n\n}());\n(function () {\n 'use strict';\n\n var _WINDOW = {};\n var _DOCUMENT = {};\n\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n } catch (e) {}\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e) {\n return false;\n }\n }();\n\n function bunker(fn) {\n try {\n fn();\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n }\n\n var w = WINDOW || {};\n if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w[NAMESPACE_IDENTIFIER];\n\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var icons = {\n \"at\": [512, 512, [], \"f1fa\", \"M504 232C504 95.751 394.053 8 256 8 118.94 8 8 118.919 8 256c0 137.059 110.919 248 248 248 52.926 0 104.681-17.079 147.096-48.321 5.501-4.052 6.423-11.924 2.095-17.211l-15.224-18.597c-4.055-4.954-11.249-5.803-16.428-2.041C339.547 442.517 298.238 456 256 456c-110.28 0-200-89.72-200-200S145.72 56 256 56c109.469 0 200 65.02 200 176 0 63.106-42.478 98.29-83.02 98.29-19.505 0-20.133-12.62-16.366-31.463l28.621-148.557c1.426-7.402-4.245-14.27-11.783-14.27h-39.175a12.005 12.005 0 0 0-11.784 9.735c-1.102 5.723-1.661 8.336-2.28 13.993-11.923-19.548-35.878-31.068-65.202-31.068C183.412 128.66 120 191.149 120 281.53c0 61.159 32.877 102.11 93.18 102.11 29.803 0 61.344-16.833 79.749-42.239 4.145 30.846 28.497 38.01 59.372 38.01C451.467 379.41 504 315.786 504 232zm-273.9 97.35c-28.472 0-45.47-19.458-45.47-52.05 0-57.514 39.56-93.41 74.61-93.41 30.12 0 45.471 21.532 45.471 51.58 0 46.864-33.177 93.88-74.611 93.88z\"],\n \"badge-check\": [512, 512, [], \"f336\", \"M332.73 178.37c-3.85-3.88-10.11-3.9-13.98-.06l-87.36 86.66-37.88-38.19c-3.84-3.88-10.11-3.9-13.98-.06l-23.4 23.21c-3.88 3.85-3.9 10.11-.06 13.98l68.05 68.6c3.85 3.88 10.11 3.9 13.98.06l117.78-116.83c3.88-3.85 3.9-10.11.06-13.98l-23.21-23.39zM512 256c0-36.5-18.8-68.4-46.7-86.7 6.8-32.9-2.7-68.7-28.3-94.3-25.6-25.7-61.5-35.1-94.3-28.3C324.2 18.7 292.3 0 256 0s-68.3 18.7-86.7 46.7C136.4 39.9 100.6 49.4 75 75c-25.7 25.6-35.1 61.5-28.3 94.3C18.6 187.8 0 219.8 0 256c0 36.3 18.7 68.3 46.7 86.7-6.8 32.9 2.7 68.7 28.3 94.3 25.6 25.7 61.2 35.1 94.3 28.3 18.5 28.1 50.5 46.7 86.7 46.7 36.4 0 68.3-18.8 86.7-46.7 33.1 6.8 68.7-2.7 94.3-28.3 25.7-25.6 35.1-61.5 28.3-94.3 28.1-18.5 46.7-50.5 46.7-86.7zm-108.3 61.3c9.1 19.9 30.3 54.8-.7 85.8-28 28-55.3 14.5-85.8.7-7.7 20.6-17.3 60.2-61.2 60.2-45.3 0-54.7-42.8-61.2-60.2-21.1 9.6-54.9 30.2-85.9-.8-32-32-8.4-68.9-.7-85.8C87.6 309.5 48 299.9 48 256c0-45.3 42.8-54.7 60.3-61.3-9.1-19.9-30.3-54.8.7-85.8 32-32 68.9-8.4 85.8-.7C202.5 87.6 212.1 48 256 48c45.3 0 54.7 42.8 61.2 60.4 19.9-9.1 54.8-30.3 85.8.7 32 32 8.4 68.9.7 85.8 20.6 7.7 60.2 17.3 60.2 61.2 0 45.3-42.8 54.7-60.2 61.2z\"],\n \"file\": [384, 512, [], \"f15b\", \"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z\"],\n \"home\": [576, 512, [], \"f015\", \"M570.24 247.41L512 199.52V104a8 8 0 0 0-8-8h-32a8 8 0 0 0-7.95 7.88v56.22L323.87 45a56.06 56.06 0 0 0-71.74 0L5.76 247.41a16 16 0 0 0-2 22.54L14 282.25a16 16 0 0 0 22.53 2L64 261.69V448a32.09 32.09 0 0 0 32 32h128a32.09 32.09 0 0 0 32-32V344h64v104a32.09 32.09 0 0 0 32 32h128a32.07 32.07 0 0 0 32-31.76V261.67l27.53 22.62a16 16 0 0 0 22.53-2L572.29 270a16 16 0 0 0-2.05-22.59zM463.85 432H368V328a32.09 32.09 0 0 0-32-32h-96a32.09 32.09 0 0 0-32 32v104h-96V222.27L288 77.65l176 144.56z\"],\n \"phone-alt\": [512, 512, [], \"f879\", \"M484.25 330l-101.59-43.55a45.86 45.86 0 0 0-53.39 13.1l-32.7 40a311.08 311.08 0 0 1-124.19-124.12l40-32.7a45.91 45.91 0 0 0 13.1-53.42L182 27.79a45.63 45.63 0 0 0-52.31-26.61L35.5 22.89A45.59 45.59 0 0 0 0 67.5C0 313.76 199.68 512.1 444.56 512a45.58 45.58 0 0 0 44.59-35.51l21.7-94.22a45.75 45.75 0 0 0-26.6-52.27zm-41.59 134.09C225.08 463.09 49 287 48 69.3l90.69-20.9 42.09 98.22-68.09 55.71c46.39 99 98.19 150.63 197 197l55.69-68.11 98.19 42.11z\"],\n \"phone-rotary\": [512, 512, [], \"f8d3\", \"M370.43 192.25A64 64 0 0 0 314.86 160H197.14a64 64 0 0 0-55.57 32.25L36.22 376.62A32 32 0 0 0 32 392.5V448a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32v-55.5a32 32 0 0 0-4.22-15.88zM432 432H80v-35.25l103.25-180.69a16 16 0 0 1 13.89-8.06h117.72a16 16 0 0 1 13.89 8.06L432 396.75zM256 256a64 64 0 1 0 64 64 64 64 0 0 0-64-64zm250.18-133C436.76 65 347.38 32 256 32S75.24 65 5.82 123A16.45 16.45 0 0 0 0 135.64V192a16 16 0 0 0 16 16h70.11a16 16 0 0 0 14.31-8.85L128 128c39.9-17.28 83.2-24 128-24 44.77 0 88.07 6.72 128 24l27.58 71.15a16 16 0 0 0 14.31 8.85H496a16 16 0 0 0 16-16v-56.36a16.45 16.45 0 0 0-5.82-12.64z\"],\n };\n\n bunker(function () {\n defineIcons('far', icons);\n });\n\n}());\n(function () {\n 'use strict';\n\n var _WINDOW = {};\n var _DOCUMENT = {};\n\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n } catch (e) {}\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e) {\n return false;\n }\n }();\n\n function bunker(fn) {\n try {\n fn();\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n }\n\n var w = WINDOW || {};\n if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w[NAMESPACE_IDENTIFIER];\n\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var icons = {\n \"chevron-double-up\": [448, 512, [], \"f325\", \"M241 34.5l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9l-22.7 22.7c-9.4 9.4-24.5 9.4-33.9 0L224 131.5l-154.7 154c-9.4 9.3-24.5 9.3-33.9 0l-22.7-22.7c-9.4-9.4-9.4-24.6 0-33.9L207 34.5c9.4-9.3 24.6-9.3 34 0zm-34 192L12.7 420.9c-9.4 9.4-9.4 24.6 0 33.9l22.7 22.7c9.4 9.4 24.5 9.4 33.9 0l154.7-154 154.7 154c9.4 9.3 24.5 9.3 33.9 0l22.7-22.7c9.4-9.4 9.4-24.6 0-33.9L241 226.5c-9.4-9.3-24.6-9.3-34 0z\"],\n };\n\n bunker(function () {\n defineIcons('fas', icons);\n });\n\n}());\n(function () {\n 'use strict';\n\n function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n\n var noop = function noop() {};\n\n var _WINDOW = {};\n var _DOCUMENT = {};\n var _MUTATION_OBSERVER = null;\n var _PERFORMANCE = {\n mark: noop,\n measure: noop\n };\n\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n } catch (e) {}\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var MUTATION_OBSERVER = _MUTATION_OBSERVER;\n var PERFORMANCE = _PERFORMANCE;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var UNITS_IN_GRID = 16;\n var DEFAULT_FAMILY_PREFIX = 'fa';\n var DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\n var DATA_FA_I2SVG = 'data-fa-i2svg';\n var DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\n var DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\n var DATA_PREFIX = 'data-prefix';\n var DATA_ICON = 'data-icon';\n var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\n var MUTATION_APPROACH_ASYNC = 'async';\n var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e) {\n return false;\n }\n }();\n var PREFIX_TO_STYLE = {\n 'fas': 'solid',\n 'far': 'regular',\n 'fal': 'light',\n 'fad': 'duotone',\n 'fab': 'brands',\n 'fak': 'kit',\n 'fa': 'solid'\n };\n var STYLE_TO_PREFIX = {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n };\n var LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\n var FONT_FAMILY_PATTERN = /Font Awesome ([5 ]*)(Solid|Regular|Light|Duotone|Brands|Free|Pro|Kit).*/; // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\n var FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal'\n };\n var oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\n var oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\n var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\n var DUOTONE_CLASSES = {\n GROUP: 'group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n };\n var RESERVED_CLASSES = ['xs', 'sm', 'lg', 'fw', 'ul', 'li', 'border', 'pull-left', 'pull-right', 'spin', 'pulse', 'rotate-90', 'rotate-180', 'rotate-270', 'flip-horizontal', 'flip-vertical', 'flip-both', 'stack', 'stack-1x', 'stack-2x', 'inverse', 'layers', 'layers-text', 'layers-counter', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY].concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n })).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n }));\n\n var initial = WINDOW.FontAwesomeConfig || {};\n\n function getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n }\n\n function coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n // For example \n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n }\n\n if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n }\n\n var _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n };\n\n var _config = _objectSpread({}, _default, initial);\n\n if (!_config.autoReplaceSvg) _config.observeMutations = false;\n\n var config = _objectSpread({}, _config);\n\n WINDOW.FontAwesomeConfig = config;\n\n var w = WINDOW || {};\n if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w[NAMESPACE_IDENTIFIER];\n\n var functions = [];\n\n var listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n };\n\n var loaded = false;\n\n if (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n }\n\n function domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n }\n\n var PENDING = 'pending';\n var SETTLED = 'settled';\n var FULFILLED = 'fulfilled';\n var REJECTED = 'rejected';\n\n var NOOP = function NOOP() {};\n\n var isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\n var asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\n var asyncQueue = [];\n var asyncTimer;\n\n function asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n }\n\n function asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n }\n\n function invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n }\n\n function invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n }\n\n function handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n }\n\n function resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n }\n\n function fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n }\n\n function reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n }\n\n function publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n }\n\n function publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n }\n\n function publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n }\n\n function notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n }\n /**\n * @class\n */\n\n\n function P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n }\n\n P.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n };\n\n P.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n };\n\n P.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n };\n\n P.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n };\n\n P.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n };\n\n var picked = typeof Promise === 'function' ? Promise : P;\n\n var d = UNITS_IN_GRID;\n var meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n };\n\n function isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n }\n\n function bunker(fn) {\n try {\n fn();\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n function insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n }\n var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n function nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n }\n function toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n }\n function classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n }\n function getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n }\n function htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n }\n function joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n }\n function joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n }\n function transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n }\n function transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n }\n function transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n }\n\n var ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n };\n\n function fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n }\n\n function deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n }\n\n function makeIconMasking (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n }\n\n function makeIconStandard (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n }\n\n function asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n }\n\n function asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n }\n\n function makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n }\n function makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n }\n function makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n }\n\n var noop$1 = function noop() {};\n\n var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n };\n var preamble = \"FA \\\"5.15.3\\\"\";\n\n var begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n };\n\n var end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n };\n\n var perf = {\n begin: begin,\n end: end\n };\n\n /**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\n var bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n };\n\n /**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\n var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n };\n\n function toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n }\n\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var styles = namespace.styles,\n shims = namespace.shims;\n var _byUnicode = {};\n var _byLigature = {};\n var _byOldName = {};\n var build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = 'far' in styles;\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n };\n build();\n function byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n }\n function byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n }\n function byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n }\n\n var styles$1 = namespace.styles;\n var emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n };\n function getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n }\n function iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n }\n\n function toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n }\n\n var noop$2 = function noop() {};\n\n function isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n }\n\n function getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n }\n\n var mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n };\n\n function performOperationSync(op) {\n op();\n }\n\n function perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n }\n var disabled = false;\n function disableObservation() {\n disabled = true;\n }\n function enableObservation() {\n disabled = false;\n }\n var mo = null;\n function observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n }\n function disconnect() {\n if (!mo) return;\n mo.disconnect();\n }\n\n function styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n }\n\n function classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n }\n\n var parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n };\n function transformParser (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n }\n\n function symbolParser (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n }\n\n function attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n }\n\n function maskParser (node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n }\n\n function blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n }\n function parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n }\n\n function MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n }\n MissingIcon.prototype = Object.create(Error.prototype);\n MissingIcon.prototype.constructor = MissingIcon;\n\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n };\n var RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n };\n\n var OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n });\n\n var DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n };\n var QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n };\n var EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n };\n var missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n };\n\n var styles$2 = namespace.styles;\n function asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n }\n function findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n }\n\n var styles$3 = namespace.styles;\n\n function generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n }\n\n function generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n }\n\n function generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n }\n\n function onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n }\n function onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n }\n\n function replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n }\n\n function replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n }\n\n function processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n }\n\n function searchPseudoElements (root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n }\n\n var baseStyles = \"svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:solid .08em #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff}\";\n\n function css () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n }\n\n var Library =\n /*#__PURE__*/\n function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n }();\n\n function ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n }\n\n function apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n }\n\n function findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n }\n\n function resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n }\n\n var library = new Library();\n var noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n };\n var _cssInserted = false;\n var dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n };\n var parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n };\n var icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n });\n var text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n };\n var counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n };\n var layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n };\n var api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n };\n\n var autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n };\n\n function bootstrap() {\n if (IS_BROWSER) {\n if (!WINDOW.FontAwesome) {\n WINDOW.FontAwesome = api;\n }\n\n domready(function () {\n autoReplace();\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements\n });\n });\n }\n\n namespace.hooks = _objectSpread({}, namespace.hooks, {\n addPack: function addPack(prefix, icons) {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, icons);\n build();\n autoReplace();\n },\n addShims: function addShims(shims) {\n var _namespace$shims;\n\n (_namespace$shims = namespace.shims).push.apply(_namespace$shims, _toConsumableArray(shims));\n\n build();\n autoReplace();\n }\n });\n }\n\n bunker(bootstrap);\n\n}());\n","/**\n * File skip-link-focus-fix.js.\n *\n * Helps with accessibility for keyboard only users.\n *\n * Learn more: https://git.io/vWdr2\n */\n(function() {\n\tvar isIe = /(trident|msie)/i.test( navigator.userAgent );\n\n\tif ( isIe && document.getElementById && window.addEventListener ) {\n\t\twindow.addEventListener( 'hashchange', function() {\n\t\t\tvar id = location.hash.substring( 1 ),\n\t\t\t\telement;\n\n\t\t\tif ( ! ( /^[A-z0-9_-]+$/.test( id ) ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\telement = document.getElementById( id );\n\n\t\t\tif ( element ) {\n\t\t\t\tif ( ! ( /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) ) {\n\t\t\t\t\telement.tabIndex = -1;\n\t\t\t\t}\n\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t}, false );\n\t}\n})();\n","/**\n * velocity-animate (C) 2014-2017 Julian Shapiro.\n *\n * Licensed under the MIT license. See LICENSE file in the project root for details.\n */\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\n/**\r\n * Check if a variable is a boolean.\r\n */\nfunction isBoolean(variable) {\n return variable === true || variable === false;\n}\n/**\r\n * Check if a variable is a function.\r\n */\nfunction isFunction(variable) {\n return Object.prototype.toString.call(variable) === \"[object Function]\";\n}\n/**\r\n * Check if a variable is an HTMLElement or SVGElement.\r\n */\nfunction isNode(variable) {\n return !!(variable && variable.nodeType);\n}\n/**\r\n * Check if a variable is a number.\r\n */\nfunction isNumber(variable) {\n return typeof variable === \"number\";\n}\n/**\r\n * Check if a variable is a plain object (and not an instance).\r\n */\nfunction isPlainObject(variable) {\n if (!variable || (typeof variable === \"undefined\" ? \"undefined\" : _typeof(variable)) !== \"object\" || variable.nodeType || Object.prototype.toString.call(variable) !== \"[object Object]\") {\n return false;\n }\n var proto = Object.getPrototypeOf(variable);\n return !proto || proto.hasOwnProperty(\"constructor\") && proto.constructor === Object;\n}\n/**\r\n * Check if a variable is a string.\r\n */\nfunction isString(variable) {\n return typeof variable === \"string\";\n}\n/**\r\n * Check if a variable is the result of calling Velocity.\r\n */\nfunction isVelocityResult(variable) {\n return variable && isNumber(variable.length) && isFunction(variable.velocity);\n}\n/**\r\n * Check if a variable is an array-like wrapped jQuery, Zepto or similar, where\r\n * each indexed value is a Node.\r\n */\nfunction isWrapped(variable) {\n return variable && variable !== window && isNumber(variable.length) && !isString(variable) && !isFunction(variable) && !isNode(variable) && (variable.length === 0 || isNode(variable[0]));\n}\n/**\r\n * Check is a property is an enumerable member of an object.\r\n */\nfunction propertyIsEnumerable(obj, property) {\n return Object.prototype.propertyIsEnumerable.call(obj, property);\n}\n\n// Project\n/**\r\n * Add a single className to an Element.\r\n */\nfunction addClass(element, className) {\n if (element instanceof Element) {\n if (element.classList) {\n element.classList.add(className);\n } else {\n removeClass(element, className);\n element.className += (element.className.length ? \" \" : \"\") + className;\n }\n }\n}\n/**\r\n * Clone an array, works for array-like too.\r\n */\nfunction cloneArray(arrayLike) {\n return Array.prototype.slice.call(arrayLike, 0);\n}\n/**\r\n * The defineProperty() function provides a\r\n * shortcut to defining a property that cannot be accidentally iterated across.\r\n */\nfunction defineProperty$1(proto, name, value, readonly) {\n if (proto) {\n Object.defineProperty(proto, name, {\n configurable: !readonly,\n writable: !readonly,\n value: value\n });\n }\n}\n/**\r\n * When there are multiple locations for a value pass them all in, then get the\r\n * first value that is valid.\r\n */\nfunction getValue() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = args[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var arg = _step.value;\n\n if (arg !== undefined && arg === arg) {\n return arg;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\n/**\r\n * Shim to get the current milliseconds - on anything except old IE it'll use\r\n * Date.now() and save creating an object. If that doesn't exist then it'll\r\n * create one that gets GC.\r\n */\nvar now = Date.now ? Date.now : function () {\n return new Date().getTime();\n};\n/**\r\n * Remove a single className from an Element.\r\n */\nfunction removeClass(element, className) {\n if (element instanceof Element) {\n if (element.classList) {\n element.classList.remove(className);\n } else {\n // TODO: Need some jsperf tests on performance - can we get rid of the regex and maybe use split / array manipulation?\n element.className = element.className.replace(new RegExp(\"(^|\\\\s)\" + className + \"(\\\\s|$)\", \"gi\"), \" \");\n }\n }\n}\n\n// Project\n// Constants\nvar Actions = {};\n/**\r\n * Used to register an action. This should never be called by users\r\n * directly, instead it should be called via an action:
\r\n * Velocity(\"registerAction\", \"name\", VelocityActionFn);\r\n */\nfunction registerAction(args, internal) {\n var name = args[0],\n callback = args[1];\n if (!isString(name)) {\n console.warn(\"VelocityJS: Trying to set 'registerAction' name to an invalid value:\", name);\n } else if (!isFunction(callback)) {\n console.warn(\"VelocityJS: Trying to set 'registerAction' callback to an invalid value:\", name, callback);\n } else if (Actions[name] && !propertyIsEnumerable(Actions, name)) {\n console.warn(\"VelocityJS: Trying to override internal 'registerAction' callback\", name);\n } else if (internal === true) {\n defineProperty$1(Actions, name, callback);\n } else {\n Actions[name] = callback;\n }\n}\nregisterAction([\"registerAction\", registerAction], true);\n\n/**\r\n * Without this it will only un-prefix properties that have a valid \"normal\"\r\n * version.\r\n */\nvar DURATION_FAST = 200;\nvar DURATION_NORMAL = 400;\nvar DURATION_SLOW = 600;\nvar FUZZY_MS_PER_SECOND = 980;\nvar DEFAULT_CACHE = true;\nvar DEFAULT_DELAY = 0;\nvar DEFAULT_DURATION = DURATION_NORMAL;\nvar DEFAULT_EASING = \"swing\";\nvar DEFAULT_FPSLIMIT = 60;\nvar DEFAULT_LOOP = 0;\nvar DEFAULT_PROMISE = true;\nvar DEFAULT_PROMISE_REJECT_EMPTY = true;\nvar DEFAULT_QUEUE = \"\";\nvar DEFAULT_REPEAT = 0;\nvar DEFAULT_SPEED = 1;\nvar DEFAULT_SYNC = true;\nvar CLASSNAME = \"velocity-animating\";\nvar Duration = {\n fast: DURATION_FAST,\n normal: DURATION_NORMAL,\n slow: DURATION_SLOW\n};\n\n// Project\n// Constants\nvar Easings = {};\n/**\r\n * Used to register a easing. This should never be called by users\r\n * directly, instead it should be called via an action:
\r\n * Velocity(\"registerEasing\", \"name\", VelocityEasingFn);\r\n */\nfunction registerEasing(args) {\n var name = args[0],\n callback = args[1];\n if (!isString(name)) {\n console.warn(\"VelocityJS: Trying to set 'registerEasing' name to an invalid value:\", name);\n } else if (!isFunction(callback)) {\n console.warn(\"VelocityJS: Trying to set 'registerEasing' callback to an invalid value:\", name, callback);\n } else if (Easings[name]) {\n console.warn(\"VelocityJS: Trying to override 'registerEasing' callback\", name);\n } else {\n Easings[name] = callback;\n }\n}\nregisterAction([\"registerEasing\", registerEasing], true);\n/**\r\n * Linear easing, used for sequence parts that don't have an actual easing\r\n * function.\r\n */\nfunction linearEasing(percentComplete, startValue, endValue, property) {\n return startValue + percentComplete * (endValue - startValue);\n}\n/**\r\n * Swing is the default for jQuery and Velocity.\r\n */\nfunction swingEasing(percentComplete, startValue, endValue) {\n return startValue + (0.5 - Math.cos(percentComplete * Math.PI) / 2) * (endValue - startValue);\n}\n/**\r\n * A less exaggerated version of easeInOutElastic.\r\n */\nfunction springEasing(percentComplete, startValue, endValue) {\n return startValue + (1 - Math.cos(percentComplete * 4.5 * Math.PI) * Math.exp(-percentComplete * 6)) * (endValue - startValue);\n}\nregisterEasing([\"linear\", linearEasing]);\nregisterEasing([\"swing\", swingEasing]);\nregisterEasing([\"spring\", springEasing]);\n\n// Project\n/**\r\n * Fix to a range of 0 <= num <= 1.\r\n */\nfunction fixRange(num) {\n return Math.min(Math.max(num, 0), 1);\n}\nfunction A(aA1, aA2) {\n return 1 - 3 * aA2 + 3 * aA1;\n}\nfunction B(aA1, aA2) {\n return 3 * aA2 - 6 * aA1;\n}\nfunction C(aA1) {\n return 3 * aA1;\n}\nfunction calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n}\nfunction getSlope(aT, aA1, aA2) {\n return 3 * A(aA1, aA2) * aT * aT + 2 * B(aA1, aA2) * aT + C(aA1);\n}\nfunction generateBezier() {\n var NEWTON_ITERATIONS = 4,\n NEWTON_MIN_SLOPE = 0.001,\n SUBDIVISION_PRECISION = 0.0000001,\n SUBDIVISION_MAX_ITERATIONS = 10,\n kSplineTableSize = 11,\n kSampleStepSize = 1 / (kSplineTableSize - 1),\n float32ArraySupported = \"Float32Array\" in window;\n /* Must contain four args. */\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length !== 4) {\n return;\n }\n /* Args must be numbers. */\n for (var i = 0; i < 4; ++i) {\n if (typeof args[i] !== \"number\" || isNaN(args[i]) || !isFinite(args[i])) {\n return;\n }\n }\n /* X values must be in the [0, 1] range. */\n var mX1 = fixRange(args[0]);\n var mY1 = args[1];\n var mX2 = fixRange(args[2]);\n var mY2 = args[3];\n var mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n function newtonRaphsonIterate(aX, aGuessT) {\n for (var _i = 0; _i < NEWTON_ITERATIONS; ++_i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n function calcSampleValues() {\n for (var _i2 = 0; _i2 < kSplineTableSize; ++_i2) {\n mSampleValues[_i2] = calcBezier(_i2 * kSampleStepSize, mX1, mX2);\n }\n }\n function binarySubdivide(aX, aA, aB) {\n var currentX = void 0,\n currentT = void 0,\n i = 0;\n do {\n currentT = aA + (aB - aA) / 2;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n }\n function getTForX(aX) {\n var lastSample = kSplineTableSize - 1;\n var intervalStart = 0,\n currentSample = 1;\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]),\n guessForT = intervalStart + dist * kSampleStepSize,\n initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT);\n } else if (initialSlope === 0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize);\n }\n }\n var precomputed = false;\n function precompute() {\n precomputed = true;\n if (mX1 !== mY1 || mX2 !== mY2) {\n calcSampleValues();\n }\n }\n var str = \"generateBezier(\" + [mX1, mY1, mX2, mY2] + \")\",\n f = function f(percentComplete, startValue, endValue, property) {\n if (!precomputed) {\n precompute();\n }\n if (percentComplete === 0) {\n return startValue;\n }\n if (percentComplete === 1) {\n return endValue;\n }\n if (mX1 === mY1 && mX2 === mY2) {\n return startValue + percentComplete * (endValue - startValue);\n }\n return startValue + calcBezier(getTForX(percentComplete), mY1, mY2) * (endValue - startValue);\n };\n f.getControlPoints = function () {\n return [{ x: mX1, y: mY1 }, { x: mX2, y: mY2 }];\n };\n f.toString = function () {\n return str;\n };\n return f;\n}\n/* Common easings */\nvar easeIn = generateBezier(0.42, 0, 1, 1),\n easeOut = generateBezier(0, 0, 0.58, 1),\n easeInOut = generateBezier(0.42, 0, 0.58, 1);\nregisterEasing([\"ease\", generateBezier(0.25, 0.1, 0.25, 1)]);\nregisterEasing([\"easeIn\", easeIn]);\nregisterEasing([\"ease-in\", easeIn]);\nregisterEasing([\"easeOut\", easeOut]);\nregisterEasing([\"ease-out\", easeOut]);\nregisterEasing([\"easeInOut\", easeInOut]);\nregisterEasing([\"ease-in-out\", easeInOut]);\nregisterEasing([\"easeInSine\", generateBezier(0.47, 0, 0.745, 0.715)]);\nregisterEasing([\"easeOutSine\", generateBezier(0.39, 0.575, 0.565, 1)]);\nregisterEasing([\"easeInOutSine\", generateBezier(0.445, 0.05, 0.55, 0.95)]);\nregisterEasing([\"easeInQuad\", generateBezier(0.55, 0.085, 0.68, 0.53)]);\nregisterEasing([\"easeOutQuad\", generateBezier(0.25, 0.46, 0.45, 0.94)]);\nregisterEasing([\"easeInOutQuad\", generateBezier(0.455, 0.03, 0.515, 0.955)]);\nregisterEasing([\"easeInCubic\", generateBezier(0.55, 0.055, 0.675, 0.19)]);\nregisterEasing([\"easeOutCubic\", generateBezier(0.215, 0.61, 0.355, 1)]);\nregisterEasing([\"easeInOutCubic\", generateBezier(0.645, 0.045, 0.355, 1)]);\nregisterEasing([\"easeInQuart\", generateBezier(0.895, 0.03, 0.685, 0.22)]);\nregisterEasing([\"easeOutQuart\", generateBezier(0.165, 0.84, 0.44, 1)]);\nregisterEasing([\"easeInOutQuart\", generateBezier(0.77, 0, 0.175, 1)]);\nregisterEasing([\"easeInQuint\", generateBezier(0.755, 0.05, 0.855, 0.06)]);\nregisterEasing([\"easeOutQuint\", generateBezier(0.23, 1, 0.32, 1)]);\nregisterEasing([\"easeInOutQuint\", generateBezier(0.86, 0, 0.07, 1)]);\nregisterEasing([\"easeInExpo\", generateBezier(0.95, 0.05, 0.795, 0.035)]);\nregisterEasing([\"easeOutExpo\", generateBezier(0.19, 1, 0.22, 1)]);\nregisterEasing([\"easeInOutExpo\", generateBezier(1, 0, 0, 1)]);\nregisterEasing([\"easeInCirc\", generateBezier(0.6, 0.04, 0.98, 0.335)]);\nregisterEasing([\"easeOutCirc\", generateBezier(0.075, 0.82, 0.165, 1)]);\nregisterEasing([\"easeInOutCirc\", generateBezier(0.785, 0.135, 0.15, 0.86)]);\n\n/* Runge-Kutta spring physics function generator. Adapted from Framer.js, copyright Koen Bok. MIT License: http://en.wikipedia.org/wiki/MIT_License */\n/* Given a tension, friction, and duration, a simulation at 60FPS will first run without a defined duration in order to calculate the full path. A second pass\r\n then adjusts the time delta -- using the relation between actual time and duration -- to calculate the path for the duration-constrained animation. */\nfunction springAccelerationForState(state) {\n return -state.tension * state.x - state.friction * state.v;\n}\nfunction springEvaluateStateWithDerivative(initialState, dt, derivative) {\n var state = {\n x: initialState.x + derivative.dx * dt,\n v: initialState.v + derivative.dv * dt,\n tension: initialState.tension,\n friction: initialState.friction\n };\n return {\n dx: state.v,\n dv: springAccelerationForState(state)\n };\n}\nfunction springIntegrateState(state, dt) {\n var a = {\n dx: state.v,\n dv: springAccelerationForState(state)\n },\n b = springEvaluateStateWithDerivative(state, dt * 0.5, a),\n c = springEvaluateStateWithDerivative(state, dt * 0.5, b),\n d = springEvaluateStateWithDerivative(state, dt, c),\n dxdt = 1 / 6 * (a.dx + 2 * (b.dx + c.dx) + d.dx),\n dvdt = 1 / 6 * (a.dv + 2 * (b.dv + c.dv) + d.dv);\n state.x = state.x + dxdt * dt;\n state.v = state.v + dvdt * dt;\n return state;\n}\nfunction generateSpringRK4(tension, friction, duration) {\n var initState = {\n x: -1,\n v: 0,\n tension: parseFloat(tension) || 500,\n friction: parseFloat(friction) || 20\n },\n path = [0],\n tolerance = 1 / 10000,\n DT = 16 / 1000,\n haveDuration = duration != null; // deliberate \"==\", as undefined == null != 0\n var timeLapsed = 0,\n dt = void 0,\n lastState = void 0;\n /* Calculate the actual time it takes for this animation to complete with the provided conditions. */\n if (haveDuration) {\n /* Run the simulation without a duration. */\n timeLapsed = generateSpringRK4(initState.tension, initState.friction);\n /* Compute the adjusted time delta. */\n dt = timeLapsed / duration * DT;\n } else {\n dt = DT;\n }\n while (true) {\n /* Next/step function .*/\n lastState = springIntegrateState(lastState || initState, dt);\n /* Store the position. */\n path.push(1 + lastState.x);\n timeLapsed += 16;\n /* If the change threshold is reached, break. */\n if (!(Math.abs(lastState.x) > tolerance && Math.abs(lastState.v) > tolerance)) {\n break;\n }\n }\n /* If duration is not defined, return the actual time required for completing this animation. Otherwise, return a closure that holds the\r\n computed path and returns a snapshot of the position according to a given percentComplete. */\n return !haveDuration ? timeLapsed : function (percentComplete, startValue, endValue) {\n if (percentComplete === 0) {\n return startValue;\n }\n if (percentComplete === 1) {\n return endValue;\n }\n return startValue + path[Math.floor(percentComplete * (path.length - 1))] * (endValue - startValue);\n };\n}\n\n// Constants\nvar cache = {};\nfunction generateStep(steps) {\n var fn = cache[steps];\n if (fn) {\n return fn;\n }\n return cache[steps] = function (percentComplete, startValue, endValue) {\n if (percentComplete === 0) {\n return startValue;\n }\n if (percentComplete === 1) {\n return endValue;\n }\n return startValue + Math.round(percentComplete * steps) * (1 / steps) * (endValue - startValue);\n };\n}\n\n// Project\n/**\r\n * Parse a duration value and return an ms number. Optionally return a\r\n * default value if the number is not valid.\r\n */\nfunction parseDuration(duration, def) {\n if (isNumber(duration)) {\n return duration;\n }\n if (isString(duration)) {\n return Duration[duration.toLowerCase()] || parseFloat(duration.replace(\"ms\", \"\").replace(\"s\", \"000\"));\n }\n return def == null ? undefined : parseDuration(def);\n}\n/**\r\n * Validate a cache option.\r\n */\nfunction validateCache(value) {\n if (isBoolean(value)) {\n return value;\n }\n if (value != null) {\n console.warn(\"VelocityJS: Trying to set 'cache' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a begin option.\r\n */\nfunction validateBegin(value) {\n if (isFunction(value)) {\n return value;\n }\n if (value != null) {\n console.warn(\"VelocityJS: Trying to set 'begin' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a complete option.\r\n */\nfunction validateComplete(value, noError) {\n if (isFunction(value)) {\n return value;\n }\n if (value != null && !noError) {\n console.warn(\"VelocityJS: Trying to set 'complete' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a delay option.\r\n */\nfunction validateDelay(value) {\n var parsed = parseDuration(value);\n if (!isNaN(parsed)) {\n return parsed;\n }\n if (value != null) {\n console.error(\"VelocityJS: Trying to set 'delay' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a duration option.\r\n */\nfunction validateDuration(value, noError) {\n var parsed = parseDuration(value);\n if (!isNaN(parsed) && parsed >= 0) {\n return parsed;\n }\n if (value != null && !noError) {\n console.error(\"VelocityJS: Trying to set 'duration' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a easing option.\r\n */\nfunction validateEasing(value, duration, noError) {\n if (isString(value)) {\n // Named easing\n return Easings[value];\n }\n if (isFunction(value)) {\n return value;\n }\n // TODO: We should only do these if the correct function exists - don't force loading.\n if (Array.isArray(value)) {\n if (value.length === 1) {\n // Steps\n return generateStep(value[0]);\n }\n if (value.length === 2) {\n // springRK4 must be passed the animation's duration.\n // Note: If the springRK4 array contains non-numbers,\n // generateSpringRK4() returns an easing function generated with\n // default tension and friction values.\n return generateSpringRK4(value[0], value[1], duration);\n }\n if (value.length === 4) {\n // Note: If the bezier array contains non-numbers, generateBezier()\n // returns undefined.\n return generateBezier.apply(null, value) || false;\n }\n }\n if (value != null && !noError) {\n console.error(\"VelocityJS: Trying to set 'easing' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a fpsLimit option.\r\n */\nfunction validateFpsLimit(value) {\n if (value === false) {\n return 0;\n } else {\n var parsed = parseInt(value, 10);\n if (!isNaN(parsed) && parsed >= 0) {\n return Math.min(parsed, 60);\n }\n }\n if (value != null) {\n console.warn(\"VelocityJS: Trying to set 'fpsLimit' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a loop option.\r\n */\nfunction validateLoop(value) {\n switch (value) {\n case false:\n return 0;\n case true:\n return true;\n default:\n var parsed = parseInt(value, 10);\n if (!isNaN(parsed) && parsed >= 0) {\n return parsed;\n }\n break;\n }\n if (value != null) {\n console.warn(\"VelocityJS: Trying to set 'loop' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a progress option.\r\n */\nfunction validateProgress(value) {\n if (isFunction(value)) {\n return value;\n }\n if (value != null) {\n console.warn(\"VelocityJS: Trying to set 'progress' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a promise option.\r\n */\nfunction validatePromise(value) {\n if (isBoolean(value)) {\n return value;\n }\n if (value != null) {\n console.warn(\"VelocityJS: Trying to set 'promise' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a promiseRejectEmpty option.\r\n */\nfunction validatePromiseRejectEmpty(value) {\n if (isBoolean(value)) {\n return value;\n }\n if (value != null) {\n console.warn(\"VelocityJS: Trying to set 'promiseRejectEmpty' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a queue option.\r\n */\nfunction validateQueue(value, noError) {\n if (value === false || isString(value)) {\n return value;\n }\n if (value != null && !noError) {\n console.warn(\"VelocityJS: Trying to set 'queue' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a repeat option.\r\n */\nfunction validateRepeat(value) {\n switch (value) {\n case false:\n return 0;\n case true:\n return true;\n default:\n var parsed = parseInt(value, 10);\n if (!isNaN(parsed) && parsed >= 0) {\n return parsed;\n }\n break;\n }\n if (value != null) {\n console.warn(\"VelocityJS: Trying to set 'repeat' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a speed option.\r\n */\nfunction validateSpeed(value) {\n if (isNumber(value)) {\n return value;\n }\n if (value != null) {\n console.error(\"VelocityJS: Trying to set 'speed' to an invalid value:\", value);\n }\n}\n/**\r\n * Validate a sync option.\r\n */\nfunction validateSync(value) {\n if (isBoolean(value)) {\n return value;\n }\n if (value != null) {\n console.error(\"VelocityJS: Trying to set 'sync' to an invalid value:\", value);\n }\n}\n\n// Project\n// NOTE: Add the variable here, then add the default state in \"reset\" below.\nvar cache$1 = void 0,\n begin = void 0,\n complete = void 0,\n delay = void 0,\n duration = void 0,\n easing = void 0,\n fpsLimit = void 0,\n loop = void 0,\n mobileHA = void 0,\n minFrameTime = void 0,\n promise = void 0,\n promiseRejectEmpty = void 0,\n queue = void 0,\n repeat = void 0,\n speed = void 0,\n sync = void 0;\nvar defaults$1 = function () {\n function defaults$$1() {\n classCallCheck(this, defaults$$1);\n }\n\n createClass(defaults$$1, null, [{\n key: \"reset\",\n value: function reset() {\n cache$1 = DEFAULT_CACHE;\n begin = undefined;\n complete = undefined;\n delay = DEFAULT_DELAY;\n duration = DEFAULT_DURATION;\n easing = validateEasing(DEFAULT_EASING, DEFAULT_DURATION);\n fpsLimit = DEFAULT_FPSLIMIT;\n loop = DEFAULT_LOOP;\n minFrameTime = FUZZY_MS_PER_SECOND / DEFAULT_FPSLIMIT;\n promise = DEFAULT_PROMISE;\n promiseRejectEmpty = DEFAULT_PROMISE_REJECT_EMPTY;\n queue = DEFAULT_QUEUE;\n repeat = DEFAULT_REPEAT;\n speed = DEFAULT_SPEED;\n sync = DEFAULT_SYNC;\n }\n }, {\n key: \"cache\",\n get: function get$$1() {\n return cache$1;\n },\n set: function set$$1(value) {\n value = validateCache(value);\n if (value !== undefined) {\n cache$1 = value;\n }\n }\n }, {\n key: \"begin\",\n get: function get$$1() {\n return begin;\n },\n set: function set$$1(value) {\n value = validateBegin(value);\n if (value !== undefined) {\n begin = value;\n }\n }\n }, {\n key: \"complete\",\n get: function get$$1() {\n return complete;\n },\n set: function set$$1(value) {\n value = validateComplete(value);\n if (value !== undefined) {\n complete = value;\n }\n }\n }, {\n key: \"delay\",\n get: function get$$1() {\n return delay;\n },\n set: function set$$1(value) {\n value = validateDelay(value);\n if (value !== undefined) {\n delay = value;\n }\n }\n }, {\n key: \"duration\",\n get: function get$$1() {\n return duration;\n },\n set: function set$$1(value) {\n value = validateDuration(value);\n if (value !== undefined) {\n duration = value;\n }\n }\n }, {\n key: \"easing\",\n get: function get$$1() {\n return easing;\n },\n set: function set$$1(value) {\n value = validateEasing(value, duration);\n if (value !== undefined) {\n easing = value;\n }\n }\n }, {\n key: \"fpsLimit\",\n get: function get$$1() {\n return fpsLimit;\n },\n set: function set$$1(value) {\n value = validateFpsLimit(value);\n if (value !== undefined) {\n fpsLimit = value;\n minFrameTime = FUZZY_MS_PER_SECOND / value;\n }\n }\n }, {\n key: \"loop\",\n get: function get$$1() {\n return loop;\n },\n set: function set$$1(value) {\n value = validateLoop(value);\n if (value !== undefined) {\n loop = value;\n }\n }\n }, {\n key: \"mobileHA\",\n get: function get$$1() {\n return mobileHA;\n },\n set: function set$$1(value) {\n if (isBoolean(value)) {\n mobileHA = value;\n }\n }\n }, {\n key: \"minFrameTime\",\n get: function get$$1() {\n return minFrameTime;\n }\n }, {\n key: \"promise\",\n get: function get$$1() {\n return promise;\n },\n set: function set$$1(value) {\n value = validatePromise(value);\n if (value !== undefined) {\n promise = value;\n }\n }\n }, {\n key: \"promiseRejectEmpty\",\n get: function get$$1() {\n return promiseRejectEmpty;\n },\n set: function set$$1(value) {\n value = validatePromiseRejectEmpty(value);\n if (value !== undefined) {\n promiseRejectEmpty = value;\n }\n }\n }, {\n key: \"queue\",\n get: function get$$1() {\n return queue;\n },\n set: function set$$1(value) {\n value = validateQueue(value);\n if (value !== undefined) {\n queue = value;\n }\n }\n }, {\n key: \"repeat\",\n get: function get$$1() {\n return repeat;\n },\n set: function set$$1(value) {\n value = validateRepeat(value);\n if (value !== undefined) {\n repeat = value;\n }\n }\n }, {\n key: \"repeatAgain\",\n get: function get$$1() {\n return repeat;\n }\n }, {\n key: \"speed\",\n get: function get$$1() {\n return speed;\n },\n set: function set$$1(value) {\n value = validateSpeed(value);\n if (value !== undefined) {\n speed = value;\n }\n }\n }, {\n key: \"sync\",\n get: function get$$1() {\n return sync;\n },\n set: function set$$1(value) {\n value = validateSync(value);\n if (value !== undefined) {\n sync = value;\n }\n }\n }]);\n return defaults$$1;\n}();\nObject.freeze(defaults$1);\n// Reset to our default values, currently everything is undefined.\ndefaults$1.reset();\n\n/**\r\n * The highest type index for finding the best normalization for a property.\r\n */\n/**\r\n * Unlike \"actions\", normalizations can always be replaced by users.\r\n */\nvar Normalizations = [];\n/**\r\n * Store a cross-reference to units to be added to specific normalization\r\n * functions if the user supplies a unit-less number.\r\n *\r\n * This is pretty much confined to adding \"px\" to several css properties.\r\n */\nvar NormalizationUnits = {};\n/**\r\n * Any normalisations that should never be cached are listed here.\r\n * Faster than an array - https://jsperf.com/array-includes-and-find-methods-vs-set-has\r\n */\nvar NoCacheNormalizations = new Set();\n/**\r\n * An array of classes used for the per-class normalizations. This\r\n * translates into a bitwise enum for quick cross-reference, and so that\r\n * the element doesn't need multiple instanceof calls every\r\n * frame.\r\n */\nvar constructors = [];\n/**\r\n * A cache of the various constructors we've found and mapping to their real\r\n * name - saves expensive lookups.\r\n */\nvar constructorCache = new Map();\n\n// Project\n// Constants\nvar dataName = \"velocityData\";\n/**\r\n * Get (and create) the internal data store for an element.\r\n */\nfunction Data(element) {\n // Use a string member so Uglify doesn't mangle it.\n var data = element[dataName];\n if (data) {\n return data;\n }\n var window = element.ownerDocument.defaultView;\n var types = 0;\n for (var index = 0; index < constructors.length; index++) {\n var _constructor = constructors[index];\n if (isString(_constructor)) {\n if (element instanceof window[_constructor]) {\n types |= 1 << index; // tslint:disable-line:no-bitwise\n }\n } else if (element instanceof _constructor) {\n types |= 1 << index; // tslint:disable-line:no-bitwise\n }\n }\n // Use an intermediate object so it errors on incorrect data.\n var newData = {\n types: types,\n count: 0,\n computedStyle: null,\n cache: {},\n queueList: {},\n lastAnimationList: {},\n lastFinishList: {},\n window: window\n };\n Object.defineProperty(element, dataName, {\n value: newData\n });\n return newData;\n}\n\n// Constants\nvar isClient = window && window === window.window,\n windowScrollAnchor = isClient && window.pageYOffset !== undefined;\nvar State = {\n isClient: isClient,\n isMobile: isClient && /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),\n isGingerbread: isClient && /Android 2\\.3\\.[3-7]/i.test(navigator.userAgent),\n prefixElement: isClient && document.createElement(\"div\"),\n windowScrollAnchor: windowScrollAnchor,\n scrollAnchor: windowScrollAnchor ? window : !isClient || document.documentElement || document.body.parentNode || document.body,\n scrollPropertyLeft: windowScrollAnchor ? \"pageXOffset\" : \"scrollLeft\",\n scrollPropertyTop: windowScrollAnchor ? \"pageYOffset\" : \"scrollTop\",\n className: CLASSNAME,\n isTicking: false,\n first: undefined,\n last: undefined,\n firstNew: undefined\n};\n\n// Project\n/**\r\n * Simple queue management. Un-named queue is directly within the element data,\r\n * named queue is within an object within it.\r\n */\nfunction animate(animation) {\n var prev = State.last;\n animation._prev = prev;\n animation._next = undefined;\n if (prev) {\n prev._next = animation;\n } else {\n State.first = animation;\n }\n State.last = animation;\n if (!State.firstNew) {\n State.firstNew = animation;\n }\n var element = animation.element,\n data = Data(element);\n if (!data.count++) {\n ////////////////////////\n // Feature: Classname //\n ////////////////////////\n addClass(element, State.className);\n }\n}\n/**\r\n * Add an item to an animation queue.\r\n */\nfunction queue$1(element, animation, queueName) {\n var data = Data(element);\n if (queueName !== false) {\n // Store the last animation added so we can use it for the\n // beginning of the next one.\n data.lastAnimationList[queueName] = animation;\n }\n if (queueName === false) {\n animate(animation);\n } else {\n if (!isString(queueName)) {\n queueName = \"\";\n }\n var last = data.queueList[queueName];\n if (!last) {\n if (last === null) {\n data.queueList[queueName] = animation;\n } else {\n data.queueList[queueName] = null;\n animate(animation);\n }\n } else {\n while (last._next) {\n last = last._next;\n }\n last._next = animation;\n animation._prev = last;\n }\n }\n}\n/**\r\n * Start the next animation on this element's queue (named or default).\r\n *\r\n * @returns the next animation that is starting.\r\n */\nfunction dequeue(element, queueName, skip) {\n if (queueName !== false) {\n if (!isString(queueName)) {\n queueName = \"\";\n }\n var data = Data(element),\n animation = data.queueList[queueName];\n if (animation) {\n data.queueList[queueName] = animation._next || null;\n if (!skip) {\n animate(animation);\n }\n } else if (animation === null) {\n delete data.queueList[queueName];\n }\n return animation;\n }\n}\n/**\r\n * Remove an animation from the active animation list. If it has a queue set\r\n * then remember it as the last animation for that queue, and free the one\r\n * that was previously there. If the animation list is completely empty then\r\n * mark us as finished.\r\n */\nfunction freeAnimationCall(animation) {\n var next = animation._next,\n prev = animation._prev,\n queueName = animation.queue == null ? animation.options.queue : animation.queue;\n if (State.firstNew === animation) {\n State.firstNew = next;\n }\n if (State.first === animation) {\n State.first = next;\n } else if (prev) {\n prev._next = next;\n }\n if (State.last === animation) {\n State.last = prev;\n } else if (next) {\n next._prev = prev;\n }\n if (queueName) {\n var data = Data(animation.element);\n if (data) {\n animation._next = animation._prev = undefined;\n }\n }\n}\n\nvar SequencesObject = {};\n\n// Project\n/**\r\n * Call the complete method of an animation in a separate function so it can\r\n * benefit from JIT compiling while still having a try/catch block.\r\n */\nfunction callComplete(activeCall) {\n var callback = activeCall.complete || activeCall.options.complete;\n if (callback) {\n try {\n var elements = activeCall.elements;\n callback.call(elements, elements, activeCall);\n } catch (error) {\n setTimeout(function () {\n throw error;\n }, 1);\n }\n }\n}\n/**\r\n * Complete an animation. This might involve restarting (for loop or repeat\r\n * options). Once it is finished we also check for any callbacks or Promises\r\n * that need updating.\r\n */\nfunction completeCall(activeCall) {\n // TODO: Check if it's not been completed already\n var options = activeCall.options,\n queue = getValue(activeCall.queue, options.queue),\n isLoop = getValue(activeCall.loop, options.loop, defaults$1.loop),\n isRepeat = getValue(activeCall.repeat, options.repeat, defaults$1.repeat),\n isStopped = activeCall._flags & 8 /* STOPPED */; // tslint:disable-line:no-bitwise\n if (!isStopped && (isLoop || isRepeat)) {\n ////////////////////\n // Option: Loop //\n // Option: Repeat //\n ////////////////////\n if (isRepeat && isRepeat !== true) {\n activeCall.repeat = isRepeat - 1;\n } else if (isLoop && isLoop !== true) {\n activeCall.loop = isLoop - 1;\n activeCall.repeat = getValue(activeCall.repeatAgain, options.repeatAgain, defaults$1.repeatAgain);\n }\n if (isLoop) {\n activeCall._flags ^= 64 /* REVERSE */; // tslint:disable-line:no-bitwise\n }\n if (queue !== false) {\n // Can't be called when stopped so no need for an extra check.\n Data(activeCall.element).lastFinishList[queue] = activeCall.timeStart + getValue(activeCall.duration, options.duration, defaults$1.duration);\n }\n activeCall.timeStart = activeCall.ellapsedTime = activeCall.percentComplete = 0;\n activeCall._flags &= ~4 /* STARTED */; // tslint:disable-line:no-bitwise\n } else {\n var element = activeCall.element,\n data = Data(element);\n if (! --data.count && !isStopped) {\n ////////////////////////\n // Feature: Classname //\n ////////////////////////\n removeClass(element, State.className);\n }\n //////////////////////\n // Option: Complete //\n //////////////////////\n // If this is the last animation in this list then we can check for\n // and complete calls or Promises.\n // TODO: When deleting an element we need to adjust these values.\n if (options && ++options._completed === options._total) {\n if (!isStopped && options.complete) {\n // We don't call the complete if the animation is stopped,\n // and we clear the key to prevent it being called again.\n callComplete(activeCall);\n options.complete = null;\n }\n var resolver = options._resolver;\n if (resolver) {\n // Fulfil the Promise\n resolver(activeCall.elements);\n delete options._resolver;\n }\n }\n ///////////////////\n // Option: Queue //\n ///////////////////\n if (queue !== false) {\n // We only do clever things with queues...\n if (!isStopped) {\n // If we're not stopping an animation, we need to remember\n // what time it finished so that the next animation in\n // sequence gets the correct start time.\n data.lastFinishList[queue] = activeCall.timeStart + getValue(activeCall.duration, options.duration, defaults$1.duration);\n }\n // Start the next animation in sequence, or delete the queue if\n // this was the last one.\n dequeue(element, queue);\n }\n // Cleanup any pointers, and remember the last animation etc.\n freeAnimationCall(activeCall);\n }\n}\n\n// Project\n/**\r\n * Used to register a normalization. This should never be called by users\r\n * directly, instead it should be called via an action:
\r\n * Velocity(\"registerNormalization\", \"Element\", \"name\", VelocityNormalizationsFn[, false]);\r\n *\r\n * The second argument is the class of the animatable object. If this is passed\r\n * as a class name (ie, `\"Element\"` -> `window[\"Element\"]`) then this will work\r\n * cross-iframe. If passed as an actual class (ie `Element`) then it will\r\n * attempt to find the class on the window and use that name instead. If it\r\n * can't find it then it will use the class passed, which allows for custom\r\n * animation targets, but will not work cross-iframe boundary.\r\n *\r\n * The fourth argument can be an explicit false, which prevents\r\n * the property from being cached. Please note that this can be dangerous\r\n * for performance!\r\n */\nfunction registerNormalization(args) {\n var constructor = args[0],\n name = args[1],\n callback = args[2];\n if (isString(constructor) && !(window[constructor] instanceof Object) || !isString(constructor) && !(constructor instanceof Object)) {\n console.warn(\"VelocityJS: Trying to set 'registerNormalization' constructor to an invalid value:\", constructor);\n } else if (!isString(name)) {\n console.warn(\"VelocityJS: Trying to set 'registerNormalization' name to an invalid value:\", name);\n } else if (!isFunction(callback)) {\n console.warn(\"VelocityJS: Trying to set 'registerNormalization' callback to an invalid value:\", name, callback);\n } else {\n var index = constructors.indexOf(constructor),\n nextArg = 3;\n if (index < 0 && !isString(constructor)) {\n if (constructorCache.has(constructor)) {\n index = constructors.indexOf(constructorCache.get(constructor));\n } else {\n for (var property in window) {\n if (window[property] === constructor) {\n index = constructors.indexOf(property);\n if (index < 0) {\n index = constructors.push(property) - 1;\n Normalizations[index] = {};\n constructorCache.set(constructor, property);\n }\n break;\n }\n }\n }\n }\n if (index < 0) {\n index = constructors.push(constructor) - 1;\n Normalizations[index] = {};\n }\n Normalizations[index][name] = callback;\n if (isString(args[nextArg])) {\n var unit = args[nextArg++];\n var units = NormalizationUnits[unit];\n if (!units) {\n units = NormalizationUnits[unit] = [];\n }\n units.push(callback);\n }\n if (args[nextArg] === false) {\n NoCacheNormalizations.add(name);\n }\n }\n}\n/**\r\n * Used to check if a normalisation exists on a specific class.\r\n */\nfunction hasNormalization(args) {\n var constructor = args[0],\n name = args[1];\n var index = constructors.indexOf(constructor);\n if (index < 0 && !isString(constructor)) {\n if (constructorCache.has(constructor)) {\n index = constructors.indexOf(constructorCache.get(constructor));\n } else {\n for (var property in window) {\n if (window[property] === constructor) {\n index = constructors.indexOf(property);\n break;\n }\n }\n }\n }\n return index >= 0 && Normalizations[index].hasOwnProperty(name);\n}\n/**\r\n * Get the unit to add to a unitless number based on the normalization used.\r\n */\nfunction getNormalizationUnit(fn) {\n for (var unit in NormalizationUnits) {\n if (NormalizationUnits[unit].includes(fn)) {\n return unit;\n }\n }\n return \"\";\n}\n/**\r\n * Get the normalization for an element and propertyName combination. This\r\n * value should be cached at asking time, as it may change if the user adds\r\n * more normalizations.\r\n */\nfunction getNormalization(element, propertyName) {\n var data = Data(element);\n var fn = void 0;\n for (var index = constructors.length - 1, types = data.types; !fn && index >= 0; index--) {\n if (types & 1 << index) {\n // tslint:disable-line:no-bitwise\n fn = Normalizations[index][propertyName];\n }\n }\n return fn;\n}\nregisterAction([\"registerNormalization\", registerNormalization]);\nregisterAction([\"hasNormalization\", hasNormalization]);\n\n// Project\n/**\r\n * The singular setPropertyValue, which routes the logic for all\r\n * normalizations.\r\n */\nfunction setPropertyValue(element, propertyName, propertyValue, fn) {\n var noCache = NoCacheNormalizations.has(propertyName),\n data = !noCache && Data(element);\n if (noCache || data && data.cache[propertyName] !== propertyValue) {\n // By setting it to undefined we force a true \"get\" later\n if (!noCache) {\n data.cache[propertyName] = propertyValue || undefined;\n }\n fn = fn || getNormalization(element, propertyName);\n if (fn) {\n fn(element, propertyValue);\n }\n if (Velocity$$1.debug >= 2) {\n console.info(\"Set \\\"\" + propertyName + \"\\\": \\\"\" + propertyValue + \"\\\"\", element);\n }\n }\n}\n\n/**\r\n * Remove nested `calc(0px + *)` or `calc(* + (0px + *))` correctly.\r\n */\nfunction removeNestedCalc(value) {\n if (value.indexOf(\"calc(\") >= 0) {\n var tokens = value.split(/([\\(\\)])/);\n var depth = 0;\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n switch (token) {\n case \"(\":\n depth++;\n break;\n case \")\":\n depth--;\n break;\n default:\n if (depth && token[0] === \"0\") {\n tokens[i] = token.replace(/^0[a-z%]+ \\+ /, \"\");\n }\n break;\n }\n }\n return tokens.join(\"\").replace(/(?:calc)?\\(([0-9\\.]+[a-z%]+)\\)/g, \"$1\");\n }\n return value;\n}\n\n/**\r\n * Cache every camelCase match to avoid repeating lookups.\r\n */\nvar cache$2 = {};\n/**\r\n * Camelcase a property name into its JavaScript notation (e.g.\r\n * \"background-color\" ==> \"backgroundColor\"). Camelcasing is used to\r\n * normalize property names between and across calls.\r\n */\nfunction camelCase(property) {\n var fixed = cache$2[property];\n if (fixed) {\n return fixed;\n }\n return cache$2[property] = property.replace(/-([a-z])/g, function ($, letter) {\n return letter.toUpperCase();\n });\n}\n\n// Constants\nvar rxColor6 = /#([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})/gi,\n rxColor3 = /#([a-f\\d])([a-f\\d])([a-f\\d])/gi,\n rxColorName = /(rgba?\\(\\s*)?(\\b[a-z]+\\b)/g,\n rxRGB = /rgb(a?)\\(([^\\)]+)\\)/gi,\n rxSpaces = /\\s+/g;\n/**\r\n * This is the list of color names -> rgb values. The object is in here so\r\n * that the actual name conversion can be in a separate file and not\r\n * included for custom builds.\r\n */\nvar ColorNames = {};\n/**\r\n * Convert a hex list to an rgba value. Designed to be used in replace.\r\n */\nfunction makeRGBA(ignore, r, g, b) {\n return \"rgba(\" + parseInt(r, 16) + \",\" + parseInt(g, 16) + \",\" + parseInt(b, 16) + \",1)\";\n}\n/**\r\n * Replace any css colour name with its rgba() value. It is possible to use\r\n * the name within an \"rgba(blue, 0.4)\" string this way.\r\n */\nfunction fixColors(str) {\n return str.replace(rxColor6, makeRGBA).replace(rxColor3, function ($0, r, g, b) {\n return makeRGBA($0, r + r, g + g, b + b);\n }).replace(rxColorName, function ($0, $1, $2) {\n if (ColorNames[$2]) {\n return ($1 ? $1 : \"rgba(\") + ColorNames[$2] + ($1 ? \"\" : \",1)\");\n }\n return $0;\n }).replace(rxRGB, function ($0, $1, $2) {\n return \"rgba(\" + ($2.replace(rxSpaces, \"\") + ($1 ? \"\" : \",1\")) + \")\";\n });\n}\n\n// Project\n/**\r\n * Figure out the dimensions for this width / height based on the\r\n * potential borders and whether we care about them.\r\n */\nfunction augmentDimension(element, name, wantInner) {\n var isBorderBox = getPropertyValue(element, \"boxSizing\").toString().toLowerCase() === \"border-box\";\n if (isBorderBox === wantInner) {\n // in box-sizing mode, the CSS width / height accessors already\n // give the outerWidth / outerHeight.\n var sides = name === \"width\" ? [\"Left\", \"Right\"] : [\"Top\", \"Bottom\"],\n fields = [\"padding\" + sides[0], \"padding\" + sides[1], \"border\" + sides[0] + \"Width\", \"border\" + sides[1] + \"Width\"];\n var augment = 0;\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fields[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var field = _step.value;\n\n var value = parseFloat(getPropertyValue(element, field));\n if (!isNaN(value)) {\n augment += value;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return wantInner ? -augment : augment;\n }\n return 0;\n}\n\n// Project\n/**\r\n * Get the width or height of an element, pulled out as it can be used when the\r\n * in two locations so don't want to repeat it.\r\n */\nfunction getWidthHeight(element, property) {\n return element.getBoundingClientRect()[property] + augmentDimension(element, property, true) + \"px\";\n}\n// TODO: This is still a complete mess\nfunction computePropertyValue(element, property) {\n var data = Data(element),\n\n // If computedStyle is cached, use it. If not then get the correct one\n // for the element to support cross-iframe boundaries.\n computedStyle = data.computedStyle ? data.computedStyle : data.window.getComputedStyle(element, null);\n var computedValue = 0;\n if (!data.computedStyle) {\n data.computedStyle = computedStyle;\n }\n if (computedStyle[\"display\"] === \"none\") {\n switch (property) {\n case \"width\":\n case \"height\":\n // Browsers do not return height and width values for elements\n // that are set to display:\"none\". Thus, we temporarily toggle\n // display to the element type's default value.\n setPropertyValue(element, \"display\", \"auto\");\n computedValue = getWidthHeight(element, property);\n setPropertyValue(element, \"display\", \"none\");\n return String(computedValue);\n }\n }\n /* IE and Firefox do not return a value for the generic borderColor -- they only return individual values for each border side's color.\r\n Also, in all browsers, when border colors aren't all the same, a compound value is returned that Velocity isn't setup to parse.\r\n So, as a polyfill for querying individual border side colors, we just return the top border's color and animate all borders from that value. */\n /* TODO: There is a borderColor normalisation in legacy/ - figure out where this is needed... */\n computedValue = computedStyle[property];\n /* Fall back to the property's style value (if defined) when computedValue returns nothing,\r\n which can happen when the element hasn't been painted. */\n if (!computedValue) {\n computedValue = element.style[property];\n }\n /* For top, right, bottom, and left (TRBL) values that are set to \"auto\" on elements of \"fixed\" or \"absolute\" position,\r\n defer to jQuery for converting \"auto\" to a numeric value. (For elements with a \"static\" or \"relative\" position, \"auto\" has the same\r\n effect as being set to 0, so no conversion is necessary.) */\n /* An example of why numeric conversion is necessary: When an element with \"position:absolute\" has an untouched \"left\"\r\n property, which reverts to \"auto\", left's value is 0 relative to its parent element, but is often non-zero relative\r\n to its *containing* (not parent) element, which is the nearest \"position:relative\" ancestor or the viewport (and always the viewport in the case of \"position:fixed\"). */\n if (computedValue === \"auto\") {\n switch (property) {\n case \"width\":\n case \"height\":\n computedValue = getWidthHeight(element, property);\n break;\n case \"top\":\n case \"left\":\n\n case \"right\":\n case \"bottom\":\n var position = getPropertyValue(element, \"position\");\n if (position === \"fixed\" || position === \"absolute\") {\n // Note: this has no pixel unit on its returned values,\n // we re-add it here to conform with\n // computePropertyValue's behavior.\n computedValue = element.getBoundingClientRect[property] + \"px\";\n break;\n }\n // Deliberate fallthrough!\n default:\n computedValue = \"0px\";\n break;\n }\n }\n return computedValue ? String(computedValue) : \"\";\n}\n/**\r\n * Get a property value. This will grab via the cache if it exists, then\r\n * via any normalisations.\r\n */\nfunction getPropertyValue(element, propertyName, fn, skipCache) {\n var data = Data(element);\n var propertyValue = void 0;\n if (NoCacheNormalizations.has(propertyName)) {\n skipCache = true;\n }\n if (!skipCache && data && data.cache[propertyName] != null) {\n propertyValue = data.cache[propertyName];\n } else {\n fn = fn || getNormalization(element, propertyName);\n if (fn) {\n propertyValue = fn(element);\n if (data) {\n data.cache[propertyName] = propertyValue;\n }\n }\n }\n if (Velocity$$1.debug >= 2) {\n console.info(\"Get \\\"\" + propertyName + \"\\\": \\\"\" + propertyValue + \"\\\"\", element);\n }\n return propertyValue;\n}\n\n// Project\n// Constants\nvar rxHex = /^#([A-f\\d]{3}){1,2}$/i,\n commands = {\n function: function _function(value, element, elements, elementArrayIndex, propertyName, tween) {\n return value.call(element, elementArrayIndex, elements.length, propertyName);\n },\n number: function number(value, element, elements, elementArrayIndex, propertyName, tween) {\n return String(value) + getNormalizationUnit(tween.fn);\n },\n string: function string(value, element, elements, elementArrayIndex, propertyName, tween) {\n return fixColors(value);\n },\n undefined: function undefined(value, element, elements, elementArrayIndex, propertyName, tween) {\n return fixColors(getPropertyValue(element, propertyName, tween.fn) || \"\");\n }\n};\n/**\r\n * Expand a VelocityProperty argument into a valid sparse Tween array. This\r\n * pre-allocates the array as it is then the correct size and slightly\r\n * faster to access.\r\n */\nfunction expandProperties(animation, properties) {\n var tweens = animation.tweens = Object.create(null),\n elements = animation.elements,\n element = animation.element,\n elementArrayIndex = elements.indexOf(element),\n data = Data(element),\n queue = getValue(animation.queue, animation.options.queue),\n duration = getValue(animation.options.duration, defaults$1.duration);\n for (var property in properties) {\n if (properties.hasOwnProperty(property)) {\n var propertyName = camelCase(property),\n fn = getNormalization(element, propertyName);\n var valueData = properties[property];\n if (!fn && propertyName !== \"tween\") {\n if (Velocity$$1.debug) {\n console.log(\"Skipping \\\"\" + property + \"\\\" due to a lack of browser support.\");\n }\n continue;\n }\n if (valueData == null) {\n if (Velocity$$1.debug) {\n console.log(\"Skipping \\\"\" + property + \"\\\" due to no value supplied.\");\n }\n continue;\n }\n var tween = tweens[propertyName] = {};\n var endValue = void 0,\n startValue = void 0;\n tween.fn = fn;\n if (isFunction(valueData)) {\n // If we have a function as the main argument then resolve\n // it first, in case it returns an array that needs to be\n // split.\n valueData = valueData.call(element, elementArrayIndex, elements.length, elements);\n }\n if (Array.isArray(valueData)) {\n // valueData is an array in the form of\n // [ endValue, [, easing] [, startValue] ]\n var arr1 = valueData[1],\n arr2 = valueData[2];\n endValue = valueData[0];\n if (isString(arr1) && (/^[\\d-]/.test(arr1) || rxHex.test(arr1)) || isFunction(arr1) || isNumber(arr1)) {\n startValue = arr1;\n } else if (isString(arr1) && Easings[arr1] || Array.isArray(arr1)) {\n tween.easing = validateEasing(arr1, duration);\n startValue = arr2;\n } else {\n startValue = arr1 || arr2;\n }\n } else {\n endValue = valueData;\n }\n tween.end = commands[typeof endValue === \"undefined\" ? \"undefined\" : _typeof(endValue)](endValue, element, elements, elementArrayIndex, propertyName, tween);\n if (startValue != null || queue === false || data.queueList[queue] === undefined) {\n tween.start = commands[typeof startValue === \"undefined\" ? \"undefined\" : _typeof(startValue)](startValue, element, elements, elementArrayIndex, propertyName, tween);\n explodeTween(propertyName, tween, duration);\n }\n }\n }\n}\n// TODO: Needs a better match for \"translate3d\" etc - a number must be preceded by some form of break...\nvar rxToken = /((?:[+\\-*/]=)?(?:[+-]?\\d*\\.\\d+|[+-]?\\d+)[a-z%]*|(?:.(?!$|[+-]?\\d|[+\\-*/]=[+-]?\\d))+.|.)/g,\n rxNumber = /^([+\\-*/]=)?([+-]?\\d*\\.\\d+|[+-]?\\d+)(.*)$/;\n/**\r\n * Find a pattern between multiple strings, return a VelocitySequence with\r\n * the pattern and the tokenised values.\r\n *\r\n * If number then animate.\r\n * If a string then must match.\r\n * If units then convert between them by wrapping in a calc().\r\n * - If already in a calc then nest another layer.\r\n * If in an rgba() then the first three numbers are rounded.\r\n */\nfunction findPattern(parts, propertyName) {\n var partsLength = parts.length,\n tokens = [],\n indexes = [];\n var numbers = void 0;\n // First tokenise the strings - these have all values, we will pull\n // numbers later.\n for (var part = 0; part < partsLength; part++) {\n if (isString(parts[part])) {\n if (parts[part] === \"\") {\n tokens[part] = [\"\"];\n } else {\n tokens[part] = cloneArray(parts[part].match(rxToken));\n }\n indexes[part] = 0;\n // If it matches more than one thing then we've got a number.\n numbers = numbers || tokens[part].length > 1;\n //console.log(`tokens:`, parts[part], tokens[part])\n } else {\n // We have an incomplete lineup, it will get tried again later...\n return;\n }\n }\n var sequence = [],\n pattern = sequence.pattern = [],\n addString = function addString(text) {\n if (isString(pattern[pattern.length - 1])) {\n pattern[pattern.length - 1] += text;\n } else if (text) {\n pattern.push(text);\n for (var _part = 0; _part < partsLength; _part++) {\n sequence[_part].push(null);\n }\n }\n },\n returnStringType = function returnStringType() {\n if (numbers || pattern.length > 1) {\n //console.error(`Velocity: Trying to pattern match mis-matched strings \"${propertyName}\":`, parts);\n return;\n }\n var isDisplay = propertyName === \"display\",\n isVisibility = propertyName === \"visibility\";\n for (var _part2 = 0; _part2 < partsLength; _part2++) {\n var value = parts[_part2];\n sequence[_part2][0] = value;\n // Don't care about duration...\n sequence[_part2].easing = validateEasing(isDisplay && value === \"none\" || isVisibility && value === \"hidden\" || !isDisplay && !isVisibility ? \"at-end\" : \"at-start\", 400);\n }\n pattern[0] = false;\n return sequence;\n };\n var more = true;\n for (var _part3 = 0; _part3 < partsLength; _part3++) {\n sequence[_part3] = [];\n }\n while (more) {\n var bits = [],\n units = [];\n var text = void 0,\n isUnitless = false,\n hasNumbers = false;\n for (var _part4 = 0; _part4 < partsLength; _part4++) {\n var index = indexes[_part4]++,\n token = tokens[_part4][index];\n if (token) {\n var num = token.match(rxNumber); // [ignore, change, number, unit]\n if (num) {\n // It's a number, possibly with a += change and unit.\n if (text) {\n return returnStringType();\n }\n var digits = parseFloat(num[2]),\n unit = num[3],\n change = num[1] ? num[1][0] + unit : undefined,\n changeOrUnit = change || unit;\n if (digits && !units.includes(changeOrUnit)) {\n // Will be an empty string at the least.\n units.push(changeOrUnit);\n }\n if (!unit) {\n if (digits) {\n hasNumbers = true;\n } else {\n isUnitless = true;\n }\n }\n bits[_part4] = change ? [digits, changeOrUnit, true] : [digits, changeOrUnit];\n } else if (bits.length) {\n return returnStringType();\n } else {\n // It's a string.\n if (!text) {\n text = token;\n } else if (text !== token) {\n return returnStringType();\n }\n }\n } else if (!_part4) {\n for (; _part4 < partsLength; _part4++) {\n var index2 = indexes[_part4]++;\n if (tokens[_part4][index2]) {\n return returnStringType();\n }\n }\n // IMPORTANT: This is the exit point.\n more = false;\n break;\n } else {\n // Different\n return;\n }\n }\n if (text) {\n addString(text);\n } else if (units.length) {\n if (units.length === 2 && isUnitless && !hasNumbers) {\n // If we only have two units, and one is empty, and it's only empty on \"0\", then treat us as having one unit\n units.splice(units[0] ? 1 : 0, 1);\n }\n if (units.length === 1) {\n // All the same units, so append number then unit.\n var _unit = units[0],\n firstLetter = _unit[0];\n switch (firstLetter) {\n case \"+\":\n case \"-\":\n case \"*\":\n case \"/\":\n if (propertyName) {\n console.error(\"Velocity: The first property must not contain a relative function \\\"\" + propertyName + \"\\\":\", parts);\n }\n return;\n }\n pattern.push(false);\n for (var _part5 = 0; _part5 < partsLength; _part5++) {\n sequence[_part5].push(bits[_part5][0]);\n }\n addString(_unit);\n } else {\n // Multiple units, so must be inside a calc.\n addString(\"calc(\");\n var patternCalc = pattern.length - 1; // Store the beginning of our calc.\n for (var i = 0; i < units.length; i++) {\n var _unit2 = units[i],\n _firstLetter = _unit2[0],\n isComplex = _firstLetter === \"*\" || _firstLetter === \"/\",\n isMaths = isComplex || _firstLetter === \"+\" || _firstLetter === \"-\";\n if (isComplex) {\n // TODO: Not sure this should be done automatically!\n pattern[patternCalc] += \"(\";\n addString(\")\");\n }\n if (i) {\n addString(\" \" + (isMaths ? _firstLetter : \"+\") + \" \");\n }\n pattern.push(false);\n for (var _part6 = 0; _part6 < partsLength; _part6++) {\n var bit = bits[_part6],\n value = bit[1] === _unit2 ? bit[0] : bit.length === 3 ? sequence[_part6 - 1][sequence[_part6 - 1].length - 1] : isComplex ? 1 : 0;\n sequence[_part6].push(value);\n }\n addString(isMaths ? _unit2.substring(1) : _unit2);\n }\n addString(\")\");\n }\n }\n }\n // We've got here, so a valid sequence - now check and fix RGB rounding\n // and calc() nesting...\n // TODO: Nested calc(a + calc(b + c)) -> calc(a + (b + c))\n for (var _i = 0, inRGB = 0; _i < pattern.length; _i++) {\n var _text = pattern[_i];\n if (isString(_text)) {\n if (inRGB && _text.indexOf(\",\") >= 0) {\n inRGB++;\n } else if (_text.indexOf(\"rgb\") >= 0) {\n inRGB = 1;\n }\n } else if (inRGB) {\n if (inRGB < 4) {\n pattern[_i] = true;\n } else {\n inRGB = 0;\n }\n }\n }\n return sequence;\n}\n/**\r\n * Convert a string-based tween with start and end strings, into a pattern\r\n * based tween with arrays.\r\n */\nfunction explodeTween(propertyName, tween, duration, starting) {\n var startValue = tween.start,\n endValue = tween.end;\n if (!isString(endValue) || !isString(startValue)) {\n return;\n }\n var sequence = findPattern([startValue, endValue], propertyName);\n if (!sequence && starting) {\n // This little piece will take a startValue, split out the\n // various numbers in it, then copy the endValue into the\n // startValue while replacing the numbers in it to match the\n // original start numbers as a repeating sequence.\n // Finally this function will run again with the new\n // startValue and a now matching pattern.\n var startNumbers = startValue.match(/\\d\\.?\\d*/g) || [\"0\"],\n count = startNumbers.length;\n var index = 0;\n sequence = findPattern([endValue.replace(/\\d+\\.?\\d*/g, function () {\n return startNumbers[index++ % count];\n }), endValue], propertyName);\n }\n if (sequence) {\n if (Velocity$$1.debug) {\n console.log(\"Velocity: Sequence found:\", sequence);\n }\n sequence[0].percent = 0;\n sequence[1].percent = 1;\n tween.sequence = sequence;\n switch (tween.easing) {\n case Easings[\"at-start\"]:\n case Easings[\"during\"]:\n case Easings[\"at-end\"]:\n sequence[0].easing = sequence[1].easing = tween.easing;\n break;\n }\n }\n}\n/**\r\n * Expand all queued animations that haven't gone yet\r\n *\r\n * This will automatically expand the properties map for any recently added\r\n * animations so that the start and end values are correct.\r\n */\nfunction validateTweens(activeCall) {\n // This might be called on an already-ready animation\n if (State.firstNew === activeCall) {\n State.firstNew = activeCall._next;\n }\n // Check if we're actually already ready\n if (activeCall._flags & 1 /* EXPANDED */) {\n // tslint:disable-line:no-bitwise\n return;\n }\n var element = activeCall.element,\n tweens = activeCall.tweens,\n duration = getValue(activeCall.options.duration, defaults$1.duration);\n // tslint:disable-next-line:forin\n for (var propertyName in tweens) {\n var tween = tweens[propertyName];\n if (tween.start == null) {\n // Get the start value as it's not been passed in\n var startValue = getPropertyValue(activeCall.element, propertyName);\n if (isString(startValue)) {\n tween.start = fixColors(startValue);\n explodeTween(propertyName, tween, duration, true);\n } else if (!Array.isArray(startValue)) {\n console.warn(\"bad type\", tween, propertyName, startValue);\n }\n }\n if (Velocity$$1.debug) {\n console.log(\"tweensContainer \\\"\" + propertyName + \"\\\": \" + JSON.stringify(tween), element);\n }\n }\n activeCall._flags |= 1 /* EXPANDED */; // tslint:disable-line:no-bitwise\n}\n\n// Project\n/**\r\n * Call the begin method of an animation in a separate function so it can\r\n * benefit from JIT compiling while still having a try/catch block.\r\n */\nfunction beginCall(activeCall) {\n var callback = activeCall.begin || activeCall.options.begin;\n if (callback) {\n try {\n var elements = activeCall.elements;\n callback.call(elements, elements, activeCall);\n } catch (error) {\n setTimeout(function () {\n throw error;\n }, 1);\n }\n }\n}\n/**\r\n * Call the progress method of an animation in a separate function so it can\r\n * benefit from JIT compiling while still having a try/catch block.\r\n */\nfunction progressCall(activeCall) {\n var callback = activeCall.progress || activeCall.options.progress;\n if (callback) {\n try {\n var elements = activeCall.elements,\n percentComplete = activeCall.percentComplete,\n options = activeCall.options,\n tweenValue = activeCall.tween;\n callback.call(elements, elements, percentComplete, Math.max(0, activeCall.timeStart + (activeCall.duration != null ? activeCall.duration : options.duration != null ? options.duration : defaults$1.duration) - lastTick), tweenValue !== undefined ? tweenValue : String(percentComplete * 100), activeCall);\n } catch (error) {\n setTimeout(function () {\n throw error;\n }, 1);\n }\n }\n}\n/**\r\n * Call callbacks, potentially run async with the main animation thread.\r\n */\nfunction asyncCallbacks() {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = progressed[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var activeCall = _step.value;\n\n progressCall(activeCall);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n progressed.clear();\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = completed[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _activeCall = _step2.value;\n\n completeCall(_activeCall);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n completed.clear();\n}\n/**************\r\n Timing\r\n **************/\nvar FRAME_TIME = 1000 / 60,\n\n/**\r\n * Animations with a Complete callback.\r\n */\ncompleted = new Set(),\n\n/**\r\n * Animations with a Progress callback.\r\n */\nprogressed = new Set(),\n\n/**\r\n * Shim for window.performance in case it doesn't exist\r\n */\nperformance = function () {\n var perf = window.performance || {};\n if (typeof perf.now !== \"function\") {\n var nowOffset = perf.timing && perf.timing.navigationStart ? perf.timing.navigationStart : now();\n perf.now = function () {\n return now() - nowOffset;\n };\n }\n return perf;\n}(),\n\n/**\r\n * Proxy function for when rAF is not available.\r\n *\r\n * This should hopefully never be used as the browsers often throttle\r\n * this to less than one frame per second in the background, making it\r\n * completely unusable.\r\n */\nrAFProxy = function rAFProxy(callback) {\n return setTimeout(callback, Math.max(0, FRAME_TIME - (performance.now() - lastTick)));\n},\n\n/**\r\n * Either requestAnimationFrame, or a shim for it.\r\n */\nrAFShim = window.requestAnimationFrame || rAFProxy;\n/**\r\n * Set if we are currently inside a tick() to prevent double-calling.\r\n */\nvar ticking = void 0,\n\n/**\r\n * A background WebWorker that sends us framerate messages when we're in\r\n * the background. Without this we cannot maintain frame accuracy.\r\n */\nworker = void 0;\n/**\r\n * The time that the last animation frame ran at. Set from tick(), and used\r\n * for missing rAF (ie, when not in focus etc).\r\n */\nvar lastTick = 0;\n/**\r\n * WebWorker background function.\r\n *\r\n * When we're in the background this will send us a msg every tick, when in\r\n * the foreground it won't.\r\n *\r\n * When running in the background the browser reduces allowed CPU etc, so\r\n * we raun at 30fps instead of 60fps.\r\n */\nfunction workerFn() {\n var _this = this;\n\n var interval = void 0;\n this.onmessage = function (e) {\n switch (e.data) {\n case true:\n if (!interval) {\n interval = setInterval(function () {\n _this.postMessage(true);\n }, 1000 / 30);\n }\n break;\n case false:\n if (interval) {\n clearInterval(interval);\n interval = 0;\n }\n break;\n default:\n _this.postMessage(e.data);\n break;\n }\n };\n}\ntry {\n // Create the worker - this might not be supported, hence the try/catch.\n worker = new Worker(URL.createObjectURL(new Blob([\"(\" + workerFn + \")()\"])));\n // Whenever the worker sends a message we tick()\n worker.onmessage = function (e) {\n if (e.data === true) {\n tick();\n } else {\n asyncCallbacks();\n }\n };\n // And watch for going to the background to start the WebWorker running.\n if (!State.isMobile && document.hidden !== undefined) {\n document.addEventListener(\"visibilitychange\", function () {\n worker.postMessage(State.isTicking && document.hidden);\n });\n }\n} catch (e) {}\n/*\r\n * WebWorkers are not supported in this format. This can happen in IE10\r\n * where it can't create one from a blob this way. We fallback, but make\r\n * no guarantees towards accuracy in this case.\r\n */\n\n/**\r\n * Called on every tick, preferably through rAF. This is reponsible for\r\n * initialising any new animations, then starting any that need starting.\r\n * Finally it will expand any tweens and set the properties relating to\r\n * them. If there are any callbacks relating to the animations then they\r\n * will attempt to call at the end (with the exception of \"begin\").\r\n */\nfunction tick(timestamp) {\n if (ticking) {\n // Should never happen - but if we've swapped back from hidden to\n // visibile then we want to make sure\n return;\n }\n ticking = true;\n /* An empty timestamp argument indicates that this is the first tick occurence since ticking was turned on.\r\n We leverage this metadata to fully ignore the first tick pass since RAF's initial pass is fired whenever\r\n the browser's next tick sync time occurs, which results in the first elements subjected to Velocity\r\n calls being animated out of sync with any elements animated immediately thereafter. In short, we ignore\r\n the first RAF tick pass so that elements being immediately consecutively animated -- instead of simultaneously animated\r\n by the same Velocity call -- are properly batched into the same initial RAF tick and consequently remain in sync thereafter. */\n if (timestamp !== false) {\n var timeCurrent = performance.now(),\n deltaTime = lastTick ? timeCurrent - lastTick : FRAME_TIME,\n defaultSpeed = defaults$1.speed,\n defaultEasing = defaults$1.easing,\n defaultDuration = defaults$1.duration;\n var activeCall = void 0,\n nextCall = void 0;\n if (deltaTime >= defaults$1.minFrameTime || !lastTick) {\n lastTick = timeCurrent;\n /********************\r\n Call Iteration\r\n ********************/\n // Expand any tweens that might need it.\n while (State.firstNew) {\n validateTweens(State.firstNew);\n }\n // Iterate through each active call.\n for (activeCall = State.first; activeCall && activeCall !== State.firstNew; activeCall = activeCall._next) {\n var element = activeCall.element,\n data = Data(element);\n // Check to see if this element has been deleted midway\n // through the animation. If it's gone then end this\n // animation.\n if (!element.parentNode || !data) {\n // TODO: Remove safely - decrease count, delete data, remove from arrays\n freeAnimationCall(activeCall);\n continue;\n }\n // Don't bother getting until we can use these.\n var options = activeCall.options,\n flags = activeCall._flags;\n var timeStart = activeCall.timeStart;\n // If this is the first time that this call has been\n // processed by tick() then we assign timeStart now so that\n // it's value is as close to the real animation start time\n // as possible.\n if (!timeStart) {\n var queue = activeCall.queue != null ? activeCall.queue : options.queue;\n timeStart = timeCurrent - deltaTime;\n if (queue !== false) {\n timeStart = Math.max(timeStart, data.lastFinishList[queue] || 0);\n }\n activeCall.timeStart = timeStart;\n }\n // If this animation is paused then skip processing unless\n // it has been set to resume.\n if (flags & 16 /* PAUSED */) {\n // tslint:disable-line:no-bitwise\n // Update the time start to accomodate the paused\n // completion amount.\n activeCall.timeStart += deltaTime;\n continue;\n }\n // Check if this animation is ready - if it's synced then it\n // needs to wait for all other animations in the sync\n if (!(flags & 2 /* READY */)) {\n // tslint:disable-line:no-bitwise\n activeCall._flags |= 2 /* READY */; // tslint:disable-line:no-bitwise\n options._ready++;\n }\n }\n // Need to split the loop, as ready sync animations must all get\n // the same start time.\n for (activeCall = State.first; activeCall && activeCall !== State.firstNew; activeCall = nextCall) {\n var _flags = activeCall._flags;\n nextCall = activeCall._next;\n if (!(_flags & 2 /* READY */) || _flags & 16 /* PAUSED */) {\n // tslint:disable-line:no-bitwise\n continue;\n }\n var _options = activeCall.options;\n if (_flags & 32 /* SYNC */ && _options._ready < _options._total) {\n // tslint:disable-line:no-bitwise\n activeCall.timeStart += deltaTime;\n continue;\n }\n var speed = activeCall.speed != null ? activeCall.speed : _options.speed != null ? _options.speed : defaultSpeed;\n var _timeStart = activeCall.timeStart;\n // Don't bother getting until we can use these.\n if (!(_flags & 4 /* STARTED */)) {\n // tslint:disable-line:no-bitwise\n var delay = activeCall.delay != null ? activeCall.delay : _options.delay;\n // Make sure anything we've delayed doesn't start\n // animating yet, there might still be an active delay\n // after something has been un-paused\n if (delay) {\n if (_timeStart + delay / speed > timeCurrent) {\n continue;\n }\n activeCall.timeStart = _timeStart += delay / (delay > 0 ? speed : 1);\n }\n activeCall._flags |= 4 /* STARTED */; // tslint:disable-line:no-bitwise\n // The begin callback is fired once per call, not once\n // per element, and is passed the full raw DOM element\n // set as both its context and its first argument.\n if (_options._started++ === 0) {\n _options._first = activeCall;\n if (_options.begin) {\n // Pass to an external fn with a try/catch block for optimisation\n beginCall(activeCall);\n // Only called once, even if reversed or repeated\n _options.begin = undefined;\n }\n }\n }\n if (speed !== 1) {\n // On the first frame we may have a shorter delta\n // const delta = Math.min(deltaTime, timeCurrent - timeStart);\n activeCall.timeStart = _timeStart += Math.min(deltaTime, timeCurrent - _timeStart) * (1 - speed);\n }\n var activeEasing = activeCall.easing != null ? activeCall.easing : _options.easing != null ? _options.easing : defaultEasing,\n millisecondsEllapsed = activeCall.ellapsedTime = timeCurrent - _timeStart,\n duration = activeCall.duration != null ? activeCall.duration : _options.duration != null ? _options.duration : defaultDuration,\n percentComplete = activeCall.percentComplete = Velocity$$1.mock ? 1 : Math.min(millisecondsEllapsed / duration, 1),\n tweens = activeCall.tweens,\n reverse = _flags & 64 /* REVERSE */; // tslint:disable-line:no-bitwise\n if (activeCall.progress || _options._first === activeCall && _options.progress) {\n progressed.add(activeCall);\n }\n if (percentComplete === 1) {\n completed.add(activeCall);\n }\n // tslint:disable-next-line:forin\n for (var property in tweens) {\n // For every element, iterate through each property.\n var tween = tweens[property],\n sequence = tween.sequence,\n pattern = sequence.pattern;\n var currentValue = \"\",\n i = 0;\n if (pattern) {\n var easingComplete = (tween.easing || activeEasing)(percentComplete, 0, 1, property);\n var best = 0;\n for (var j = 0; j < sequence.length - 1; j++) {\n if (sequence[j].percent < easingComplete) {\n best = j;\n }\n }\n var tweenFrom = sequence[best],\n tweenTo = sequence[best + 1] || tweenFrom,\n rawPercent = (percentComplete - tweenFrom.percent) / (tweenTo.percent - tweenFrom.percent),\n tweenPercent = reverse ? 1 - rawPercent : rawPercent,\n easing = tweenTo.easing || activeEasing || linearEasing;\n for (; i < pattern.length; i++) {\n var startValue = tweenFrom[i];\n if (startValue == null) {\n currentValue += pattern[i];\n } else {\n var endValue = tweenTo[i];\n if (startValue === endValue) {\n currentValue += startValue;\n } else {\n // All easings must deal with numbers except for our internal ones.\n var result = easing(tweenPercent, startValue, endValue, property);\n currentValue += pattern[i] !== true ? result : Math.round(result);\n }\n }\n }\n if (property !== \"tween\") {\n if (percentComplete === 1) {\n currentValue = removeNestedCalc(currentValue);\n }\n // TODO: To solve an IE<=8 positioning bug, the unit type must be dropped when setting a property value of 0 - add normalisations to legacy\n setPropertyValue(activeCall.element, property, currentValue, tween.fn);\n } else {\n // Skip the fake 'tween' property as that is only\n // passed into the progress callback.\n activeCall.tween = currentValue;\n }\n } else {\n console.warn(\"VelocityJS: Missing pattern:\", property, JSON.stringify(tween[property]));\n delete tweens[property];\n }\n }\n }\n if (progressed.size || completed.size) {\n if (!document.hidden) {\n asyncCallbacks();\n } else if (worker) {\n worker.postMessage(\"\");\n } else {\n setTimeout(asyncCallbacks, 1);\n }\n }\n }\n }\n if (State.first) {\n State.isTicking = true;\n if (!document.hidden) {\n rAFShim(tick);\n } else if (!worker) {\n rAFProxy(tick);\n } else if (timestamp === false) {\n // Make sure we turn on the messages.\n worker.postMessage(true);\n }\n } else {\n State.isTicking = false;\n lastTick = 0;\n if (document.hidden && worker) {\n // Make sure we turn off the messages.\n worker.postMessage(false);\n }\n }\n ticking = false;\n}\n\n// Project\n/**\r\n * Check if an animation should be finished, and if so we set the tweens to\r\n * the final value for it, then call complete.\r\n */\nfunction checkAnimationShouldBeFinished(animation, queueName, defaultQueue) {\n validateTweens(animation);\n if (queueName === undefined || queueName === getValue(animation.queue, animation.options.queue, defaultQueue)) {\n if (!(animation._flags & 4 /* STARTED */)) {\n // tslint:disable-line:no-bitwise\n // Copied from tick.ts - ensure that the animation is completely\n // valid and run begin() before complete().\n var options = animation.options;\n // The begin callback is fired once per call, not once per\n // element, and is passed the full raw DOM element set as both\n // its context and its first argument.\n if (options._started++ === 0) {\n options._first = animation;\n if (options.begin) {\n // Pass to an external fn with a try/catch block for optimisation\n beginCall(animation);\n // Only called once, even if reversed or repeated\n options.begin = undefined;\n }\n }\n animation._flags |= 4 /* STARTED */; // tslint:disable-line:no-bitwise\n }\n // tslint:disable-next-line:forin\n for (var property in animation.tweens) {\n var tween = animation.tweens[property],\n sequence = tween.sequence,\n pattern = sequence.pattern;\n var currentValue = \"\",\n i = 0;\n if (pattern) {\n var endValues = sequence[sequence.length - 1];\n for (; i < pattern.length; i++) {\n var endValue = endValues[i];\n currentValue += endValue == null ? pattern[i] : endValue;\n }\n }\n setPropertyValue(animation.element, property, currentValue, tween.fn);\n }\n completeCall(animation);\n }\n}\n/**\r\n * When the finish action is triggered, the elements' currently active call is\r\n * immediately finished. When an element is finished, the next item in its\r\n * animation queue is immediately triggered. If passed via a chained call\r\n * then this will only target the animations in that call, and not the\r\n * elements linked to it.\r\n *\r\n * A queue name may be passed in to specify that only animations on the\r\n * named queue are finished. The default queue is named \"\". In addition the\r\n * value of `false` is allowed for the queue name.\r\n *\r\n * An final argument may be passed in to clear an element's remaining queued\r\n * calls. This may only be the value `true`.\r\n */\nfunction finish(args, elements, promiseHandler) {\n var queueName = validateQueue(args[0], true),\n defaultQueue = defaults$1.queue,\n finishAll = args[queueName === undefined ? 0 : 1] === true;\n if (isVelocityResult(elements) && elements.velocity.animations) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = elements.velocity.animations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var animation = _step.value;\n\n checkAnimationShouldBeFinished(animation, queueName, defaultQueue);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n } else {\n while (State.firstNew) {\n validateTweens(State.firstNew);\n }\n for (var activeCall = State.first, nextCall; activeCall && (finishAll || activeCall !== State.firstNew); activeCall = nextCall || State.firstNew) {\n nextCall = activeCall._next;\n if (!elements || elements.includes(activeCall.element)) {\n checkAnimationShouldBeFinished(activeCall, queueName, defaultQueue);\n }\n }\n }\n if (promiseHandler) {\n if (isVelocityResult(elements) && elements.velocity.animations && elements.then) {\n elements.then(promiseHandler._resolver);\n } else {\n promiseHandler._resolver(elements);\n }\n }\n}\nregisterAction([\"finish\", finish], true);\n\n/**\r\n * Used to map getters for the various AnimationFlags.\r\n */\nvar animationFlags = {\n isExpanded: 1 /* EXPANDED */\n , isReady: 2 /* READY */\n , isStarted: 4 /* STARTED */\n , isStopped: 8 /* STOPPED */\n , isPaused: 16 /* PAUSED */\n , isSync: 32 /* SYNC */\n , isReverse: 64 /* REVERSE */\n};\n/**\r\n * Get or set an option or running AnimationCall data value. If there is no\r\n * value passed then it will get, otherwise we will set.\r\n *\r\n * NOTE: When using \"get\" this will not touch the Promise as it is never\r\n * returned to the user.\r\n */\nfunction option(args, elements, promiseHandler, action) {\n var key = args[0],\n queue = action.indexOf(\".\") >= 0 ? action.replace(/^.*\\./, \"\") : undefined,\n queueName = queue === \"false\" ? false : validateQueue(queue, true);\n var animations = void 0,\n value = args[1];\n if (!key) {\n console.warn(\"VelocityJS: Cannot access a non-existant key!\");\n return null;\n }\n // If we're chaining the return value from Velocity then we are only\n // interested in the values related to that call\n if (isVelocityResult(elements) && elements.velocity.animations) {\n animations = elements.velocity.animations;\n } else {\n animations = [];\n for (var activeCall = State.first; activeCall; activeCall = activeCall._next) {\n if (elements.indexOf(activeCall.element) >= 0 && getValue(activeCall.queue, activeCall.options.queue) === queueName) {\n animations.push(activeCall);\n }\n }\n // If we're dealing with multiple elements that are pointing at a\n // single running animation, then instead treat them as a single\n // animation.\n if (elements.length > 1 && animations.length > 1) {\n var i = 1,\n options = animations[0].options;\n while (i < animations.length) {\n if (animations[i++].options !== options) {\n options = null;\n break;\n }\n }\n // TODO: this needs to check that they're actually a sync:true animation to merge the results, otherwise the individual values may be different\n if (options) {\n animations = [animations[0]];\n }\n }\n }\n // GET\n if (value === undefined) {\n var result = [],\n flag = animationFlags[key];\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = animations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var animation = _step.value;\n\n if (flag === undefined) {\n // A normal key to get.\n result.push(getValue(animation[key], animation.options[key]));\n } else {\n // A flag that we're checking against.\n result.push((animation._flags & flag) === 0); // tslint:disable-line:no-bitwise\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n if (elements.length === 1 && animations.length === 1) {\n // If only a single animation is found and we're only targetting a\n // single element, then return the value directly\n return result[0];\n }\n return result;\n }\n // SET\n var isPercentComplete = void 0;\n switch (key) {\n case \"cache\":\n value = validateCache(value);\n break;\n case \"begin\":\n value = validateBegin(value);\n break;\n case \"complete\":\n value = validateComplete(value);\n break;\n case \"delay\":\n value = validateDelay(value);\n break;\n case \"duration\":\n value = validateDuration(value);\n break;\n case \"fpsLimit\":\n value = validateFpsLimit(value);\n break;\n case \"loop\":\n value = validateLoop(value);\n break;\n case \"percentComplete\":\n isPercentComplete = true;\n value = parseFloat(value);\n break;\n case \"repeat\":\n case \"repeatAgain\":\n value = validateRepeat(value);\n break;\n default:\n if (key[0] !== \"_\") {\n var num = parseFloat(value);\n if (value === String(num)) {\n value = num;\n }\n break;\n }\n // deliberate fallthrough\n case \"queue\":\n case \"promise\":\n case \"promiseRejectEmpty\":\n case \"easing\":\n case \"started\":\n console.warn(\"VelocityJS: Trying to set a read-only key:\", key);\n return;\n }\n if (value === undefined || value !== value) {\n console.warn(\"VelocityJS: Trying to set an invalid value:\" + key + \"=\" + value + \" (\" + args[1] + \")\");\n return null;\n }\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = animations[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _animation = _step2.value;\n\n if (isPercentComplete) {\n _animation.timeStart = lastTick - getValue(_animation.duration, _animation.options.duration, defaults$1.duration) * value;\n } else {\n _animation[key] = value;\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n if (promiseHandler) {\n if (isVelocityResult(elements) && elements.velocity.animations && elements.then) {\n elements.then(promiseHandler._resolver);\n } else {\n promiseHandler._resolver(elements);\n }\n }\n}\nregisterAction([\"option\", option], true);\n\n// Project\n/**\r\n * Check if an animation should be paused / resumed.\r\n */\nfunction checkAnimation(animation, queueName, defaultQueue, isPaused) {\n if (queueName === undefined || queueName === getValue(animation.queue, animation.options.queue, defaultQueue)) {\n if (isPaused) {\n animation._flags |= 16 /* PAUSED */; // tslint:disable-line:no-bitwise\n } else {\n animation._flags &= ~16 /* PAUSED */; // tslint:disable-line:no-bitwise\n }\n }\n}\n/**\r\n * Pause and Resume are call-wide (not on a per element basis). Thus, calling pause or resume on a\r\n * single element will cause any calls that contain tweens for that element to be paused/resumed\r\n * as well.\r\n */\nfunction pauseResume(args, elements, promiseHandler, action) {\n var isPaused = action.indexOf(\"pause\") === 0,\n queue = action.indexOf(\".\") >= 0 ? action.replace(/^.*\\./, \"\") : undefined,\n queueName = queue === \"false\" ? false : validateQueue(args[0]),\n defaultQueue = defaults$1.queue;\n if (isVelocityResult(elements) && elements.velocity.animations) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = elements.velocity.animations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var animation = _step.value;\n\n checkAnimation(animation, queueName, defaultQueue, isPaused);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n } else {\n var activeCall = State.first;\n while (activeCall) {\n if (!elements || elements.includes(activeCall.element)) {\n checkAnimation(activeCall, queueName, defaultQueue, isPaused);\n }\n activeCall = activeCall._next;\n }\n }\n if (promiseHandler) {\n if (isVelocityResult(elements) && elements.velocity.animations && elements.then) {\n elements.then(promiseHandler._resolver);\n } else {\n promiseHandler._resolver(elements);\n }\n }\n}\nregisterAction([\"pause\", pauseResume], true);\nregisterAction([\"resume\", pauseResume], true);\n\n// Project\n/**\r\n * Get or set a style of Nomralised property value on one or more elements.\r\n * If there is no value passed then it will get, otherwise we will set.\r\n *\r\n * NOTE: When using \"get\" this will not touch the Promise as it is never\r\n * returned to the user.\r\n *\r\n * This can fail to set, and will reject the Promise if it does so.\r\n *\r\n * Velocity(elements, \"style\", \"property\", \"value\") => elements;\r\n * Velocity(elements, \"style\", {\"property\": \"value\", ...}) => elements;\r\n * Velocity(element, \"style\", \"property\") => \"value\";\r\n * Velocity(elements, \"style\", \"property\") => [\"value\", ...];\r\n */\nfunction propertyAction(args, elements, promiseHandler, action) {\n var property = args[0],\n value = args[1];\n if (!property) {\n console.warn(\"VelocityJS: Cannot access a non-existant property!\");\n return null;\n }\n // GET\n if (value === undefined && !isPlainObject(property)) {\n if (Array.isArray(property)) {\n if (elements.length === 1) {\n var result = {};\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = property[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var prop = _step.value;\n\n result[prop] = fixColors(getPropertyValue(elements[0], prop));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return result;\n } else {\n var _result = [];\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = elements[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var element = _step2.value;\n\n var res = {};\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = property[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _prop = _step3.value;\n\n res[_prop] = fixColors(getPropertyValue(element, _prop));\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _result.push(res);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return _result;\n }\n } else {\n // If only a single animation is found and we're only targetting a\n // single element, then return the value directly\n if (elements.length === 1) {\n return fixColors(getPropertyValue(elements[0], property));\n }\n var _result2 = [];\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = elements[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var _element = _step4.value;\n\n _result2.push(fixColors(getPropertyValue(_element, property)));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n return _result2;\n }\n }\n // SET\n var error = [];\n if (isPlainObject(property)) {\n for (var propertyName in property) {\n if (property.hasOwnProperty(propertyName)) {\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = elements[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _element2 = _step5.value;\n\n var propertyValue = property[propertyName];\n if (isString(propertyValue) || isNumber(propertyValue)) {\n setPropertyValue(_element2, propertyName, property[propertyName]);\n } else {\n error.push(\"Cannot set a property \\\"\" + propertyName + \"\\\" to an unknown type: \" + (typeof propertyValue === \"undefined\" ? \"undefined\" : _typeof(propertyValue)));\n console.warn(\"VelocityJS: Cannot set a property \\\"\" + propertyName + \"\\\" to an unknown type:\", propertyValue);\n }\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n }\n }\n } else if (isString(value) || isNumber(value)) {\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = elements[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var _element3 = _step6.value;\n\n setPropertyValue(_element3, property, String(value));\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n } else {\n error.push(\"Cannot set a property \\\"\" + property + \"\\\" to an unknown type: \" + (typeof value === \"undefined\" ? \"undefined\" : _typeof(value)));\n console.warn(\"VelocityJS: Cannot set a property \\\"\" + property + \"\\\" to an unknown type:\", value);\n }\n if (promiseHandler) {\n if (error.length) {\n promiseHandler._rejecter(error.join(\", \"));\n } else if (isVelocityResult(elements) && elements.velocity.animations && elements.then) {\n elements.then(promiseHandler._resolver);\n } else {\n promiseHandler._resolver(elements);\n }\n }\n}\nregisterAction([\"property\", propertyAction], true);\n\n// Project\nregisterAction([\"reverse\", function (args, elements, promiseHandler, action) {\n // NOTE: Code needs to split out before here - but this is needed to prevent it being overridden\n throw new SyntaxError(\"VelocityJS: The 'reverse' action is built in and private.\");\n}], true);\n\n// Project\n/**\r\n * Check if an animation should be stopped, and if so then set the STOPPED\r\n * flag on it, then call complete.\r\n */\nfunction checkAnimationShouldBeStopped(animation, queueName, defaultQueue) {\n validateTweens(animation);\n if (queueName === undefined || queueName === getValue(animation.queue, animation.options.queue, defaultQueue)) {\n animation._flags |= 8 /* STOPPED */; // tslint:disable-line:no-bitwise\n completeCall(animation);\n }\n}\n/**\r\n * When the stop action is triggered, the elements' currently active call is\r\n * immediately stopped. When an element is stopped, the next item in its\r\n * animation queue is immediately triggered. If passed via a chained call\r\n * then this will only target the animations in that call, and not the\r\n * elements linked to it.\r\n *\r\n * A queue name may be passed in to specify that only animations on the\r\n * named queue are stopped. The default queue is named \"\". In addition the\r\n * value of `false` is allowed for the queue name.\r\n *\r\n * An final argument may be passed in to clear an element's remaining queued\r\n * calls. This may only be the value `true`.\r\n *\r\n * Note: The stop command runs prior to Velocity's Queueing phase since its\r\n * behavior is intended to take effect *immediately*, regardless of the\r\n * element's current queue state.\r\n */\nfunction stop(args, elements, promiseHandler, action) {\n var queueName = validateQueue(args[0], true),\n defaultQueue = defaults$1.queue,\n finishAll = args[queueName === undefined ? 0 : 1] === true;\n if (isVelocityResult(elements) && elements.velocity.animations) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = elements.velocity.animations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var animation = _step.value;\n\n checkAnimationShouldBeStopped(animation, queueName, defaultQueue);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n } else {\n while (State.firstNew) {\n validateTweens(State.firstNew);\n }\n for (var activeCall = State.first, nextCall; activeCall && (finishAll || activeCall !== State.firstNew); activeCall = nextCall || State.firstNew) {\n nextCall = activeCall._next;\n if (!elements || elements.includes(activeCall.element)) {\n checkAnimationShouldBeStopped(activeCall, queueName, defaultQueue);\n }\n }\n }\n if (promiseHandler) {\n if (isVelocityResult(elements) && elements.velocity.animations && elements.then) {\n elements.then(promiseHandler._resolver);\n } else {\n promiseHandler._resolver(elements);\n }\n }\n}\nregisterAction([\"stop\", stop], true);\n\n// Project\nregisterAction([\"style\", propertyAction], true);\n\n// Project\n/**\r\n *\r\n */\nfunction tweenAction(args, elements, promiseHandler, action) {\n var requireForcefeeding = void 0;\n if (!elements) {\n if (!args.length) {\n console.info(\"Velocity(, \\\"tween\\\", percentComplete, property, end | [end, , ], ) => value\\nVelocity(, \\\"tween\\\", percentComplete, {property: end | [end, , ], ...}, ) => {property: value, ...}\");\n return null;\n }\n elements = [document.body];\n requireForcefeeding = true;\n } else if (elements.length !== 1) {\n // TODO: Allow more than a single element to return an array of results\n throw new Error(\"VelocityJS: Cannot tween more than one element!\");\n }\n var percentComplete = args[0],\n fakeAnimation = {\n elements: elements,\n element: elements[0],\n queue: false,\n options: {\n duration: 1000\n },\n tweens: null\n },\n result = {};\n var properties = args[1],\n singleResult = void 0,\n maybeSequence = void 0,\n easing = args[2],\n count = 0;\n if (isString(args[1])) {\n if (SequencesObject && SequencesObject[args[1]]) {\n maybeSequence = SequencesObject[args[1]];\n properties = {};\n easing = args[2];\n } else {\n singleResult = true;\n properties = defineProperty({}, args[1], args[2]);\n easing = args[3];\n }\n } else if (Array.isArray(args[1])) {\n singleResult = true;\n properties = {\n tween: args[1]\n };\n easing = args[2];\n }\n if (!isNumber(percentComplete) || percentComplete < 0 || percentComplete > 1) {\n throw new Error(\"VelocityJS: Must tween a percentage from 0 to 1!\");\n }\n if (!isPlainObject(properties)) {\n throw new Error(\"VelocityJS: Cannot tween an invalid property!\");\n }\n if (requireForcefeeding) {\n for (var property in properties) {\n if (properties.hasOwnProperty(property) && (!Array.isArray(properties[property]) || properties[property].length < 2)) {\n throw new Error(\"VelocityJS: When not supplying an element you must force-feed values: \" + property);\n }\n }\n }\n var activeEasing = validateEasing(getValue(easing, defaults$1.easing), DEFAULT_DURATION);\n if (maybeSequence) {\n expandSequence(fakeAnimation, maybeSequence);\n } else {\n expandProperties(fakeAnimation, properties);\n }\n // tslint:disable-next-line:forin\n for (var _property in fakeAnimation.tweens) {\n // For every element, iterate through each property.\n var propertyTween = fakeAnimation.tweens[_property],\n sequence = propertyTween.sequence,\n pattern = sequence.pattern;\n var currentValue = \"\",\n i = 0;\n count++;\n if (pattern) {\n var easingComplete = (propertyTween.easing || activeEasing)(percentComplete, 0, 1, _property);\n var best = 0;\n for (var j = 0; j < sequence.length - 1; j++) {\n if (sequence[j].percent < easingComplete) {\n best = j;\n }\n }\n var tweenFrom = sequence[best],\n tweenTo = sequence[best + 1] || tweenFrom,\n tweenPercent = (percentComplete - tweenFrom.percent) / (tweenTo.percent - tweenFrom.percent),\n tweenEasing = tweenTo.easing || linearEasing;\n for (; i < pattern.length; i++) {\n var startValue = tweenFrom[i];\n if (startValue == null) {\n currentValue += pattern[i];\n } else {\n var endValue = tweenTo[i];\n if (startValue === endValue) {\n currentValue += startValue;\n } else {\n // All easings must deal with numbers except for our internal ones.\n var value = tweenEasing(tweenPercent, startValue, endValue, _property);\n currentValue += pattern[i] === true ? Math.round(value) : value;\n }\n }\n }\n result[_property] = currentValue;\n }\n }\n if (singleResult && count === 1) {\n for (var _property2 in result) {\n if (result.hasOwnProperty(_property2)) {\n return result[_property2];\n }\n }\n }\n return result;\n}\nregisterAction([\"tween\", tweenAction], true);\n\n// Project\n/**\r\n * Converting from hex as it makes for a smaller file.\r\n */\nvar colorValues = {\n aliceblue: 0xF0F8FF,\n antiquewhite: 0xFAEBD7,\n aqua: 0x00FFFF,\n aquamarine: 0x7FFFD4,\n azure: 0xF0FFFF,\n beige: 0xF5F5DC,\n bisque: 0xFFE4C4,\n black: 0x000000,\n blanchedalmond: 0xFFEBCD,\n blue: 0x0000FF,\n blueviolet: 0x8A2BE2,\n brown: 0xA52A2A,\n burlywood: 0xDEB887,\n cadetblue: 0x5F9EA0,\n chartreuse: 0x7FFF00,\n chocolate: 0xD2691E,\n coral: 0xFF7F50,\n cornflowerblue: 0x6495ED,\n cornsilk: 0xFFF8DC,\n crimson: 0xDC143C,\n cyan: 0x00FFFF,\n darkblue: 0x00008B,\n darkcyan: 0x008B8B,\n darkgoldenrod: 0xB8860B,\n darkgray: 0xA9A9A9,\n darkgrey: 0xA9A9A9,\n darkgreen: 0x006400,\n darkkhaki: 0xBDB76B,\n darkmagenta: 0x8B008B,\n darkolivegreen: 0x556B2F,\n darkorange: 0xFF8C00,\n darkorchid: 0x9932CC,\n darkred: 0x8B0000,\n darksalmon: 0xE9967A,\n darkseagreen: 0x8FBC8F,\n darkslateblue: 0x483D8B,\n darkslategray: 0x2F4F4F,\n darkslategrey: 0x2F4F4F,\n darkturquoise: 0x00CED1,\n darkviolet: 0x9400D3,\n deeppink: 0xFF1493,\n deepskyblue: 0x00BFFF,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1E90FF,\n firebrick: 0xB22222,\n floralwhite: 0xFFFAF0,\n forestgreen: 0x228B22,\n fuchsia: 0xFF00FF,\n gainsboro: 0xDCDCDC,\n ghostwhite: 0xF8F8FF,\n gold: 0xFFD700,\n goldenrod: 0xDAA520,\n gray: 0x808080,\n grey: 0x808080,\n green: 0x008000,\n greenyellow: 0xADFF2F,\n honeydew: 0xF0FFF0,\n hotpink: 0xFF69B4,\n indianred: 0xCD5C5C,\n indigo: 0x4B0082,\n ivory: 0xFFFFF0,\n khaki: 0xF0E68C,\n lavender: 0xE6E6FA,\n lavenderblush: 0xFFF0F5,\n lawngreen: 0x7CFC00,\n lemonchiffon: 0xFFFACD,\n lightblue: 0xADD8E6,\n lightcoral: 0xF08080,\n lightcyan: 0xE0FFFF,\n lightgoldenrodyellow: 0xFAFAD2,\n lightgray: 0xD3D3D3,\n lightgrey: 0xD3D3D3,\n lightgreen: 0x90EE90,\n lightpink: 0xFFB6C1,\n lightsalmon: 0xFFA07A,\n lightseagreen: 0x20B2AA,\n lightskyblue: 0x87CEFA,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xB0C4DE,\n lightyellow: 0xFFFFE0,\n lime: 0x00FF00,\n limegreen: 0x32CD32,\n linen: 0xFAF0E6,\n magenta: 0xFF00FF,\n maroon: 0x800000,\n mediumaquamarine: 0x66CDAA,\n mediumblue: 0x0000CD,\n mediumorchid: 0xBA55D3,\n mediumpurple: 0x9370DB,\n mediumseagreen: 0x3CB371,\n mediumslateblue: 0x7B68EE,\n mediumspringgreen: 0x00FA9A,\n mediumturquoise: 0x48D1CC,\n mediumvioletred: 0xC71585,\n midnightblue: 0x191970,\n mintcream: 0xF5FFFA,\n mistyrose: 0xFFE4E1,\n moccasin: 0xFFE4B5,\n navajowhite: 0xFFDEAD,\n navy: 0x000080,\n oldlace: 0xFDF5E6,\n olive: 0x808000,\n olivedrab: 0x6B8E23,\n orange: 0xFFA500,\n orangered: 0xFF4500,\n orchid: 0xDA70D6,\n palegoldenrod: 0xEEE8AA,\n palegreen: 0x98FB98,\n paleturquoise: 0xAFEEEE,\n palevioletred: 0xDB7093,\n papayawhip: 0xFFEFD5,\n peachpuff: 0xFFDAB9,\n peru: 0xCD853F,\n pink: 0xFFC0CB,\n plum: 0xDDA0DD,\n powderblue: 0xB0E0E6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xFF0000,\n rosybrown: 0xBC8F8F,\n royalblue: 0x4169E1,\n saddlebrown: 0x8B4513,\n salmon: 0xFA8072,\n sandybrown: 0xF4A460,\n seagreen: 0x2E8B57,\n seashell: 0xFFF5EE,\n sienna: 0xA0522D,\n silver: 0xC0C0C0,\n skyblue: 0x87CEEB,\n slateblue: 0x6A5ACD,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xFFFAFA,\n springgreen: 0x00FF7F,\n steelblue: 0x4682B4,\n tan: 0xD2B48C,\n teal: 0x008080,\n thistle: 0xD8BFD8,\n tomato: 0xFF6347,\n turquoise: 0x40E0D0,\n violet: 0xEE82EE,\n wheat: 0xF5DEB3,\n white: 0xFFFFFF,\n whitesmoke: 0xF5F5F5,\n yellow: 0xFFFF00,\n yellowgreen: 0x9ACD32\n};\nfor (var name in colorValues) {\n if (colorValues.hasOwnProperty(name)) {\n var color = colorValues[name];\n ColorNames[name] = Math.floor(color / 65536) + \",\" + Math.floor(color / 256 % 256) + \",\" + color % 256;\n }\n}\n\n// Project\nfunction registerBackIn(name, amount) {\n registerEasing([name, function (percentComplete, startValue, endValue) {\n if (percentComplete === 0) {\n return startValue;\n }\n if (percentComplete === 1) {\n return endValue;\n }\n return Math.pow(percentComplete, 2) * ((amount + 1) * percentComplete - amount) * (endValue - startValue);\n }]);\n}\nfunction registerBackOut(name, amount) {\n registerEasing([name, function (percentComplete, startValue, endValue) {\n if (percentComplete === 0) {\n return startValue;\n }\n if (percentComplete === 1) {\n return endValue;\n }\n return (Math.pow(--percentComplete, 2) * ((amount + 1) * percentComplete + amount) + 1) * (endValue - startValue);\n }]);\n}\nfunction registerBackInOut(name, amount) {\n amount *= 1.525;\n registerEasing([name, function (percentComplete, startValue, endValue) {\n if (percentComplete === 0) {\n return startValue;\n }\n if (percentComplete === 1) {\n return endValue;\n }\n percentComplete *= 2;\n return (percentComplete < 1 ? Math.pow(percentComplete, 2) * ((amount + 1) * percentComplete - amount) : Math.pow(percentComplete - 2, 2) * ((amount + 1) * (percentComplete - 2) + amount) + 2) * 0.5 * (endValue - startValue);\n }]);\n}\nregisterBackIn(\"easeInBack\", 1.7);\nregisterBackOut(\"easeOutBack\", 1.7);\nregisterBackInOut(\"easeInOutBack\", 1.7);\n// TODO: Expose these as actions to register custom easings?\n\n// Project\nfunction easeOutBouncePercent(percentComplete) {\n if (percentComplete < 1 / 2.75) {\n return 7.5625 * percentComplete * percentComplete;\n }\n if (percentComplete < 2 / 2.75) {\n return 7.5625 * (percentComplete -= 1.5 / 2.75) * percentComplete + 0.75;\n }\n if (percentComplete < 2.5 / 2.75) {\n return 7.5625 * (percentComplete -= 2.25 / 2.75) * percentComplete + 0.9375;\n }\n return 7.5625 * (percentComplete -= 2.625 / 2.75) * percentComplete + 0.984375;\n}\nfunction easeInBouncePercent(percentComplete) {\n return 1 - easeOutBouncePercent(1 - percentComplete);\n}\nfunction easeInBounce(percentComplete, startValue, endValue) {\n if (percentComplete === 0) {\n return startValue;\n }\n if (percentComplete === 1) {\n return endValue;\n }\n return easeInBouncePercent(percentComplete) * (endValue - startValue);\n}\nfunction easeOutBounce(percentComplete, startValue, endValue) {\n if (percentComplete === 0) {\n return startValue;\n }\n if (percentComplete === 1) {\n return endValue;\n }\n return easeOutBouncePercent(percentComplete) * (endValue - startValue);\n}\nfunction easeInOutBounce(percentComplete, startValue, endValue) {\n if (percentComplete === 0) {\n return startValue;\n }\n if (percentComplete === 1) {\n return endValue;\n }\n return (percentComplete < 0.5 ? easeInBouncePercent(percentComplete * 2) * 0.5 : easeOutBouncePercent(percentComplete * 2 - 1) * 0.5 + 0.5) * (endValue - startValue);\n}\nregisterEasing([\"easeInBounce\", easeInBounce]);\nregisterEasing([\"easeOutBounce\", easeOutBounce]);\nregisterEasing([\"easeInOutBounce\", easeInOutBounce]);\n\n// Project\n// Constants\nvar PI2 = Math.PI * 2;\nfunction registerElasticIn(name, amplitude, period) {\n registerEasing([name, function (percentComplete, startValue, endValue) {\n if (percentComplete === 0) {\n return startValue;\n }\n if (percentComplete === 1) {\n return endValue;\n }\n return -(amplitude * Math.pow(2, 10 * (percentComplete -= 1)) * Math.sin((percentComplete - period / PI2 * Math.asin(1 / amplitude)) * PI2 / period)) * (endValue - startValue);\n }]);\n}\nfunction registerElasticOut(name, amplitude, period) {\n registerEasing([name, function (percentComplete, startValue, endValue) {\n if (percentComplete === 0) {\n return startValue;\n }\n if (percentComplete === 1) {\n return endValue;\n }\n return (amplitude * Math.pow(2, -10 * percentComplete) * Math.sin((percentComplete - period / PI2 * Math.asin(1 / amplitude)) * PI2 / period) + 1) * (endValue - startValue);\n }]);\n}\nfunction registerElasticInOut(name, amplitude, period) {\n registerEasing([name, function (percentComplete, startValue, endValue) {\n if (percentComplete === 0) {\n return startValue;\n }\n if (percentComplete === 1) {\n return endValue;\n }\n var s = period / PI2 * Math.asin(1 / amplitude);\n percentComplete = percentComplete * 2 - 1;\n return (percentComplete < 0 ? -0.5 * (amplitude * Math.pow(2, 10 * percentComplete) * Math.sin((percentComplete - s) * PI2 / period)) : amplitude * Math.pow(2, -10 * percentComplete) * Math.sin((percentComplete - s) * PI2 / period) * 0.5 + 1) * (endValue - startValue);\n }]);\n}\nregisterElasticIn(\"easeInElastic\", 1, 0.3);\nregisterElasticOut(\"easeOutElastic\", 1, 0.3);\nregisterElasticInOut(\"easeInOutElastic\", 1, 0.3 * 1.5);\n// TODO: Expose these as actions to register custom easings?\n\n// Project\n/**\r\n * Easing function that sets to the specified value immediately after the\r\n * animation starts.\r\n */\nfunction atStart(percentComplete, startValue, endValue) {\n return percentComplete === 0 ? startValue : endValue;\n}\n/**\r\n * Easing function that sets to the specified value while the animation is\r\n * running.\r\n */\nfunction during(percentComplete, startValue, endValue) {\n return percentComplete === 0 || percentComplete === 1 ? startValue : endValue;\n}\n/**\r\n * Easing function that sets to the specified value when the animation ends.\r\n */\nfunction atEnd(percentComplete, startValue, endValue) {\n return percentComplete === 1 ? endValue : startValue;\n}\nregisterEasing([\"at-start\", atStart]);\nregisterEasing([\"during\", during]);\nregisterEasing([\"at-end\", atEnd]);\n\n// Project\n/**\r\n * Get/set the inner/outer dimension.\r\n */\nfunction getDimension(name, wantInner) {\n return function (element, propertyValue) {\n if (propertyValue === undefined) {\n return augmentDimension(element, name, wantInner) + \"px\";\n }\n setPropertyValue(element, name, parseFloat(propertyValue) - augmentDimension(element, name, wantInner) + \"px\");\n };\n}\nregisterNormalization([\"Element\", \"innerWidth\", getDimension(\"width\", true)]);\nregisterNormalization([\"Element\", \"innerHeight\", getDimension(\"height\", true)]);\nregisterNormalization([\"Element\", \"outerWidth\", getDimension(\"width\", false)]);\nregisterNormalization([\"Element\", \"outerHeight\", getDimension(\"height\", false)]);\n\n// Project\n// Constants\nvar inlineRx = /^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|let|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i,\n listItemRx = /^(li)$/i,\n tableRowRx = /^(tr)$/i,\n tableRx = /^(table)$/i,\n tableRowGroupRx = /^(tbody)$/i;\nfunction display(element, propertyValue) {\n var style = element.style;\n if (propertyValue === undefined) {\n return computePropertyValue(element, \"display\");\n }\n if (propertyValue === \"auto\") {\n var nodeName = element && element.nodeName,\n data = Data(element);\n if (inlineRx.test(nodeName)) {\n propertyValue = \"inline\";\n } else if (listItemRx.test(nodeName)) {\n propertyValue = \"list-item\";\n } else if (tableRowRx.test(nodeName)) {\n propertyValue = \"table-row\";\n } else if (tableRx.test(nodeName)) {\n propertyValue = \"table\";\n } else if (tableRowGroupRx.test(nodeName)) {\n propertyValue = \"table-row-group\";\n } else {\n // Default to \"block\" when no match is found.\n propertyValue = \"block\";\n }\n // IMPORTANT: We need to do this as getPropertyValue bypasses the\n // Normalisation when it exists in the cache.\n data.cache[\"display\"] = propertyValue;\n }\n style.display = propertyValue;\n}\nregisterNormalization([\"Element\", \"display\", display]);\n\n// Project\nfunction clientWidth(element, propertyValue) {\n if (propertyValue == null) {\n return element.clientWidth + \"px\";\n }\n}\nfunction scrollWidth(element, propertyValue) {\n if (propertyValue == null) {\n return element.scrollWidth + \"px\";\n }\n}\nfunction clientHeight(element, propertyValue) {\n if (propertyValue == null) {\n return element.clientHeight + \"px\";\n }\n}\nfunction scrollHeight(element, propertyValue) {\n if (propertyValue == null) {\n return element.scrollHeight + \"px\";\n }\n}\nfunction scroll(direction, end) {\n return function (element, propertyValue) {\n if (propertyValue == null) {\n // Make sure we have these values cached.\n getPropertyValue(element, \"client\" + direction, null, true);\n getPropertyValue(element, \"scroll\" + direction, null, true);\n return element[\"scroll\" + end] + \"px\";\n }\n var value = parseFloat(propertyValue),\n unit = propertyValue.replace(String(value), \"\");\n switch (unit) {\n case \"\":\n case \"px\":\n element[\"scroll\" + end] = value;\n break;\n case \"%\":\n var client = parseFloat(getPropertyValue(element, \"client\" + direction)),\n scrollValue = parseFloat(getPropertyValue(element, \"scroll\" + direction));\n element[\"scroll\" + end] = Math.max(0, scrollValue - client) * value / 100;\n break;\n }\n };\n}\nregisterNormalization([\"HTMLElement\", \"scroll\", scroll(\"Height\", \"Top\"), false]);\nregisterNormalization([\"HTMLElement\", \"scrollTop\", scroll(\"Height\", \"Top\"), false]);\nregisterNormalization([\"HTMLElement\", \"scrollLeft\", scroll(\"Width\", \"Left\"), false]);\nregisterNormalization([\"HTMLElement\", \"scrollWidth\", scrollWidth]);\nregisterNormalization([\"HTMLElement\", \"clientWidth\", clientWidth]);\nregisterNormalization([\"HTMLElement\", \"scrollHeight\", scrollHeight]);\nregisterNormalization([\"HTMLElement\", \"clientHeight\", clientHeight]);\n\n// Project\n/**\r\n * An RegExp pattern for the following list of css words using\r\n * http://kemio.com.ar/tools/lst-trie-re.php to generate:\r\n *\r\n * blockSize\r\n * borderBottomLeftRadius\r\n * borderBottomRightRadius\r\n * borderBottomWidth\r\n * borderImageOutset\r\n * borderImageWidth\r\n * borderLeftWidth\r\n * borderRadius\r\n * borderRightWidth\r\n * borderSpacing\r\n * borderTopLeftRadius\r\n * borderTopRightRadius\r\n * borderTopWidth\r\n * borderWidth\r\n * bottom\r\n * columnGap\r\n * columnRuleWidth\r\n * columnWidth\r\n * flexBasis\r\n * fontSize\r\n * gridColumnGap\r\n * gridGap\r\n * gridRowGap\r\n * height\r\n * inlineSize\r\n * left\r\n * letterSpacing\r\n * margin\r\n * marginBottom\r\n * marginLeft\r\n * marginRight\r\n * marginTop\r\n * maxBlockSize\r\n * maxHeight\r\n * maxInlineSize\r\n * maxWidth\r\n * minBlockSize\r\n * minHeight\r\n * minInlineSize\r\n * minWidth\r\n * objectPosition\r\n * outlineOffset\r\n * outlineWidth\r\n * padding\r\n * paddingBottom\r\n * paddingLeft\r\n * paddingRight\r\n * paddingTop\r\n * perspective\r\n * right\r\n * shapeMargin\r\n * strokeDashoffset\r\n * strokeWidth\r\n * textIndent\r\n * top\r\n * transformOrigin\r\n * width\r\n * wordSpacing\r\n */\n// tslint:disable-next-line:max-line-length\nvar rxAddPx = /^(b(lockSize|o(rder(Bottom(LeftRadius|RightRadius|Width)|Image(Outset|Width)|LeftWidth|R(adius|ightWidth)|Spacing|Top(LeftRadius|RightRadius|Width)|Width)|ttom))|column(Gap|RuleWidth|Width)|f(lexBasis|ontSize)|grid(ColumnGap|Gap|RowGap)|height|inlineSize|le(ft|tterSpacing)|m(a(rgin(Bottom|Left|Right|Top)|x(BlockSize|Height|InlineSize|Width))|in(BlockSize|Height|InlineSize|Width))|o(bjectPosition|utline(Offset|Width))|p(adding(Bottom|Left|Right|Top)|erspective)|right|s(hapeMargin|troke(Dashoffset|Width))|t(extIndent|op|ransformOrigin)|w(idth|ordSpacing))$/;\n/**\r\n * Return a Normalisation that can be used to set / get a prefixed style\r\n * property.\r\n */\nfunction getSetPrefixed(propertyName, unprefixed) {\n return function (element, propertyValue) {\n if (propertyValue === undefined) {\n return computePropertyValue(element, propertyName) || computePropertyValue(element, unprefixed);\n }\n element.style[propertyName] = element.style[unprefixed] = propertyValue;\n };\n}\n/**\r\n * Return a Normalisation that can be used to set / get a style property.\r\n */\nfunction getSetStyle(propertyName) {\n return function (element, propertyValue) {\n if (propertyValue === undefined) {\n return computePropertyValue(element, propertyName);\n }\n element.style[propertyName] = propertyValue;\n };\n}\n/**\r\n * Vendor prefixes. Chrome / Safari, Firefox, IE / Edge, Opera.\r\n */\nvar rxVendors = /^(webkit|moz|ms|o)[A-Z]/,\n prefixElement = State.prefixElement;\nif (prefixElement) {\n for (var propertyName in prefixElement.style) {\n if (rxVendors.test(propertyName)) {\n var unprefixed = propertyName.replace(/^[a-z]+([A-Z])/, function ($, letter) {\n return letter.toLowerCase();\n });\n {\n var addUnit = rxAddPx.test(unprefixed) ? \"px\" : undefined;\n registerNormalization([\"Element\", unprefixed, getSetPrefixed(propertyName, unprefixed), addUnit]);\n }\n } else if (!hasNormalization([\"Element\", propertyName])) {\n var _addUnit = rxAddPx.test(propertyName) ? \"px\" : undefined;\n registerNormalization([\"Element\", propertyName, getSetStyle(propertyName), _addUnit]);\n }\n }\n}\n\n// Project\n/**\r\n * Get/set an attribute.\r\n */\nfunction getAttribute(name) {\n return function (element, propertyValue) {\n if (propertyValue === undefined) {\n return element.getAttribute(name);\n }\n element.setAttribute(name, propertyValue);\n };\n}\nvar base = document.createElement(\"div\"),\n rxSubtype = /^SVG(.*)Element$/,\n rxElement = /Element$/;\nObject.getOwnPropertyNames(window).forEach(function (property) {\n var subtype = rxSubtype.exec(property);\n if (subtype && subtype[1] !== \"SVG\") {\n // Don't do SVGSVGElement.\n try {\n var element = subtype[1] ? document.createElementNS(\"http://www.w3.org/2000/svg\", (subtype[1] || \"svg\").toLowerCase()) : document.createElement(\"svg\");\n // tslint:disable-next-line:forin\n for (var attribute in element) {\n // Although this isn't a tween without prototypes, we do\n // want to get hold of all attributes and not just own ones.\n var value = element[attribute];\n if (isString(attribute) && !(attribute[0] === \"o\" && attribute[1] === \"n\") && attribute !== attribute.toUpperCase() && !rxElement.test(attribute) && !(attribute in base) && !isFunction(value)) {\n // TODO: Should this all be set on the generic SVGElement, it would save space and time, but not as powerful\n registerNormalization([property, attribute, getAttribute(attribute)]);\n }\n }\n } catch (e) {\n console.error(\"VelocityJS: Error when trying to identify SVG attributes on \" + property + \".\", e);\n }\n }\n});\n\n// Project\n/**\r\n * Get/set the width or height.\r\n */\nfunction getDimension$1(name) {\n return function (element, propertyValue) {\n if (propertyValue === undefined) {\n // Firefox throws an error if .getBBox() is called on an SVG that isn't attached to the DOM.\n try {\n return element.getBBox()[name] + \"px\";\n } catch (e) {\n return \"0px\";\n }\n }\n element.setAttribute(name, propertyValue);\n };\n}\nregisterNormalization([\"SVGElement\", \"width\", getDimension$1(\"width\")]);\nregisterNormalization([\"SVGElement\", \"height\", getDimension$1(\"height\")]);\n\n// Project\n/**\r\n * A fake normalization used to allow the \"tween\" property easy access.\r\n */\nfunction getSetTween(element, propertyValue) {\n if (propertyValue === undefined) {\n return \"\";\n }\n}\nregisterNormalization([\"Element\", \"tween\", getSetTween]);\n\n// Automatically generated\nvar VERSION = \"2.0.6\";\n\n// Project\nvar Velocity$$1 = Velocity$1;\n/**\r\n * These parts of Velocity absolutely must be included, even if they're unused!\r\n */\nvar VelocityStatic;\n(function (VelocityStatic) {\n /**\r\n * Actions cannot be replaced if they are internal (hasOwnProperty is false\r\n * but they still exist). Otherwise they can be replaced by users.\r\n *\r\n * All external method calls should be using actions rather than sub-calls\r\n * of Velocity itself.\r\n */\n VelocityStatic.Actions = Actions;\n /**\r\n * Our known easing functions.\r\n */\n VelocityStatic.Easings = Easings;\n /**\r\n * The currently registered sequences.\r\n */\n VelocityStatic.Sequences = SequencesObject;\n /**\r\n * Current internal state of Velocity.\r\n */\n VelocityStatic.State = State; // tslint:disable-line:no-shadowed-variable\n /**\r\n * Velocity option defaults, which can be overriden by the user.\r\n */\n VelocityStatic.defaults = defaults$1;\n /**\r\n * Used to patch any object to allow Velocity chaining. In order to chain an\r\n * object must either be treatable as an array - with a .length\r\n * property, and each member a Node, or a Node directly.\r\n *\r\n * By default Velocity will try to patch window,\r\n * jQuery, Zepto, and several classes that return\r\n * Nodes or lists of Nodes.\r\n */\n VelocityStatic.patch = patch;\n /**\r\n * Set to true, 1 or 2 (most verbose) to output debug info to console.\r\n */\n VelocityStatic.debug = false;\n /**\r\n * In mock mode, all animations are forced to complete immediately upon the\r\n * next rAF tick. If there are further animations queued then they will each\r\n * take one single frame in turn. Loops and repeats will be disabled while\r\n * mock = true.\r\n */\n VelocityStatic.mock = false;\n /**\r\n * Save our version number somewhere visible.\r\n */\n VelocityStatic.version = VERSION;\n /**\r\n * Added as a fallback for \"import {Velocity} from 'velocity-animate';\".\r\n */\n VelocityStatic.Velocity = Velocity$1; // tslint:disable-line:no-shadowed-variable\n})(VelocityStatic || (VelocityStatic = {}));\n/* IE detection. Gist: https://gist.github.com/julianshapiro/9098609 */\nvar IE = function () {\n if (document.documentMode) {\n return document.documentMode;\n } else {\n for (var i = 7; i > 4; i--) {\n var div = document.createElement(\"div\");\n div.innerHTML = \"\";\n if (div.getElementsByTagName(\"span\").length) {\n div = null;\n return i;\n }\n }\n }\n return undefined;\n}();\n/******************\r\n Unsupported\r\n ******************/\nif (IE <= 8) {\n throw new Error(\"VelocityJS cannot run on Internet Explorer 8 or earlier\");\n}\n/******************\r\n Frameworks\r\n ******************/\nif (window) {\n /*\r\n * Both jQuery and Zepto allow their $.fn object to be extended to allow\r\n * wrapped elements to be subjected to plugin calls. If either framework is\r\n * loaded, register a \"velocity\" extension pointing to Velocity's core\r\n * animate() method. Velocity also registers itself onto a global container\r\n * (window.jQuery || window.Zepto || window) so that certain features are\r\n * accessible beyond just a per-element scope. Accordingly, Velocity can\r\n * both act on wrapped DOM elements and stand alone for targeting raw DOM\r\n * elements.\r\n */\n var jQuery = window.jQuery,\n Zepto = window.Zepto;\n patch(window, true);\n patch(Element && Element.prototype);\n patch(NodeList && NodeList.prototype);\n patch(HTMLCollection && HTMLCollection.prototype);\n patch(jQuery, true);\n patch(jQuery && jQuery.fn);\n patch(Zepto, true);\n patch(Zepto && Zepto.fn);\n}\n// Make sure that the values within Velocity are read-only and upatchable.\n\nvar _loop = function _loop(property) {\n if (VelocityStatic.hasOwnProperty(property)) {\n switch (typeof property === \"undefined\" ? \"undefined\" : _typeof(property)) {\n case \"number\":\n case \"boolean\":\n defineProperty$1(Velocity$$1, property, {\n get: function get$$1() {\n return VelocityStatic[property];\n },\n set: function set$$1(value) {\n VelocityStatic[property] = value;\n }\n }, true);\n break;\n default:\n defineProperty$1(Velocity$$1, property, VelocityStatic[property], true);\n break;\n }\n }\n};\n\nfor (var property in VelocityStatic) {\n _loop(property);\n}\nObject.freeze(Velocity$$1);\n\n// Project\nvar rxPercents = /(\\d*\\.\\d+|\\d+\\.?|from|to)/g;\nfunction expandSequence(animation, sequence) {\n var tweens = animation.tweens = Object.create(null),\n element = animation.element;\n for (var propertyName in sequence.tweens) {\n if (sequence.tweens.hasOwnProperty(propertyName)) {\n var fn = getNormalization(element, propertyName);\n if (!fn && propertyName !== \"tween\") {\n if (Velocity$$1.debug) {\n console.log(\"Skipping [\" + propertyName + \"] due to a lack of browser support.\");\n }\n continue;\n }\n tweens[propertyName] = {\n fn: fn,\n sequence: sequence.tweens[propertyName]\n };\n }\n }\n}\n/**\r\n * Used to register a sequence. This should never be called by users\r\n * directly, instead it should be called via an action:
\r\n * Velocity(\"registerSequence\", \"\"name\", VelocitySequence);\r\n */\nfunction registerSequence(args) {\n if (isPlainObject(args[0])) {\n for (var name in args[0]) {\n if (args[0].hasOwnProperty(name)) {\n registerSequence([name, args[0][name]]);\n }\n }\n } else if (isString(args[0])) {\n var _name = args[0],\n sequence = args[1];\n if (!isString(_name)) {\n console.warn(\"VelocityJS: Trying to set 'registerSequence' name to an invalid value:\", _name);\n } else if (!isPlainObject(sequence)) {\n console.warn(\"VelocityJS: Trying to set 'registerSequence' sequence to an invalid value:\", _name, sequence);\n } else {\n if (SequencesObject[_name]) {\n console.warn(\"VelocityJS: Replacing named sequence:\", _name);\n }\n var percents = {},\n steps = new Array(100),\n properties = [],\n sequenceList = SequencesObject[_name] = {},\n duration = validateDuration(sequence.duration);\n sequenceList.tweens = {};\n if (isNumber(duration)) {\n sequenceList.duration = duration;\n }\n for (var part in sequence) {\n if (sequence.hasOwnProperty(part)) {\n var keys = String(part).match(rxPercents);\n if (keys) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var key = _step.value;\n\n var percent = key === \"from\" ? 0 : key === \"to\" ? 100 : parseFloat(key);\n if (percent < 0 || percent > 100) {\n console.warn(\"VelocityJS: Trying to use an invalid value as a percentage (0 <= n <= 100):\", _name, percent);\n } else if (isNaN(percent)) {\n console.warn(\"VelocityJS: Trying to use an invalid number as a percentage:\", _name, part, key);\n } else {\n if (!percents[String(percent)]) {\n percents[String(percent)] = [];\n }\n percents[String(percent)].push(part);\n for (var property in sequence[part]) {\n if (!properties.includes(property)) {\n properties.push(property);\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }\n }\n var orderedPercents = Object.keys(percents).sort(function (a, b) {\n var a1 = parseFloat(a),\n b1 = parseFloat(b);\n return a1 > b1 ? 1 : a1 < b1 ? -1 : 0;\n });\n orderedPercents.forEach(function (key) {\n steps.push.apply(percents[key]);\n });\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = properties[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _property = _step2.value;\n\n var parts = [],\n propertyName = camelCase(_property);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = orderedPercents[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _key = _step3.value;\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = percents[_key][Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var _value = _step6.value;\n\n var stepProperties = sequence[_value];\n if (stepProperties[propertyName]) {\n parts.push(isString(stepProperties[propertyName]) ? stepProperties[propertyName] : stepProperties[propertyName][0]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n if (parts.length) {\n var realSequence = findPattern(parts, propertyName);\n var index = 0;\n if (realSequence) {\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = orderedPercents[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var _key2 = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = percents[_key2][Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var value = _step5.value;\n\n var originalProperty = sequence[value][propertyName];\n if (originalProperty) {\n if (Array.isArray(originalProperty) && originalProperty.length > 1 && (isString(originalProperty[1]) || Array.isArray(originalProperty[1]))) {\n realSequence[index].easing = validateEasing(originalProperty[1], sequenceList.duration || DEFAULT_DURATION);\n }\n realSequence[index++].percent = parseFloat(_key2) / 100;\n }\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n sequenceList.tweens[propertyName] = realSequence;\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n }\n}\nregisterAction([\"registerSequence\", registerSequence], true);\n\n// Project\nvar globalPromise = void 0;\ntry {\n globalPromise = Promise;\n} catch ( /**/_a) {/**/}\nvar noPromiseOption = \", if that is deliberate then pass `promiseRejectEmpty:false` as an option\";\n/**\r\n * Patch a VelocityResult with a Promise.\r\n */\nfunction patchPromise(promiseObject, result) {\n defineProperty$1(result, \"promise\", promiseObject);\n defineProperty$1(result, \"then\", promiseObject.then.bind(promiseObject));\n defineProperty$1(result, \"catch\", promiseObject.catch.bind(promiseObject));\n if (promiseObject.finally) {\n // Semi-standard\n defineProperty$1(result, \"finally\", promiseObject.finally.bind(promiseObject));\n }\n}\n/* tslint:enable:max-line-length */\nfunction Velocity$1() {\n var\n /**\r\n * A shortcut to the default options.\r\n */\n defaults$$1 = defaults$1,\n\n /**\r\n * Cache of the first argument - this is used often enough to be saved.\r\n */\n args0 = arguments.length <= 0 ? undefined : arguments[0],\n\n /**\r\n * To allow for expressive CoffeeScript code, Velocity supports an\r\n * alternative syntax in which \"elements\" (or \"e\"), \"properties\" (or\r\n * \"p\"), and \"options\" (or \"o\") objects are defined on a container\r\n * object that's passed in as Velocity's sole argument.\r\n *\r\n * Note: Some browsers automatically populate arguments with a\r\n * \"properties\" object. We detect it by checking for its default\r\n * \"names\" property.\r\n */\n // TODO: Confirm which browsers - if <=IE8 the we can drop completely\n syntacticSugar = isPlainObject(args0) && (args0.p || isPlainObject(args0.properties) && !args0.properties.names || isString(args0.properties));\n var\n /**\r\n * When Velocity is called via the utility function (Velocity()),\r\n * elements are explicitly passed in as the first parameter. Thus,\r\n * argument positioning varies.\r\n */\n argumentIndex = 0,\n\n /**\r\n * The list of elements, extended with Promise and Velocity.\r\n */\n elements = void 0,\n\n /**\r\n * The properties being animated. This can be a string, in which case it\r\n * is either a function for these elements, or it is a \"named\" animation\r\n * sequence to use instead. Named sequences start with either \"callout.\"\r\n * or \"transition.\". When used as a callout the values will be reset\r\n * after finishing. When used as a transtition then there is no special\r\n * handling after finishing.\r\n */\n propertiesMap = void 0,\n\n /**\r\n * Options supplied, this will be mapped and validated into\r\n * options.\r\n */\n optionsMap = void 0,\n\n /**\r\n * If called via a chain then this contains the last calls\r\n * animations. If this does not have a value then any access to the\r\n * element's animations needs to be to the currently-running ones.\r\n */\n animations = void 0,\n\n /**\r\n * The promise that is returned.\r\n */\n promise = void 0,\n\n // Used when the animation is finished\n resolver = void 0,\n\n // Used when there was an issue with one or more of the Velocity arguments\n rejecter = void 0;\n //console.log(`Velocity`, args)\n // First get the elements, and the animations connected to the last call if\n // this is chained.\n // TODO: Clean this up a bit\n // TODO: Throw error if the chain is called with elements as the first argument. isVelocityResult(this) && ( (isNode(arg0) || isWrapped(arg0)) && arg0 == this)\n if (isNode(this)) {\n // This is from a chain such as document.getElementById(\"\").velocity(...)\n elements = [this];\n } else if (isWrapped(this)) {\n // This might be a chain from something else, but if chained from a\n // previous Velocity() call then grab the animations it's related to.\n elements = cloneArray(this);\n if (isVelocityResult(this)) {\n animations = this.velocity.animations;\n }\n } else if (syntacticSugar) {\n elements = cloneArray(args0.elements || args0.e);\n argumentIndex++;\n } else if (isNode(args0)) {\n elements = cloneArray([args0]);\n argumentIndex++;\n } else if (isWrapped(args0)) {\n elements = cloneArray(args0);\n argumentIndex++;\n }\n // Allow elements to be chained.\n if (elements) {\n defineProperty$1(elements, \"velocity\", Velocity$1.bind(elements));\n if (animations) {\n defineProperty$1(elements.velocity, \"animations\", animations);\n }\n }\n // Next get the propertiesMap and options.\n if (syntacticSugar) {\n propertiesMap = getValue(args0.properties, args0.p);\n } else {\n var _ref;\n\n // TODO: Should be possible to call Velocity(\"pauseAll\") - currently not possible\n propertiesMap = (_ref = argumentIndex++, arguments.length <= _ref ? undefined : arguments[_ref]);\n }\n // Get any options map passed in as arguments first, expand any direct\n // options if possible.\n var isReverse = propertiesMap === \"reverse\",\n isAction = !isReverse && isString(propertiesMap),\n maybeSequence = isAction && SequencesObject[propertiesMap],\n opts = syntacticSugar ? getValue(args0.options, args0.o) : arguments.length <= argumentIndex ? undefined : arguments[argumentIndex];\n if (isPlainObject(opts)) {\n optionsMap = opts;\n }\n // Create the promise if supported and wanted.\n if (globalPromise && getValue(optionsMap && optionsMap.promise, defaults$$1.promise)) {\n promise = new globalPromise(function (resolve, reject) {\n rejecter = reject;\n // IMPORTANT:\n // If a resolver tries to run on a Promise then it will wait until\n // that Promise resolves - but in this case we're running on our own\n // Promise, so need to make sure it's not seen as one. Removing\n // these values for the duration of the resolve.\n // Due to being an async call, they should be back to \"normal\"\n // before the .then() function gets called.\n resolver = function resolver(result) {\n if (isVelocityResult(result) && result.promise) {\n delete result.then;\n delete result.catch;\n delete result.finally;\n resolve(result);\n patchPromise(result.promise, result);\n } else {\n resolve(result);\n }\n };\n });\n if (elements) {\n patchPromise(promise, elements);\n }\n }\n if (promise) {\n var optionPromiseRejectEmpty = optionsMap && optionsMap.promiseRejectEmpty,\n promiseRejectEmpty = getValue(optionPromiseRejectEmpty, defaults$$1.promiseRejectEmpty);\n if (!elements && !isAction) {\n if (promiseRejectEmpty) {\n rejecter(\"Velocity: No elements supplied\" + (isBoolean(optionPromiseRejectEmpty) ? \"\" : noPromiseOption) + \". Aborting.\");\n } else {\n resolver();\n }\n } else if (!propertiesMap) {\n if (promiseRejectEmpty) {\n rejecter(\"Velocity: No properties supplied\" + (isBoolean(optionPromiseRejectEmpty) ? \"\" : noPromiseOption) + \". Aborting.\");\n } else {\n resolver();\n }\n }\n }\n if (!elements && !isAction || !propertiesMap) {\n return promise;\n }\n // NOTE: Can't use isAction here due to type inference - there are callbacks\n // between so the type isn't considered safe.\n if (isAction) {\n var actionArgs = [],\n promiseHandler = promise && {\n _promise: promise,\n _resolver: resolver,\n _rejecter: rejecter\n };\n while (argumentIndex < arguments.length) {\n var _ref2;\n\n actionArgs.push((_ref2 = argumentIndex++, arguments.length <= _ref2 ? undefined : arguments[_ref2]));\n }\n // Velocity's behavior is categorized into \"actions\". If a string is\n // passed in instead of a propertiesMap then that will call a function\n // to do something special to the animation linked.\n // There is one special case - \"reverse\" - which is handled differently,\n // by being stored on the animation and then expanded when the animation\n // starts.\n var action = propertiesMap.replace(/\\..*$/, \"\"),\n callback = Actions[action];\n if (callback) {\n var result = callback(actionArgs, elements, promiseHandler, propertiesMap);\n if (result !== undefined) {\n return result;\n }\n return elements || promise;\n } else if (!maybeSequence) {\n console.error(\"VelocityJS: First argument (\" + propertiesMap + \") was not a property map, a known action, or a registered redirect. Aborting.\");\n return;\n }\n }\n var hasValidDuration = void 0;\n if (isPlainObject(propertiesMap) || isReverse || maybeSequence) {\n /**\r\n * The options for this set of animations.\r\n */\n var options = {};\n var isSync = defaults$$1.sync;\n // Private options first - set as non-enumerable, and starting with an\n // underscore so we can filter them out.\n if (promise) {\n defineProperty$1(options, \"_promise\", promise);\n defineProperty$1(options, \"_rejecter\", rejecter);\n defineProperty$1(options, \"_resolver\", resolver);\n }\n defineProperty$1(options, \"_ready\", 0);\n defineProperty$1(options, \"_started\", 0);\n defineProperty$1(options, \"_completed\", 0);\n defineProperty$1(options, \"_total\", 0);\n // Now check the optionsMap\n if (isPlainObject(optionsMap)) {\n var validDuration = validateDuration(optionsMap.duration);\n hasValidDuration = validDuration !== undefined;\n options.duration = getValue(validDuration, defaults$$1.duration);\n options.delay = getValue(validateDelay(optionsMap.delay), defaults$$1.delay);\n // Need the extra fallback here in case it supplies an invalid\n // easing that we need to overrride with the default.\n options.easing = validateEasing(getValue(optionsMap.easing, defaults$$1.easing), options.duration) || validateEasing(defaults$$1.easing, options.duration);\n options.loop = getValue(validateLoop(optionsMap.loop), defaults$$1.loop);\n options.repeat = options.repeatAgain = getValue(validateRepeat(optionsMap.repeat), defaults$$1.repeat);\n if (optionsMap.speed != null) {\n options.speed = getValue(validateSpeed(optionsMap.speed), 1);\n }\n if (isBoolean(optionsMap.promise)) {\n options.promise = optionsMap.promise;\n }\n options.queue = getValue(validateQueue(optionsMap.queue), defaults$$1.queue);\n if (optionsMap.mobileHA && !State.isGingerbread) {\n /* When set to true, and if this is a mobile device, mobileHA automatically enables hardware acceleration (via a null transform hack)\r\n on animating elements. HA is removed from the element at the completion of its animation. */\n /* Note: Android Gingerbread doesn't support HA. If a null transform hack (mobileHA) is in fact set, it will prevent other tranform subproperties from taking effect. */\n /* Note: You can read more about the use of mobileHA in Velocity's documentation: velocity-animate/#mobileHA. */\n options.mobileHA = true;\n }\n if (optionsMap.drag === true) {\n options.drag = true;\n }\n if (isNumber(optionsMap.stagger) || isFunction(optionsMap.stagger)) {\n options.stagger = optionsMap.stagger;\n }\n if (!isReverse) {\n if (optionsMap[\"display\"] != null) {\n propertiesMap.display = optionsMap[\"display\"];\n console.error(\"Deprecated \\\"options.display\\\" used, this is now a property:\", optionsMap[\"display\"]);\n }\n if (optionsMap[\"visibility\"] != null) {\n propertiesMap.visibility = optionsMap[\"visibility\"];\n console.error(\"Deprecated \\\"options.visibility\\\" used, this is now a property:\", optionsMap[\"visibility\"]);\n }\n }\n // TODO: Allow functional options for different options per element\n var optionsBegin = validateBegin(optionsMap.begin),\n optionsComplete = validateComplete(optionsMap.complete),\n optionsProgress = validateProgress(optionsMap.progress),\n optionsSync = validateSync(optionsMap.sync);\n if (optionsBegin != null) {\n options.begin = optionsBegin;\n }\n if (optionsComplete != null) {\n options.complete = optionsComplete;\n }\n if (optionsProgress != null) {\n options.progress = optionsProgress;\n }\n if (optionsSync != null) {\n isSync = optionsSync;\n }\n } else if (!syntacticSugar) {\n // Expand any direct options if possible.\n var offset = 0;\n options.duration = validateDuration(arguments.length <= argumentIndex ? undefined : arguments[argumentIndex], true);\n if (options.duration === undefined) {\n options.duration = defaults$$1.duration;\n } else {\n hasValidDuration = true;\n offset++;\n }\n if (!isFunction(arguments.length <= argumentIndex + offset ? undefined : arguments[argumentIndex + offset])) {\n // Despite coming before Complete, we can't pass a fn easing\n var easing = validateEasing(arguments.length <= argumentIndex + offset ? undefined : arguments[argumentIndex + offset], getValue(options && validateDuration(options.duration), defaults$$1.duration), true);\n if (easing !== undefined) {\n offset++;\n options.easing = easing;\n }\n }\n var complete = validateComplete(arguments.length <= argumentIndex + offset ? undefined : arguments[argumentIndex + offset], true);\n if (complete !== undefined) {\n options.complete = complete;\n }\n options.delay = defaults$$1.delay;\n options.loop = defaults$$1.loop;\n options.repeat = options.repeatAgain = defaults$$1.repeat;\n }\n if (isReverse && options.queue === false) {\n throw new Error(\"VelocityJS: Cannot reverse a queue:false animation.\");\n }\n if (!hasValidDuration && maybeSequence && maybeSequence.duration) {\n options.duration = maybeSequence.duration;\n }\n // When a set of elements is targeted by a Velocity call, the set is\n // broken up and each element has the current Velocity call individually\n // queued onto it. In this way, each element's existing queue is\n // respected; some elements may already be animating and accordingly\n // should not have this current Velocity call triggered immediately\n // unless the sync:true option is used.\n var rootAnimation = {\n options: options,\n elements: elements,\n _prev: undefined,\n _next: undefined,\n _flags: isSync ? 32 /* SYNC */ : 0,\n percentComplete: 0,\n ellapsedTime: 0,\n timeStart: 0\n };\n animations = [];\n for (var index = 0; index < elements.length; index++) {\n var element = elements[index];\n var flags = 0;\n if (isNode(element)) {\n // TODO: This needs to check for valid animation targets, not just Elements\n if (isReverse) {\n var lastAnimation = Data(element).lastAnimationList[options.queue];\n propertiesMap = lastAnimation && lastAnimation.tweens;\n if (!propertiesMap) {\n console.error(\"VelocityJS: Attempting to reverse an animation on an element with no previous animation:\", element);\n continue;\n }\n flags |= 64 /* REVERSE */ & ~(lastAnimation._flags & 64 /* REVERSE */); // tslint:disable-line:no-bitwise\n }\n var animation = Object.assign({}, rootAnimation, { element: element, _flags: rootAnimation._flags | flags });\n options._total++;\n animations.push(animation);\n if (options.stagger) {\n if (isFunction(options.stagger)) {\n var num = optionCallback(options.stagger, element, index, elements.length, elements, \"stagger\");\n if (isNumber(num)) {\n animation.delay = options.delay + num;\n }\n } else {\n animation.delay = options.delay + options.stagger * index;\n }\n }\n if (options.drag) {\n animation.duration = options.duration - options.duration * Math.max(1 - (index + 1) / elements.length, 0.75);\n }\n if (maybeSequence) {\n expandSequence(animation, maybeSequence);\n } else if (isReverse) {\n // In this case we're using the previous animation, so\n // it will be expanded correctly when that one runs.\n animation.tweens = propertiesMap;\n } else {\n animation.tweens = Object.create(null);\n expandProperties(animation, propertiesMap);\n }\n queue$1(element, animation, options.queue);\n }\n }\n if (State.isTicking === false) {\n // If the animation tick isn't running, start it. (Velocity shuts it\n // off when there are no active calls to process.)\n tick(false);\n }\n if (animations) {\n defineProperty$1(elements.velocity, \"animations\", animations);\n }\n }\n /***************\r\n Chaining\r\n ***************/\n /* Return the elements back to the call chain, with wrapped elements taking precedence in case Velocity was called via the $.fn. extension. */\n return elements || promise;\n}\n/**\r\n * Call an option callback in a try/catch block and report an error if needed.\r\n */\nfunction optionCallback(fn, element, index, length, elements, option) {\n try {\n return fn.call(element, index, length, elements, option);\n } catch (e) {\n console.error(\"VelocityJS: Exception when calling '\" + option + \"' callback:\", e);\n }\n}\n\n// Project\n/**\r\n * Used to patch any object to allow Velocity chaining. In order to chain an\r\n * object must either be treatable as an array - with a .length\r\n * property, and each member a Node, or a Node directly.\r\n *\r\n * By default Velocity will try to patch window,\r\n * jQuery, Zepto, and several classes that return\r\n * Nodes or lists of Nodes.\r\n */\nfunction patch(proto, global) {\n try {\n defineProperty$1(proto, (global ? \"V\" : \"v\") + \"elocity\", Velocity$1);\n } catch (e) {\n console.warn(\"VelocityJS: Error when trying to add prototype.\", e);\n }\n}\n\n// Project\nvar Velocity$2 = Velocity$1;\n/**\r\n * These parts of Velocity absolutely must be included, even if they're unused!\r\n */\nvar VelocityStatic$1;\n(function (VelocityStatic) {\n /**\r\n * Actions cannot be replaced if they are internal (hasOwnProperty is false\r\n * but they still exist). Otherwise they can be replaced by users.\r\n *\r\n * All external method calls should be using actions rather than sub-calls\r\n * of Velocity itself.\r\n */\n VelocityStatic.Actions = Actions;\n /**\r\n * Our known easing functions.\r\n */\n VelocityStatic.Easings = Easings;\n /**\r\n * The currently registered sequences.\r\n */\n VelocityStatic.Sequences = SequencesObject;\n /**\r\n * Current internal state of Velocity.\r\n */\n VelocityStatic.State = State; // tslint:disable-line:no-shadowed-variable\n /**\r\n * Velocity option defaults, which can be overriden by the user.\r\n */\n VelocityStatic.defaults = defaults$1;\n /**\r\n * Used to patch any object to allow Velocity chaining. In order to chain an\r\n * object must either be treatable as an array - with a .length\r\n * property, and each member a Node, or a Node directly.\r\n *\r\n * By default Velocity will try to patch window,\r\n * jQuery, Zepto, and several classes that return\r\n * Nodes or lists of Nodes.\r\n */\n VelocityStatic.patch = patch;\n /**\r\n * Set to true, 1 or 2 (most verbose) to output debug info to console.\r\n */\n VelocityStatic.debug = false;\n /**\r\n * In mock mode, all animations are forced to complete immediately upon the\r\n * next rAF tick. If there are further animations queued then they will each\r\n * take one single frame in turn. Loops and repeats will be disabled while\r\n * mock = true.\r\n */\n VelocityStatic.mock = false;\n /**\r\n * Save our version number somewhere visible.\r\n */\n VelocityStatic.version = VERSION;\n /**\r\n * Added as a fallback for \"import {Velocity} from 'velocity-animate';\".\r\n */\n VelocityStatic.Velocity = Velocity$1; // tslint:disable-line:no-shadowed-variable\n})(VelocityStatic$1 || (VelocityStatic$1 = {}));\n/* IE detection. Gist: https://gist.github.com/julianshapiro/9098609 */\nvar IE$1 = function () {\n if (document.documentMode) {\n return document.documentMode;\n } else {\n for (var i = 7; i > 4; i--) {\n var div = document.createElement(\"div\");\n div.innerHTML = \"\";\n if (div.getElementsByTagName(\"span\").length) {\n div = null;\n return i;\n }\n }\n }\n return undefined;\n}();\n/******************\r\n Unsupported\r\n ******************/\nif (IE$1 <= 8) {\n throw new Error(\"VelocityJS cannot run on Internet Explorer 8 or earlier\");\n}\n/******************\r\n Frameworks\r\n ******************/\nif (window) {\n /*\r\n * Both jQuery and Zepto allow their $.fn object to be extended to allow\r\n * wrapped elements to be subjected to plugin calls. If either framework is\r\n * loaded, register a \"velocity\" extension pointing to Velocity's core\r\n * animate() method. Velocity also registers itself onto a global container\r\n * (window.jQuery || window.Zepto || window) so that certain features are\r\n * accessible beyond just a per-element scope. Accordingly, Velocity can\r\n * both act on wrapped DOM elements and stand alone for targeting raw DOM\r\n * elements.\r\n */\n var jQuery$1 = window.jQuery,\n Zepto$1 = window.Zepto;\n patch(window, true);\n patch(Element && Element.prototype);\n patch(NodeList && NodeList.prototype);\n patch(HTMLCollection && HTMLCollection.prototype);\n patch(jQuery$1, true);\n patch(jQuery$1 && jQuery$1.fn);\n patch(Zepto$1, true);\n patch(Zepto$1 && Zepto$1.fn);\n}\n// Make sure that the values within Velocity are read-only and upatchable.\n\nvar _loop$1 = function _loop(property) {\n if (VelocityStatic$1.hasOwnProperty(property)) {\n switch (typeof property === \"undefined\" ? \"undefined\" : _typeof(property)) {\n case \"number\":\n case \"boolean\":\n defineProperty$1(Velocity$2, property, {\n get: function get$$1() {\n return VelocityStatic$1[property];\n },\n set: function set$$1(value) {\n VelocityStatic$1[property] = value;\n }\n }, true);\n break;\n default:\n defineProperty$1(Velocity$2, property, VelocityStatic$1[property], true);\n break;\n }\n }\n};\n\nfor (var property$1 in VelocityStatic$1) {\n _loop$1(property$1);\n}\nObject.freeze(Velocity$2);\n\nexport default Velocity$2;\n//# sourceMappingURL=velocity.es5.js.map\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmailJSResponseStatus = void 0;\nvar EmailJSResponseStatus = /** @class */ (function () {\n function EmailJSResponseStatus(httpResponse) {\n this.status = httpResponse.status;\n this.text = httpResponse.responseText;\n }\n return EmailJSResponseStatus;\n}());\nexports.EmailJSResponseStatus = EmailJSResponseStatus;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.UI = void 0;\nvar UI = /** @class */ (function () {\n function UI() {\n }\n UI.clearAll = function (form) {\n form.classList.remove(this.PROGRESS);\n form.classList.remove(this.DONE);\n form.classList.remove(this.ERROR);\n };\n UI.progressState = function (form) {\n this.clearAll(form);\n form.classList.add(this.PROGRESS);\n };\n UI.successState = function (form) {\n form.classList.remove(this.PROGRESS);\n form.classList.add(this.DONE);\n };\n UI.errorState = function (form) {\n form.classList.remove(this.PROGRESS);\n form.classList.add(this.ERROR);\n };\n UI.PROGRESS = 'emailjs-sending';\n UI.DONE = 'emailjs-success';\n UI.ERROR = 'emailjs-error';\n return UI;\n}());\nexports.UI = UI;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmailJSResponseStatus = exports.sendForm = exports.send = exports.init = void 0;\nvar EmailJSResponseStatus_1 = require(\"./models/EmailJSResponseStatus\");\nObject.defineProperty(exports, \"EmailJSResponseStatus\", { enumerable: true, get: function () { return EmailJSResponseStatus_1.EmailJSResponseStatus; } });\nvar UI_1 = require(\"./services/ui/UI\");\nvar _userID = null;\nvar _origin = 'https://api.emailjs.com';\nfunction sendPost(url, data, headers) {\n if (headers === void 0) { headers = {}; }\n return new Promise(function (resolve, reject) {\n var xhr = new XMLHttpRequest();\n xhr.addEventListener('load', function (event) {\n var responseStatus = new EmailJSResponseStatus_1.EmailJSResponseStatus(event.target);\n if (responseStatus.status === 200 || responseStatus.text === 'OK') {\n resolve(responseStatus);\n }\n else {\n reject(responseStatus);\n }\n });\n xhr.addEventListener('error', function (event) {\n reject(new EmailJSResponseStatus_1.EmailJSResponseStatus(event.target));\n });\n xhr.open('POST', url, true);\n for (var key in headers) {\n xhr.setRequestHeader(key, headers[key]);\n }\n xhr.send(data);\n });\n}\nfunction appendGoogleCaptcha(templatePrams) {\n var element = document && document.getElementById('g-recaptcha-response');\n if (element && element.value) {\n templatePrams['g-recaptcha-response'] = element.value;\n }\n element = null;\n return templatePrams;\n}\nfunction fixIdSelector(selector) {\n if (selector[0] !== '#' && selector[0] !== '.') {\n return '#' + selector;\n }\n return selector;\n}\n/**\n * Initiation\n * @param {string} userID - set the EmailJS user ID\n * @param {string} origin - set the EmailJS origin\n */\nfunction init(userID, origin) {\n _userID = userID;\n _origin = origin || 'https://api.emailjs.com';\n}\nexports.init = init;\n/**\n * Send a template to the specific EmailJS service\n * @param {string} serviceID - the EmailJS service ID\n * @param {string} templateID - the EmailJS template ID\n * @param {Object} templatePrams - the template params, what will be set to the EmailJS template\n * @param {string} userID - the EmailJS user ID\n * @returns {Promise}\n */\nfunction send(serviceID, templateID, templatePrams, userID) {\n var params = {\n lib_version: '2.6.4',\n user_id: userID || _userID,\n service_id: serviceID,\n template_id: templateID,\n template_params: appendGoogleCaptcha(templatePrams)\n };\n return sendPost(_origin + '/api/v1.0/email/send', JSON.stringify(params), {\n 'Content-type': 'application/json'\n });\n}\nexports.send = send;\n/**\n * Send a form the specific EmailJS service\n * @param {string} serviceID - the EmailJS service ID\n * @param {string} templateID - the EmailJS template ID\n * @param {string | HTMLFormElement} form - the form element or selector\n * @param {string} userID - the EmailJS user ID\n * @returns {Promise}\n */\nfunction sendForm(serviceID, templateID, form, userID) {\n if (typeof form === 'string') {\n form = document.querySelector(fixIdSelector(form));\n }\n if (!form || form.nodeName !== 'FORM') {\n throw 'Expected the HTML form element or the style selector of form';\n }\n UI_1.UI.progressState(form);\n var formData = new FormData(form);\n formData.append('lib_version', '2.6.4');\n formData.append('service_id', serviceID);\n formData.append('template_id', templateID);\n formData.append('user_id', userID || _userID);\n return sendPost(_origin + '/api/v1.0/email/send-form', formData)\n .then(function (response) {\n UI_1.UI.successState(form);\n return response;\n }, function (error) {\n UI_1.UI.errorState(form);\n return Promise.reject(error);\n });\n}\nexports.sendForm = sendForm;\nexports.default = {\n init: init,\n send: send,\n sendForm: sendForm\n};\n","export const consolePrefix = 'SweetAlert2:'\n\n/**\n * Filter the unique values into a new array\n * @param arr\n */\nexport const uniqueArray = (arr) => {\n const result = []\n for (let i = 0; i < arr.length; i++) {\n if (result.indexOf(arr[i]) === -1) {\n result.push(arr[i])\n }\n }\n return result\n}\n\n/**\n * Capitalize the first letter of a string\n * @param {string} str\n * @returns {string}\n */\nexport const capitalizeFirstLetter = (str) => str.charAt(0).toUpperCase() + str.slice(1)\n\n/**\n * @param {NodeList | HTMLCollection | NamedNodeMap} nodeList\n * @returns {array}\n */\nexport const toArray = (nodeList) => Array.prototype.slice.call(nodeList)\n\n/**\n * Standardize console warnings\n * @param {string | array} message\n */\nexport const warn = (message) => {\n console.warn(`${consolePrefix} ${typeof message === 'object' ? message.join(' ') : message}`)\n}\n\n/**\n * Standardize console errors\n * @param {string} message\n */\nexport const error = (message) => {\n console.error(`${consolePrefix} ${message}`)\n}\n\n/**\n * Private global state for `warnOnce`\n * @type {Array}\n * @private\n */\nconst previousWarnOnceMessages = []\n\n/**\n * Show a console warning, but only if it hasn't already been shown\n * @param {string} message\n */\nexport const warnOnce = (message) => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message)\n warn(message)\n }\n}\n\n/**\n * Show a one-time console warning about deprecated params/methods\n */\nexport const warnAboutDeprecation = (deprecatedParam, useInstead) => {\n warnOnce(\n `\"${deprecatedParam}\" is deprecated and will be removed in the next major release. Please use \"${useInstead}\" instead.`\n )\n}\n\n/**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n * @param arg\n */\nexport const callIfFunction = (arg) => (typeof arg === 'function' ? arg() : arg)\n\nexport const hasToPromiseFn = (arg) => arg && typeof arg.toPromise === 'function'\n\nexport const asPromise = (arg) => (hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg))\n\nexport const isPromise = (arg) => arg && Promise.resolve(arg) === arg\n\nexport const getRandomElement = (arr) => arr[Math.floor(Math.random() * arr.length)]\n","import { warn, warnAboutDeprecation } from '../utils/utils.js'\n\nexport const defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show',\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide',\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true,\n}\n\nexport const updatableParams = [\n 'allowEscapeKey',\n 'allowOutsideClick',\n 'background',\n 'buttonsStyling',\n 'cancelButtonAriaLabel',\n 'cancelButtonColor',\n 'cancelButtonText',\n 'closeButtonAriaLabel',\n 'closeButtonHtml',\n 'color',\n 'confirmButtonAriaLabel',\n 'confirmButtonColor',\n 'confirmButtonText',\n 'currentProgressStep',\n 'customClass',\n 'denyButtonAriaLabel',\n 'denyButtonColor',\n 'denyButtonText',\n 'didClose',\n 'didDestroy',\n 'footer',\n 'hideClass',\n 'html',\n 'icon',\n 'iconColor',\n 'iconHtml',\n 'imageAlt',\n 'imageHeight',\n 'imageUrl',\n 'imageWidth',\n 'preConfirm',\n 'preDeny',\n 'progressSteps',\n 'returnFocus',\n 'reverseButtons',\n 'showCancelButton',\n 'showCloseButton',\n 'showConfirmButton',\n 'showDenyButton',\n 'text',\n 'title',\n 'titleText',\n 'willClose',\n]\n\nexport const deprecatedParams = {}\n\nconst toastIncompatibleParams = [\n 'allowOutsideClick',\n 'allowEnterKey',\n 'backdrop',\n 'focusConfirm',\n 'focusDeny',\n 'focusCancel',\n 'returnFocus',\n 'heightAuto',\n 'keydownListenerCapture',\n]\n\n/**\n * Is valid parameter\n * @param {string} paramName\n */\nexport const isValidParameter = (paramName) => {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName)\n}\n\n/**\n * Is valid parameter for Swal.update() method\n * @param {string} paramName\n */\nexport const isUpdatableParameter = (paramName) => {\n return updatableParams.indexOf(paramName) !== -1\n}\n\n/**\n * Is deprecated parameter\n * @param {string} paramName\n */\nexport const isDeprecatedParameter = (paramName) => {\n return deprecatedParams[paramName]\n}\n\nconst checkIfParamIsValid = (param) => {\n if (!isValidParameter(param)) {\n warn(`Unknown parameter \"${param}\"`)\n }\n}\n\nconst checkIfToastParamIsValid = (param) => {\n if (toastIncompatibleParams.includes(param)) {\n warn(`The parameter \"${param}\" is incompatible with toasts`)\n }\n}\n\nconst checkIfParamIsDeprecated = (param) => {\n if (isDeprecatedParameter(param)) {\n warnAboutDeprecation(param, isDeprecatedParameter(param))\n }\n}\n\n/**\n * Show relevant warnings for given params\n *\n * @param params\n */\nexport const showWarningsForParams = (params) => {\n if (!params.backdrop && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`')\n }\n\n for (const param in params) {\n checkIfParamIsValid(param)\n\n if (params.toast) {\n checkIfToastParamIsValid(param)\n }\n\n checkIfParamIsDeprecated(param)\n }\n}\n\nexport default defaultParams\n","export const swalPrefix = 'swal2-'\n\nexport const prefix = (items) => {\n const result = {}\n for (const i in items) {\n result[items[i]] = swalPrefix + items[i]\n }\n return result\n}\n\nexport const swalClasses = prefix([\n 'container',\n 'shown',\n 'height-auto',\n 'iosfix',\n 'popup',\n 'modal',\n 'no-backdrop',\n 'no-transition',\n 'toast',\n 'toast-shown',\n 'show',\n 'hide',\n 'close',\n 'title',\n 'html-container',\n 'actions',\n 'confirm',\n 'deny',\n 'cancel',\n 'default-outline',\n 'footer',\n 'icon',\n 'icon-content',\n 'image',\n 'input',\n 'file',\n 'range',\n 'select',\n 'radio',\n 'checkbox',\n 'label',\n 'textarea',\n 'inputerror',\n 'input-label',\n 'validation-message',\n 'progress-steps',\n 'active-progress-step',\n 'progress-step',\n 'progress-step-line',\n 'loader',\n 'loading',\n 'styled',\n 'top',\n 'top-start',\n 'top-end',\n 'top-left',\n 'top-right',\n 'center',\n 'center-start',\n 'center-end',\n 'center-left',\n 'center-right',\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n 'bottom-left',\n 'bottom-right',\n 'grow-row',\n 'grow-column',\n 'grow-fullscreen',\n 'rtl',\n 'timer-progress-bar',\n 'timer-progress-bar-container',\n 'scrollbar-measure',\n 'icon-success',\n 'icon-warning',\n 'icon-info',\n 'icon-question',\n 'icon-error',\n 'no-war',\n])\n\nexport const iconTypes = prefix(['success', 'warning', 'info', 'question', 'error'])\n","import { swalClasses } from '../classes.js'\nimport { toArray, uniqueArray } from '../utils.js'\nimport { hasClass, isVisible } from './domUtils.js'\n\n/**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\nexport const getContainer = () => document.body.querySelector(`.${swalClasses.container}`)\n\nexport const elementBySelector = (selectorString) => {\n const container = getContainer()\n return container ? container.querySelector(selectorString) : null\n}\n\nconst elementByClass = (className) => {\n return elementBySelector(`.${className}`)\n}\n\nexport const getPopup = () => elementByClass(swalClasses.popup)\n\nexport const getIcon = () => elementByClass(swalClasses.icon)\n\nexport const getTitle = () => elementByClass(swalClasses.title)\n\nexport const getHtmlContainer = () => elementByClass(swalClasses['html-container'])\n\nexport const getImage = () => elementByClass(swalClasses.image)\n\nexport const getProgressSteps = () => elementByClass(swalClasses['progress-steps'])\n\nexport const getValidationMessage = () => elementByClass(swalClasses['validation-message'])\n\nexport const getConfirmButton = () => elementBySelector(`.${swalClasses.actions} .${swalClasses.confirm}`)\n\nexport const getDenyButton = () => elementBySelector(`.${swalClasses.actions} .${swalClasses.deny}`)\n\nexport const getInputLabel = () => elementByClass(swalClasses['input-label'])\n\nexport const getLoader = () => elementBySelector(`.${swalClasses.loader}`)\n\nexport const getCancelButton = () => elementBySelector(`.${swalClasses.actions} .${swalClasses.cancel}`)\n\nexport const getActions = () => elementByClass(swalClasses.actions)\n\nexport const getFooter = () => elementByClass(swalClasses.footer)\n\nexport const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar'])\n\nexport const getCloseButton = () => elementByClass(swalClasses.close)\n\n// https://github.com/jkup/focusable/blob/master/index.js\nconst focusable = `\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n`\n\nexport const getFocusableElements = () => {\n const focusableElementsWithTabindex = toArray(\n getPopup().querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])')\n )\n // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex'))\n const tabindexB = parseInt(b.getAttribute('tabindex'))\n if (tabindexA > tabindexB) {\n return 1\n } else if (tabindexA < tabindexB) {\n return -1\n }\n return 0\n })\n\n const otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(\n (el) => el.getAttribute('tabindex') !== '-1'\n )\n\n return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter((el) => isVisible(el))\n}\n\nexport const isModal = () => {\n return (\n hasClass(document.body, swalClasses.shown) &&\n !hasClass(document.body, swalClasses['toast-shown']) &&\n !hasClass(document.body, swalClasses['no-backdrop'])\n )\n}\n\nexport const isToast = () => {\n return getPopup() && hasClass(getPopup(), swalClasses.toast)\n}\n\nexport const isLoading = () => {\n return getPopup().hasAttribute('data-loading')\n}\n","import { getCancelButton, getConfirmButton, getDenyButton, getTimerProgressBar } from './getters.js'\nimport { iconTypes, swalClasses } from '../classes.js'\nimport { toArray, warn } from '../utils.js'\n\n// Remember state in cases where opening and handling a modal will fiddle with it.\nexport const states = {\n previousBodyPadding: null,\n}\n\n/**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\nexport const setInnerHtml = (elem, html) => {\n elem.textContent = ''\n if (html) {\n const parser = new DOMParser()\n const parsed = parser.parseFromString(html, `text/html`)\n toArray(parsed.querySelector('head').childNodes).forEach((child) => {\n elem.appendChild(child)\n })\n toArray(parsed.querySelector('body').childNodes).forEach((child) => {\n elem.appendChild(child)\n })\n }\n}\n\n/**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\nexport const hasClass = (elem, className) => {\n if (!className) {\n return false\n }\n const classList = className.split(/\\s+/)\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false\n }\n }\n return true\n}\n\nconst removeCustomClasses = (elem, params) => {\n toArray(elem.classList).forEach((className) => {\n if (\n !Object.values(swalClasses).includes(className) &&\n !Object.values(iconTypes).includes(className) &&\n !Object.values(params.showClass).includes(className)\n ) {\n elem.classList.remove(className)\n }\n })\n}\n\nexport const applyCustomClass = (elem, params, className) => {\n removeCustomClasses(elem, params)\n\n if (params.customClass && params.customClass[className]) {\n if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n return warn(\n `Invalid type of customClass.${className}! Expected string or iterable object, got \"${typeof params.customClass[\n className\n ]}\"`\n )\n }\n\n addClass(elem, params.customClass[className])\n }\n}\n\n/**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass} inputClass\n * @returns {HTMLInputElement | null}\n */\nexport const getInput = (popup, inputClass) => {\n if (!inputClass) {\n return null\n }\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses[inputClass]}`)\n case 'checkbox':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.checkbox} input`)\n case 'radio':\n return (\n popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:checked`) ||\n popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:first-child`)\n )\n case 'range':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.range} input`)\n default:\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.input}`)\n }\n}\n\n/**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\nexport const focusInput = (input) => {\n input.focus()\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n const val = input.value\n input.value = ''\n input.value = val\n }\n}\n\n/**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n * @param {boolean} condition\n */\nexport const toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return\n }\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean)\n }\n classList.forEach((className) => {\n if (Array.isArray(target)) {\n target.forEach((elem) => {\n condition ? elem.classList.add(className) : elem.classList.remove(className)\n })\n } else {\n condition ? target.classList.add(className) : target.classList.remove(className)\n }\n })\n}\n\n/**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\nexport const addClass = (target, classList) => {\n toggleClass(target, classList, true)\n}\n\n/**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\nexport const removeClass = (target, classList) => {\n toggleClass(target, classList, false)\n}\n\n/**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | null}\n */\nexport const getDirectChildByClass = (elem, className) => {\n const childNodes = toArray(elem.childNodes)\n for (let i = 0; i < childNodes.length; i++) {\n if (hasClass(childNodes[i], className)) {\n return childNodes[i]\n }\n }\n}\n\n/**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\nexport const applyNumericalStyle = (elem, property, value) => {\n if (value === `${parseInt(value)}`) {\n value = parseInt(value)\n }\n if (value || parseInt(value) === 0) {\n elem.style[property] = typeof value === 'number' ? `${value}px` : value\n } else {\n elem.style.removeProperty(property)\n }\n}\n\n/**\n * @param {HTMLElement} elem\n * @param {string} display\n */\nexport const show = (elem, display = 'flex') => {\n elem.style.display = display\n}\n\n/**\n * @param {HTMLElement} elem\n */\nexport const hide = (elem) => {\n elem.style.display = 'none'\n}\n\nexport const setStyle = (parent, selector, property, value) => {\n const el = parent.querySelector(selector)\n if (el) {\n el.style[property] = value\n }\n}\n\nexport const toggle = (elem, condition, display) => {\n condition ? show(elem, display) : hide(elem)\n}\n\n// borrowed from jquery $(elem).is(':visible') implementation\nexport const isVisible = (elem) => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length))\n\nexport const allButtonsAreHidden = () =>\n !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton())\n\nexport const isScrollable = (elem) => !!(elem.scrollHeight > elem.clientHeight)\n\n// borrowed from https://stackoverflow.com/a/46352119\nexport const hasCssAnimation = (elem) => {\n const style = window.getComputedStyle(elem)\n\n const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0')\n const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0')\n\n return animDuration > 0 || transDuration > 0\n}\n\nexport const animateTimerProgressBar = (timer, reset = false) => {\n const timerProgressBar = getTimerProgressBar()\n if (isVisible(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none'\n timerProgressBar.style.width = '100%'\n }\n setTimeout(() => {\n timerProgressBar.style.transition = `width ${timer / 1000}s linear`\n timerProgressBar.style.width = '0%'\n }, 10)\n }\n}\n\nexport const stopTimerProgressBar = () => {\n const timerProgressBar = getTimerProgressBar()\n const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width)\n timerProgressBar.style.removeProperty('transition')\n timerProgressBar.style.width = '100%'\n const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width)\n const timerProgressBarPercent = (timerProgressBarWidth / timerProgressBarFullWidth) * 100\n timerProgressBar.style.removeProperty('transition')\n timerProgressBar.style.width = `${timerProgressBarPercent}%`\n}\n","/**\n * Detect Node env\n *\n * @returns {boolean}\n */\nexport const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined'\n","export const RESTORE_FOCUS_TIMEOUT = 100\n","import { RESTORE_FOCUS_TIMEOUT } from './constants.js'\n\nconst globalState = {}\n\nexport default globalState\n\nconst focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {\n globalState.previousActiveElement.focus()\n globalState.previousActiveElement = null\n } else if (document.body) {\n document.body.focus()\n }\n}\n\n// Restore previous active (focused) element\nexport const restoreActiveElement = (returnFocus) => {\n return new Promise((resolve) => {\n if (!returnFocus) {\n return resolve()\n }\n const x = window.scrollX\n const y = window.scrollY\n\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement()\n resolve()\n }, RESTORE_FOCUS_TIMEOUT) // issues/900\n\n window.scrollTo(x, y)\n })\n}\n","import { swalClasses } from '../classes.js'\nimport { getContainer, getPopup } from './getters.js'\nimport { addClass, getDirectChildByClass, removeClass, setInnerHtml } from './domUtils.js'\nimport { isNodeEnv } from '../isNodeEnv.js'\nimport { error, getRandomElement } from '../utils.js'\nimport globalState from '../../globalState.js'\n\nconst sweetHTML = `\n
\n \n
    \n
    \n \n

    \n
    \n \n \n
    \n \n \n
    \n \n
    \n \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n`.replace(/(^|\\n)\\s*/g, '')\n\nconst resetOldContainer = () => {\n const oldContainer = getContainer()\n if (!oldContainer) {\n return false\n }\n\n oldContainer.remove()\n removeClass(\n [document.documentElement, document.body],\n [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]\n )\n\n return true\n}\n\nconst resetValidationMessage = () => {\n globalState.currentInstance.resetValidationMessage()\n}\n\nconst addInputChangeListeners = () => {\n const popup = getPopup()\n\n const input = getDirectChildByClass(popup, swalClasses.input)\n const file = getDirectChildByClass(popup, swalClasses.file)\n const range = popup.querySelector(`.${swalClasses.range} input`)\n const rangeOutput = popup.querySelector(`.${swalClasses.range} output`)\n const select = getDirectChildByClass(popup, swalClasses.select)\n const checkbox = popup.querySelector(`.${swalClasses.checkbox} input`)\n const textarea = getDirectChildByClass(popup, swalClasses.textarea)\n\n input.oninput = resetValidationMessage\n file.onchange = resetValidationMessage\n select.onchange = resetValidationMessage\n checkbox.onchange = resetValidationMessage\n textarea.oninput = resetValidationMessage\n\n range.oninput = () => {\n resetValidationMessage()\n rangeOutput.value = range.value\n }\n\n range.onchange = () => {\n resetValidationMessage()\n range.nextSibling.value = range.value\n }\n}\n\nconst getTarget = (target) => (typeof target === 'string' ? document.querySelector(target) : target)\n\nconst setupAccessibility = (params) => {\n const popup = getPopup()\n\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog')\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive')\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true')\n }\n}\n\nconst setupRTL = (targetElement) => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl)\n }\n}\n\n/*\n * Add modal + backdrop + no-war message for Russians to DOM\n */\nexport const init = (params) => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer()\n\n /* istanbul ignore if */\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize')\n return\n }\n\n const container = document.createElement('div')\n container.className = swalClasses.container\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition'])\n }\n setInnerHtml(container, sweetHTML)\n\n const targetElement = getTarget(params.target)\n targetElement.appendChild(container)\n\n setupAccessibility(params)\n setupRTL(targetElement)\n addInputChangeListeners()\n\n noWarMessageForRussians(container, params)\n}\n\nconst noWarMessageForRussians = (container, params) => {\n if (params.toast) {\n return\n }\n // This message is targeted at people who are corrupted by propaganda, everybody else\n // is already against war either silently or actively.\n //\n // The point is to wrap the truth-bomb into a patriotic title so they will actually click it\n // and listen to the uncomfortable truth about the war from the people they love or respect.\n const message = getRandomElement([\n {\n text: 'ШВАРЦЕНЕГГЕР обратился
    к РУССКОМУ НАРОДУ о войне',\n // Arnold is loved in Russia by all people including those who are for this war\n // His speech might change the mind of those who are brainwashed by propaganda\n youtubeId: 'fWClXZd9c78',\n },\n {\n text: 'РУССКИЙ ПАТРИОТ
    открыл главную тайну спецоперации',\n // In this video one of the most famous Russian nationalist leaders, Dmitry Demushkin,\n // explains that this war has no sense and produces the exact opposite result of what\n // it was intended to do.\n youtubeId: '_RjBNkn88yA',\n },\n {\n text: 'ГЕРОЙ НОВОРОССИИ СТРЕЛКОВ
    дал оценку ходу спецоперации',\n // In this video Igor Girkin, who played a key role in the annexation of Crimea,\n // explains that this war has failed already and all possible outcomes are bad for Russia.\n youtubeId: 'yUmzQT4C8JY',\n },\n {\n text: 'ФИНСКИЙ ДРУГ РОССИИ
    говорит ПО-РУССКИ о спецоперации',\n youtubeId: 'hkCYb6edUrQ',\n },\n ])\n // The message will only be shown to Russian users visiting Russian sites\n if (navigator.language === 'ru' && location.host.match(/\\.(ru|su|xn--p1ai)$/)) {\n const noWar = document.createElement('div')\n noWar.className = swalClasses['no-war']\n setInnerHtml(\n noWar,\n `${message.text}`\n )\n container.appendChild(noWar)\n container.style.paddingTop = '4em'\n }\n}\n","import { setInnerHtml } from './domUtils.js'\n\n/**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\nexport const parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param)\n }\n\n // Object\n else if (typeof param === 'object') {\n handleObject(param, target)\n }\n\n // Plain string\n else if (param) {\n setInnerHtml(target, param)\n }\n}\n\n/**\n * @param {object} param\n * @param {HTMLElement} target\n */\nconst handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param)\n }\n\n // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString())\n }\n}\n\nconst handleJqueryElem = (target, elem) => {\n target.textContent = ''\n if (0 in elem) {\n for (let i = 0; i in elem; i++) {\n target.appendChild(elem[i].cloneNode(true))\n }\n } else {\n target.appendChild(elem.cloneNode(true))\n }\n}\n","import { isNodeEnv } from '../isNodeEnv.js'\n\nexport const animationEndEvent = (() => {\n // Prevent run in Node env\n /* istanbul ignore if */\n if (isNodeEnv()) {\n return false\n }\n\n const testEl = document.createElement('div')\n const transEndEventNames = {\n WebkitAnimation: 'webkitAnimationEnd', // Chrome, Safari and Opera\n animation: 'animationend', // Standard syntax\n }\n for (const i in transEndEventNames) {\n if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {\n return transEndEventNames[i]\n }\n }\n\n return false\n})()\n","import { swalClasses } from '../classes.js'\n\n// Measure scrollbar width for padding body during modal show/hide\n// https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\nexport const measureScrollbar = () => {\n const scrollDiv = document.createElement('div')\n scrollDiv.className = swalClasses['scrollbar-measure']\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n}\n","import { swalClasses } from '../../classes.js'\nimport * as dom from '../../dom/index.js'\nimport { capitalizeFirstLetter } from '../../utils.js'\n\nexport const renderActions = (instance, params) => {\n const actions = dom.getActions()\n const loader = dom.getLoader()\n\n // Actions (buttons) wrapper\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n dom.hide(actions)\n } else {\n dom.show(actions)\n }\n\n // Custom class\n dom.applyCustomClass(actions, params, 'actions')\n\n // Render all the buttons\n renderButtons(actions, loader, params)\n\n // Loader\n dom.setInnerHtml(loader, params.loaderHtml)\n dom.applyCustomClass(loader, params, 'loader')\n}\n\nfunction renderButtons(actions, loader, params) {\n const confirmButton = dom.getConfirmButton()\n const denyButton = dom.getDenyButton()\n const cancelButton = dom.getCancelButton()\n\n // Render buttons\n renderButton(confirmButton, 'confirm', params)\n renderButton(denyButton, 'deny', params)\n renderButton(cancelButton, 'cancel', params)\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params)\n\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton)\n actions.insertBefore(denyButton, confirmButton)\n } else {\n actions.insertBefore(cancelButton, loader)\n actions.insertBefore(denyButton, loader)\n actions.insertBefore(confirmButton, loader)\n }\n }\n}\n\nfunction handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n return dom.removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled)\n }\n\n dom.addClass([confirmButton, denyButton, cancelButton], swalClasses.styled)\n\n // Buttons background colors\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor\n dom.addClass(confirmButton, swalClasses['default-outline'])\n }\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor\n dom.addClass(denyButton, swalClasses['default-outline'])\n }\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor\n dom.addClass(cancelButton, swalClasses['default-outline'])\n }\n}\n\nfunction renderButton(button, buttonType, params) {\n dom.toggle(button, params[`show${capitalizeFirstLetter(buttonType)}Button`], 'inline-block')\n dom.setInnerHtml(button, params[`${buttonType}ButtonText`]) // Set caption text\n button.setAttribute('aria-label', params[`${buttonType}ButtonAriaLabel`]) // ARIA label\n\n // Add buttons custom classes\n button.className = swalClasses[buttonType]\n dom.applyCustomClass(button, params, `${buttonType}Button`)\n dom.addClass(button, params[`${buttonType}ButtonClass`])\n}\n","import { swalClasses } from '../../classes.js'\nimport { warn } from '../../utils.js'\nimport * as dom from '../../dom/index.js'\n\nfunction handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop\n } else if (!backdrop) {\n dom.addClass([document.documentElement, document.body], swalClasses['no-backdrop'])\n }\n}\n\nfunction handlePositionParam(container, position) {\n if (position in swalClasses) {\n dom.addClass(container, swalClasses[position])\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"')\n dom.addClass(container, swalClasses.center)\n }\n}\n\nfunction handleGrowParam(container, grow) {\n if (grow && typeof grow === 'string') {\n const growClass = `grow-${grow}`\n if (growClass in swalClasses) {\n dom.addClass(container, swalClasses[growClass])\n }\n }\n}\n\nexport const renderContainer = (instance, params) => {\n const container = dom.getContainer()\n\n if (!container) {\n return\n }\n\n handleBackdropParam(container, params.backdrop)\n\n handlePositionParam(container, params.position)\n handleGrowParam(container, params.grow)\n\n // Custom class\n dom.applyCustomClass(container, params, 'container')\n}\n","/**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\nexport default {\n awaitingPromise: new WeakMap(),\n promise: new WeakMap(),\n innerParams: new WeakMap(),\n domCache: new WeakMap(),\n}\n","/// \n\n/**\n * @typedef { import('sweetalert2') } SweetAlert2\n * @typedef { import('sweetalert2').SweetAlertOptions } SweetAlertOptions\n * @typedef { HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement } Input\n * @typedef { 'input' | 'file' | 'range' | 'select' | 'radio' | 'checkbox' | 'textarea' } InputClass\n */\n\nimport { swalClasses } from '../../classes.js'\nimport { error, isPromise, warn } from '../../utils.js'\nimport * as dom from '../../dom/index.js'\nimport privateProps from '../../../privateProps.js'\n\n/** @type {InputClass[]} */\nconst inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea']\n\n/**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\nexport const renderInput = (instance, params) => {\n const popup = dom.getPopup()\n const innerParams = privateProps.innerParams.get(instance)\n const rerender = !innerParams || params.input !== innerParams.input\n\n inputClasses.forEach((inputClass) => {\n const inputContainer = dom.getDirectChildByClass(popup, swalClasses[inputClass])\n\n // set attributes\n setAttributes(inputClass, params.inputAttributes)\n\n // set class\n inputContainer.className = swalClasses[inputClass]\n\n if (rerender) {\n dom.hide(inputContainer)\n }\n })\n\n if (params.input) {\n if (rerender) {\n showInput(params)\n }\n // set custom class\n setCustomClass(params)\n }\n}\n\n/**\n * @param {SweetAlertOptions} params\n */\nconst showInput = (params) => {\n if (!renderInputType[params.input]) {\n return error(\n `Unexpected type of input! Expected \"text\", \"email\", \"password\", \"number\", \"tel\", \"select\", \"radio\", \"checkbox\", \"textarea\", \"file\" or \"url\", got \"${params.input}\"`\n )\n }\n\n const inputContainer = getInputContainer(params.input)\n const input = renderInputType[params.input](inputContainer, params)\n dom.show(inputContainer)\n\n // input autofocus\n setTimeout(() => {\n dom.focusInput(input)\n })\n}\n\n/**\n * @param {HTMLInputElement} input\n */\nconst removeAttributes = (input) => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name\n if (!['type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName)\n }\n }\n}\n\n/**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\nconst setAttributes = (inputClass, inputAttributes) => {\n const input = dom.getInput(dom.getPopup(), inputClass)\n if (!input) {\n return\n }\n\n removeAttributes(input)\n\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr])\n }\n}\n\n/**\n * @param {SweetAlertOptions} params\n */\nconst setCustomClass = (params) => {\n const inputContainer = getInputContainer(params.input)\n if (typeof params.customClass === 'object') {\n dom.addClass(inputContainer, params.customClass.input)\n }\n}\n\n/**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\nconst setInputPlaceholder = (input, params) => {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder\n }\n}\n\n/**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\nconst setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n input.id = swalClasses.input\n const label = document.createElement('label')\n const labelClass = swalClasses['input-label']\n label.setAttribute('for', input.id)\n label.className = labelClass\n if (typeof params.customClass === 'object') {\n dom.addClass(label, params.customClass.inputLabel)\n }\n label.innerText = params.inputLabel\n prependTo.insertAdjacentElement('beforebegin', label)\n }\n}\n\n/**\n * @param {SweetAlertOptions['input']} inputType\n * @returns {HTMLElement}\n */\nconst getInputContainer = (inputType) => {\n return dom.getDirectChildByClass(dom.getPopup(), swalClasses[inputType] || swalClasses.input)\n}\n\n/**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\nconst checkAndSetInputValue = (input, inputValue) => {\n if (['string', 'number'].includes(typeof inputValue)) {\n input.value = `${inputValue}`\n } else if (!isPromise(inputValue)) {\n warn(`Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"${typeof inputValue}\"`)\n }\n}\n\n/** @type Record Input> */\nconst renderInputType = {}\n\n/**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\nrenderInputType.text =\n renderInputType.email =\n renderInputType.password =\n renderInputType.number =\n renderInputType.tel =\n renderInputType.url =\n (input, params) => {\n checkAndSetInputValue(input, params.inputValue)\n setInputLabel(input, input, params)\n setInputPlaceholder(input, params)\n input.type = params.input\n return input\n }\n\n/**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\nrenderInputType.file = (input, params) => {\n setInputLabel(input, input, params)\n setInputPlaceholder(input, params)\n return input\n}\n\n/**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\nrenderInputType.range = (range, params) => {\n const rangeInput = range.querySelector('input')\n const rangeOutput = range.querySelector('output')\n checkAndSetInputValue(rangeInput, params.inputValue)\n rangeInput.type = params.input\n checkAndSetInputValue(rangeOutput, params.inputValue)\n setInputLabel(rangeInput, range, params)\n return range\n}\n\n/**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\nrenderInputType.select = (select, params) => {\n select.textContent = ''\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option')\n dom.setInnerHtml(placeholder, params.inputPlaceholder)\n placeholder.value = ''\n placeholder.disabled = true\n placeholder.selected = true\n select.appendChild(placeholder)\n }\n setInputLabel(select, select, params)\n return select\n}\n\n/**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\nrenderInputType.radio = (radio) => {\n radio.textContent = ''\n return radio\n}\n\n/**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\nrenderInputType.checkbox = (checkboxContainer, params) => {\n const checkbox = dom.getInput(dom.getPopup(), 'checkbox')\n checkbox.value = '1'\n checkbox.id = swalClasses.checkbox\n checkbox.checked = Boolean(params.inputValue)\n const label = checkboxContainer.querySelector('span')\n dom.setInnerHtml(label, params.inputPlaceholder)\n return checkbox\n}\n\n/**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\nrenderInputType.textarea = (textarea, params) => {\n checkAndSetInputValue(textarea, params.inputValue)\n setInputPlaceholder(textarea, params)\n setInputLabel(textarea, textarea, params)\n\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n const getMargin = (el) =>\n parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight)\n\n // https://github.com/sweetalert2/sweetalert2/issues/2291\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const initialPopupWidth = parseInt(window.getComputedStyle(dom.getPopup()).width)\n const textareaResizeHandler = () => {\n const textareaWidth = textarea.offsetWidth + getMargin(textarea)\n if (textareaWidth > initialPopupWidth) {\n dom.getPopup().style.width = `${textareaWidth}px`\n } else {\n dom.getPopup().style.width = null\n }\n }\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style'],\n })\n }\n })\n\n return textarea\n}\n","import * as dom from '../../dom/index.js'\nimport { renderInput } from './renderInput.js'\n\nexport const renderContent = (instance, params) => {\n const htmlContainer = dom.getHtmlContainer()\n\n dom.applyCustomClass(htmlContainer, params, 'htmlContainer')\n\n // Content as HTML\n if (params.html) {\n dom.parseHtmlToContainer(params.html, htmlContainer)\n dom.show(htmlContainer, 'block')\n }\n\n // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text\n dom.show(htmlContainer, 'block')\n }\n\n // No content\n else {\n dom.hide(htmlContainer)\n }\n\n renderInput(instance, params)\n}\n","import * as dom from '../../dom/index.js'\n\nexport const renderFooter = (instance, params) => {\n const footer = dom.getFooter()\n\n dom.toggle(footer, params.footer)\n\n if (params.footer) {\n dom.parseHtmlToContainer(params.footer, footer)\n }\n\n // Custom class\n dom.applyCustomClass(footer, params, 'footer')\n}\n","import * as dom from '../../dom/index.js'\n\nexport const renderCloseButton = (instance, params) => {\n const closeButton = dom.getCloseButton()\n\n dom.setInnerHtml(closeButton, params.closeButtonHtml)\n\n // Custom class\n dom.applyCustomClass(closeButton, params, 'closeButton')\n\n dom.toggle(closeButton, params.showCloseButton)\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel)\n}\n","import { iconTypes, swalClasses } from '../../classes.js'\nimport { error } from '../../utils.js'\nimport * as dom from '../../dom/index.js'\nimport privateProps from '../../../privateProps.js'\n\n/**\n * @typedef { import('sweetalert2') } SweetAlert2\n * @typedef { import('sweetalert2').SweetAlertOptions } SweetAlertOptions\n */\n\n/**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\nexport const renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance)\n const icon = dom.getIcon()\n\n // if the given icon already rendered, apply the styling without re-rendering the icon\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params)\n\n applyStyles(icon, params)\n return\n }\n\n if (!params.icon && !params.iconHtml) {\n return dom.hide(icon)\n }\n\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(`Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"${params.icon}\"`)\n return dom.hide(icon)\n }\n\n dom.show(icon)\n\n // Custom or default content\n setContent(icon, params)\n\n applyStyles(icon, params)\n\n // Animate icon\n dom.addClass(icon, params.showClass.icon)\n}\n\n/**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\nconst applyStyles = (icon, params) => {\n for (const iconType in iconTypes) {\n if (params.icon !== iconType) {\n dom.removeClass(icon, iconTypes[iconType])\n }\n }\n dom.addClass(icon, iconTypes[params.icon])\n\n // Icon color\n setColor(icon, params)\n\n // Success icon background color\n adjustSuccessIconBackgroundColor()\n\n // Custom class\n dom.applyCustomClass(icon, params, 'icon')\n}\n\n// Adjust success icon background color to match the popup background color\nconst adjustSuccessIconBackgroundColor = () => {\n const popup = dom.getPopup()\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color')\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix')\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor\n }\n}\n\nconst successIconHtml = `\n
    \n \n
    \n
    \n`\n\nconst errorIconHtml = `\n \n \n \n \n`\n\n/**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\nconst setContent = (icon, params) => {\n icon.textContent = ''\n\n if (params.iconHtml) {\n dom.setInnerHtml(icon, iconContent(params.iconHtml))\n } else if (params.icon === 'success') {\n dom.setInnerHtml(icon, successIconHtml)\n } else if (params.icon === 'error') {\n dom.setInnerHtml(icon, errorIconHtml)\n } else {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i',\n }\n dom.setInnerHtml(icon, iconContent(defaultIconHtml[params.icon]))\n }\n}\n\n/**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\nconst setColor = (icon, params) => {\n if (!params.iconColor) {\n return\n }\n icon.style.color = params.iconColor\n icon.style.borderColor = params.iconColor\n for (const sel of [\n '.swal2-success-line-tip',\n '.swal2-success-line-long',\n '.swal2-x-mark-line-left',\n '.swal2-x-mark-line-right',\n ]) {\n dom.setStyle(icon, sel, 'backgroundColor', params.iconColor)\n }\n dom.setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor)\n}\n\n/**\n * @param {string} content\n */\nconst iconContent = (content) => `
    ${content}
    `\n","import { swalClasses } from '../../classes.js'\nimport * as dom from '../../dom/index.js'\n\n/**\n * @typedef { import('sweetalert2') } SweetAlert2\n * @typedef { import('sweetalert2').SweetAlertOptions } SweetAlertOptions\n */\n\n/**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\nexport const renderImage = (instance, params) => {\n const image = dom.getImage()\n\n if (!params.imageUrl) {\n return dom.hide(image)\n }\n\n dom.show(image, '')\n\n // Src, alt\n image.setAttribute('src', params.imageUrl)\n image.setAttribute('alt', params.imageAlt)\n\n // Width, height\n dom.applyNumericalStyle(image, 'width', params.imageWidth)\n dom.applyNumericalStyle(image, 'height', params.imageHeight)\n\n // Class\n image.className = swalClasses.image\n dom.applyCustomClass(image, params, 'image')\n}\n","import { swalClasses } from '../../classes.js'\nimport { warn } from '../../utils.js'\nimport * as dom from '../../dom/index.js'\n\n/**\n * @typedef { import('sweetalert2') } SweetAlert2\n * @typedef { import('sweetalert2').SweetAlertOptions } SweetAlertOptions\n */\n\n/**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\nexport const renderProgressSteps = (instance, params) => {\n const progressStepsContainer = dom.getProgressSteps()\n if (!params.progressSteps || params.progressSteps.length === 0) {\n return dom.hide(progressStepsContainer)\n }\n\n dom.show(progressStepsContainer)\n progressStepsContainer.textContent = ''\n if (params.currentProgressStep >= params.progressSteps.length) {\n warn(\n 'Invalid currentProgressStep parameter, it should be less than progressSteps.length ' +\n '(currentProgressStep like JS arrays starts from 0)'\n )\n }\n\n params.progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step)\n progressStepsContainer.appendChild(stepEl)\n if (index === params.currentProgressStep) {\n dom.addClass(stepEl, swalClasses['active-progress-step'])\n }\n\n if (index !== params.progressSteps.length - 1) {\n const lineEl = createLineElement(params)\n progressStepsContainer.appendChild(lineEl)\n }\n })\n}\n\n/**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\nconst createStepElement = (step) => {\n const stepEl = document.createElement('li')\n dom.addClass(stepEl, swalClasses['progress-step'])\n dom.setInnerHtml(stepEl, step)\n return stepEl\n}\n\n/**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\nconst createLineElement = (params) => {\n const lineEl = document.createElement('li')\n dom.addClass(lineEl, swalClasses['progress-step-line'])\n if (params.progressStepsDistance) {\n dom.applyNumericalStyle(lineEl, 'width', params.progressStepsDistance)\n }\n return lineEl\n}\n","import * as dom from '../../dom/index.js'\n\nexport const renderTitle = (instance, params) => {\n const title = dom.getTitle()\n\n dom.toggle(title, params.title || params.titleText, 'block')\n\n if (params.title) {\n dom.parseHtmlToContainer(params.title, title)\n }\n\n if (params.titleText) {\n title.innerText = params.titleText\n }\n\n // Custom class\n dom.applyCustomClass(title, params, 'title')\n}\n","import { swalClasses } from '../../classes.js'\nimport * as dom from '../../dom/index.js'\n\n/**\n * @typedef { import('sweetalert2') } SweetAlert2\n * @typedef { import('sweetalert2').SweetAlertOptions } SweetAlertOptions\n */\n\n/**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\nexport const renderPopup = (instance, params) => {\n const container = dom.getContainer()\n const popup = dom.getPopup()\n\n // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n if (params.toast) {\n dom.applyNumericalStyle(container, 'width', params.width)\n popup.style.width = '100%'\n popup.insertBefore(dom.getLoader(), dom.getIcon())\n } else {\n dom.applyNumericalStyle(popup, 'width', params.width)\n }\n\n // Padding\n dom.applyNumericalStyle(popup, 'padding', params.padding)\n\n // Color\n if (params.color) {\n popup.style.color = params.color\n }\n\n // Background\n if (params.background) {\n popup.style.background = params.background\n }\n\n dom.hide(dom.getValidationMessage())\n\n // Classes\n addClasses(popup, params)\n}\n\n/**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\nconst addClasses = (popup, params) => {\n // Default Class + showClass when updating Swal.update({})\n popup.className = `${swalClasses.popup} ${dom.isVisible(popup) ? params.showClass.popup : ''}`\n\n if (params.toast) {\n dom.addClass([document.documentElement, document.body], swalClasses['toast-shown'])\n dom.addClass(popup, swalClasses.toast)\n } else {\n dom.addClass(popup, swalClasses.modal)\n }\n\n // Custom class\n dom.applyCustomClass(popup, params, 'popup')\n if (typeof params.customClass === 'string') {\n dom.addClass(popup, params.customClass)\n }\n\n // Icon class (#1842)\n if (params.icon) {\n dom.addClass(popup, swalClasses[`icon-${params.icon}`])\n }\n}\n","import { getPopup } from '../getters.js'\nimport { renderActions } from './renderActions.js'\nimport { renderContainer } from './renderContainer.js'\nimport { renderContent } from './renderContent.js'\nimport { renderFooter } from './renderFooter.js'\nimport { renderCloseButton } from './renderCloseButton.js'\nimport { renderIcon } from './renderIcon.js'\nimport { renderImage } from './renderImage.js'\nimport { renderProgressSteps } from './renderProgressSteps.js'\nimport { renderTitle } from './renderTitle.js'\nimport { renderPopup } from './renderPopup.js'\n\nexport const render = (instance, params) => {\n renderPopup(instance, params)\n renderContainer(instance, params)\n\n renderProgressSteps(instance, params)\n renderIcon(instance, params)\n renderImage(instance, params)\n renderTitle(instance, params)\n renderCloseButton(instance, params)\n\n renderContent(instance, params)\n renderActions(instance, params)\n renderFooter(instance, params)\n\n if (typeof params.didRender === 'function') {\n params.didRender(getPopup())\n }\n}\n","export const DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer',\n})\n","import { getContainer } from './dom/getters.js'\nimport { toArray } from './utils.js'\n\n// From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n// Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n// elements not within the active modal dialog will not be surfaced if a user opens a screen\n// reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\nexport const setAriaHidden = () => {\n const bodyChildren = toArray(document.body.children)\n bodyChildren.forEach((el) => {\n if (el === getContainer() || el.contains(getContainer())) {\n return\n }\n\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'))\n }\n el.setAttribute('aria-hidden', 'true')\n })\n}\n\nexport const unsetAriaHidden = () => {\n const bodyChildren = toArray(document.body.children)\n bodyChildren.forEach((el) => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'))\n el.removeAttribute('data-previous-aria-hidden')\n } else {\n el.removeAttribute('aria-hidden')\n }\n })\n}\n","import defaultParams from './params.js'\nimport { capitalizeFirstLetter, toArray, warn } from './utils.js'\n\nconst swalStringParams = ['swal-title', 'swal-html', 'swal-footer']\n\nexport const getTemplateParams = (params) => {\n const template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template\n if (!template) {\n return {}\n }\n /** @type {DocumentFragment} */\n const templateContent = template.content\n\n showWarningsForElements(templateContent)\n\n const result = Object.assign(\n getSwalParams(templateContent),\n getSwalButtons(templateContent),\n getSwalImage(templateContent),\n getSwalIcon(templateContent),\n getSwalInput(templateContent),\n getSwalStringParams(templateContent, swalStringParams)\n )\n return result\n}\n\n/**\n * @param {DocumentFragment} templateContent\n */\nconst getSwalParams = (templateContent) => {\n const result = {}\n toArray(templateContent.querySelectorAll('swal-param')).forEach((param) => {\n showWarningsForAttributes(param, ['name', 'value'])\n const paramName = param.getAttribute('name')\n const value = param.getAttribute('value')\n if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {\n result[paramName] = false\n }\n if (typeof defaultParams[paramName] === 'object') {\n result[paramName] = JSON.parse(value)\n }\n })\n return result\n}\n\n/**\n * @param {DocumentFragment} templateContent\n */\nconst getSwalButtons = (templateContent) => {\n const result = {}\n toArray(templateContent.querySelectorAll('swal-button')).forEach((button) => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label'])\n const type = button.getAttribute('type')\n result[`${type}ButtonText`] = button.innerHTML\n result[`show${capitalizeFirstLetter(type)}Button`] = true\n if (button.hasAttribute('color')) {\n result[`${type}ButtonColor`] = button.getAttribute('color')\n }\n if (button.hasAttribute('aria-label')) {\n result[`${type}ButtonAriaLabel`] = button.getAttribute('aria-label')\n }\n })\n return result\n}\n\n/**\n * @param {DocumentFragment} templateContent\n */\nconst getSwalImage = (templateContent) => {\n const result = {}\n /** @type {HTMLElement} */\n const image = templateContent.querySelector('swal-image')\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt'])\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src')\n }\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width')\n }\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height')\n }\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt')\n }\n }\n return result\n}\n\n/**\n * @param {DocumentFragment} templateContent\n */\nconst getSwalIcon = (templateContent) => {\n const result = {}\n /** @type {HTMLElement} */\n const icon = templateContent.querySelector('swal-icon')\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color'])\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type')\n }\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color')\n }\n result.iconHtml = icon.innerHTML\n }\n return result\n}\n\n/**\n * @param {DocumentFragment} templateContent\n */\nconst getSwalInput = (templateContent) => {\n const result = {}\n /** @type {HTMLElement} */\n const input = templateContent.querySelector('swal-input')\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value'])\n result.input = input.getAttribute('type') || 'text'\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label')\n }\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder')\n }\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value')\n }\n }\n const inputOptions = templateContent.querySelectorAll('swal-input-option')\n if (inputOptions.length) {\n result.inputOptions = {}\n toArray(inputOptions).forEach((option) => {\n showWarningsForAttributes(option, ['value'])\n const optionValue = option.getAttribute('value')\n const optionName = option.innerHTML\n result.inputOptions[optionValue] = optionName\n })\n }\n return result\n}\n\n/**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n */\nconst getSwalStringParams = (templateContent, paramNames) => {\n const result = {}\n for (const i in paramNames) {\n const paramName = paramNames[i]\n /** @type {HTMLElement} */\n const tag = templateContent.querySelector(paramName)\n if (tag) {\n showWarningsForAttributes(tag, [])\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim()\n }\n }\n return result\n}\n\n/**\n * @param {DocumentFragment} templateContent\n */\nconst showWarningsForElements = (templateContent) => {\n const allowedElements = swalStringParams.concat([\n 'swal-param',\n 'swal-button',\n 'swal-image',\n 'swal-icon',\n 'swal-input',\n 'swal-input-option',\n ])\n toArray(templateContent.children).forEach((el) => {\n const tagName = el.tagName.toLowerCase()\n if (allowedElements.indexOf(tagName) === -1) {\n warn(`Unrecognized element <${tagName}>`)\n }\n })\n}\n\n/**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\nconst showWarningsForAttributes = (el, allowedAttributes) => {\n toArray(el.attributes).forEach((attribute) => {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([\n `Unrecognized attribute \"${attribute.name}\" on <${el.tagName.toLowerCase()}>.`,\n `${\n allowedAttributes.length\n ? `Allowed attributes are: ${allowedAttributes.join(', ')}`\n : 'To set the value, use HTML within the element.'\n }`,\n ])\n }\n })\n}\n","export default {\n email: (string, validationMessage) => {\n return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]{2,24}$/.test(string)\n ? Promise.resolve()\n : Promise.resolve(validationMessage || 'Invalid email address')\n },\n url: (string, validationMessage) => {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string)\n ? Promise.resolve()\n : Promise.resolve(validationMessage || 'Invalid URL')\n },\n}\n","import { warn } from './utils.js'\nimport * as dom from './dom/index.js'\nimport defaultInputValidators from './defaultInputValidators.js'\n\nfunction setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (!params.inputValidator) {\n Object.keys(defaultInputValidators).forEach((key) => {\n if (params.input === key) {\n params.inputValidator = defaultInputValidators[key]\n }\n })\n }\n}\n\nfunction validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (\n !params.target ||\n (typeof params.target === 'string' && !document.querySelector(params.target)) ||\n (typeof params.target !== 'string' && !params.target.appendChild)\n ) {\n warn('Target parameter is not valid, defaulting to \"body\"')\n params.target = 'body'\n }\n}\n\n/**\n * Set type, text and actions on popup\n *\n * @param params\n */\nexport default function setParameters(params) {\n setDefaultInputValidators(params)\n\n // showLoaderOnConfirm && preConfirm\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn(\n 'showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' +\n 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' +\n 'https://sweetalert2.github.io/#ajax-request'\n )\n }\n\n validateCustomTargetElement(params)\n\n // Replace newlines with
    in title\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('
    ')\n }\n\n dom.init(params)\n}\n","export default class Timer {\n constructor(callback, delay) {\n this.callback = callback\n this.remaining = delay\n this.running = false\n\n this.start()\n }\n\n start() {\n if (!this.running) {\n this.running = true\n this.started = new Date()\n this.id = setTimeout(this.callback, this.remaining)\n }\n return this.remaining\n }\n\n stop() {\n if (this.running) {\n this.running = false\n clearTimeout(this.id)\n this.remaining -= new Date().getTime() - this.started.getTime()\n }\n return this.remaining\n }\n\n increase(n) {\n const running = this.running\n if (running) {\n this.stop()\n }\n this.remaining += n\n if (running) {\n this.start()\n }\n return this.remaining\n }\n\n getTimerLeft() {\n if (this.running) {\n this.stop()\n this.start()\n }\n return this.remaining\n }\n\n isRunning() {\n return this.running\n }\n}\n","import * as dom from './dom/index.js'\n\nexport const fixScrollbar = () => {\n // for queues, do not do this more than once\n if (dom.states.previousBodyPadding !== null) {\n return\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight) {\n // add padding so the content doesn't shift after removal of scrollbar\n dom.states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'))\n document.body.style.paddingRight = `${dom.states.previousBodyPadding + dom.measureScrollbar()}px`\n }\n}\n\nexport const undoScrollbar = () => {\n if (dom.states.previousBodyPadding !== null) {\n document.body.style.paddingRight = `${dom.states.previousBodyPadding}px`\n dom.states.previousBodyPadding = null\n }\n}\n","/* istanbul ignore file */\nimport * as dom from './dom/index.js'\nimport { swalClasses } from '../utils/classes.js'\n\n// Fix iOS scrolling http://stackoverflow.com/q/39626302\n\nexport const iOSfix = () => {\n const iOS =\n // @ts-ignore\n (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) ||\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)\n if (iOS && !dom.hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop\n document.body.style.top = `${offset * -1}px`\n dom.addClass(document.body, swalClasses.iosfix)\n lockBodyScroll()\n addBottomPaddingForTallPopups()\n }\n}\n\n/**\n * https://github.com/sweetalert2/sweetalert2/issues/1948\n */\nconst addBottomPaddingForTallPopups = () => {\n const ua = navigator.userAgent\n const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i)\n const webkit = !!ua.match(/WebKit/i)\n const iOSSafari = iOS && webkit && !ua.match(/CriOS/i)\n if (iOSSafari) {\n const bottomPanelHeight = 44\n if (dom.getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {\n dom.getContainer().style.paddingBottom = `${bottomPanelHeight}px`\n }\n }\n}\n\n/**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\nconst lockBodyScroll = () => {\n const container = dom.getContainer()\n let preventTouchMove\n container.ontouchstart = (e) => {\n preventTouchMove = shouldPreventTouchMove(e)\n }\n container.ontouchmove = (e) => {\n if (preventTouchMove) {\n e.preventDefault()\n e.stopPropagation()\n }\n }\n}\n\nconst shouldPreventTouchMove = (event) => {\n const target = event.target\n const container = dom.getContainer()\n if (isStylus(event) || isZoom(event)) {\n return false\n }\n if (target === container) {\n return true\n }\n if (\n !dom.isScrollable(container) &&\n target.tagName !== 'INPUT' && // #1603\n target.tagName !== 'TEXTAREA' && // #2266\n !(\n dom.isScrollable(dom.getHtmlContainer()) && // #1944\n dom.getHtmlContainer().contains(target)\n )\n ) {\n return true\n }\n return false\n}\n\n/**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\nconst isStylus = (event) => {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus'\n}\n\n/**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\nconst isZoom = (event) => {\n return event.touches && event.touches.length > 1\n}\n\nexport const undoIOSfix = () => {\n if (dom.hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10)\n dom.removeClass(document.body, swalClasses.iosfix)\n document.body.style.top = ''\n document.body.scrollTop = offset * -1\n }\n}\n","import * as dom from './dom/index.js'\nimport { swalClasses } from './classes.js'\nimport { fixScrollbar } from './scrollbarFix.js'\nimport { iOSfix } from './iosFix.js'\nimport { setAriaHidden } from './aria.js'\nimport globalState from '../globalState.js'\n\nexport const SHOW_CLASS_TIMEOUT = 10\n\n/**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param params\n */\nexport const openPopup = (params) => {\n const container = dom.getContainer()\n const popup = dom.getPopup()\n\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup)\n }\n\n const bodyStyles = window.getComputedStyle(document.body)\n const initialBodyOverflow = bodyStyles.overflowY\n addClasses(container, popup, params)\n\n // scrolling is 'hidden' until animation is done, after that 'auto'\n setTimeout(() => {\n setScrollingVisibility(container, popup)\n }, SHOW_CLASS_TIMEOUT)\n\n if (dom.isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow)\n setAriaHidden()\n }\n\n if (!dom.isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement\n }\n\n if (typeof params.didOpen === 'function') {\n setTimeout(() => params.didOpen(popup))\n }\n\n dom.removeClass(container, swalClasses['no-transition'])\n}\n\nconst swalOpenAnimationFinished = (event) => {\n const popup = dom.getPopup()\n if (event.target !== popup) {\n return\n }\n const container = dom.getContainer()\n popup.removeEventListener(dom.animationEndEvent, swalOpenAnimationFinished)\n container.style.overflowY = 'auto'\n}\n\nconst setScrollingVisibility = (container, popup) => {\n if (dom.animationEndEvent && dom.hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden'\n popup.addEventListener(dom.animationEndEvent, swalOpenAnimationFinished)\n } else {\n container.style.overflowY = 'auto'\n }\n}\n\nconst fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n iOSfix()\n\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n fixScrollbar()\n }\n\n // sweetalert2/issues/1247\n setTimeout(() => {\n container.scrollTop = 0\n })\n}\n\nconst addClasses = (container, popup, params) => {\n dom.addClass(container, params.showClass.backdrop)\n // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n popup.style.setProperty('opacity', '0', 'important')\n dom.show(popup, 'grid')\n setTimeout(() => {\n // Animate popup right after showing it\n dom.addClass(popup, params.showClass.popup)\n // and remove the opacity workaround\n popup.style.removeProperty('opacity')\n }, SHOW_CLASS_TIMEOUT) // 10ms in order to fix #2062\n\n dom.addClass([document.documentElement, document.body], swalClasses.shown)\n if (params.heightAuto && params.backdrop && !params.toast) {\n dom.addClass([document.documentElement, document.body], swalClasses['height-auto'])\n }\n}\n","import * as dom from '../utils/dom/index.js'\nimport Swal from '../sweetalert2.js'\nimport { swalClasses } from '../utils/classes.js'\n\n/**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n */\nconst showLoading = (buttonToReplace) => {\n let popup = dom.getPopup()\n if (!popup) {\n new Swal() // eslint-disable-line no-new\n }\n popup = dom.getPopup()\n const loader = dom.getLoader()\n\n if (dom.isToast()) {\n dom.hide(dom.getIcon())\n } else {\n replaceButton(popup, buttonToReplace)\n }\n dom.show(loader)\n\n popup.setAttribute('data-loading', true)\n popup.setAttribute('aria-busy', true)\n popup.focus()\n}\n\nconst replaceButton = (popup, buttonToReplace) => {\n const actions = dom.getActions()\n const loader = dom.getLoader()\n\n if (!buttonToReplace && dom.isVisible(dom.getConfirmButton())) {\n buttonToReplace = dom.getConfirmButton()\n }\n\n dom.show(actions)\n if (buttonToReplace) {\n dom.hide(buttonToReplace)\n loader.setAttribute('data-button-to-replace', buttonToReplace.className)\n }\n loader.parentNode.insertBefore(loader, buttonToReplace)\n dom.addClass([popup, actions], swalClasses.loading)\n}\n\nexport { showLoading, showLoading as enableLoading }\n","import * as dom from './index.js'\nimport { swalClasses } from '../classes.js'\nimport { getDirectChildByClass } from './domUtils.js'\nimport { asPromise, error, hasToPromiseFn, isPromise } from '../utils.js'\nimport { showLoading } from '../../staticMethods/showLoading.js'\n\nexport const handleInputOptionsAndValue = (instance, params) => {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params)\n } else if (\n ['text', 'email', 'number', 'tel', 'textarea'].includes(params.input) &&\n (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))\n ) {\n showLoading(dom.getConfirmButton())\n handleInputValue(instance, params)\n }\n}\n\nexport const getInputValue = (instance, innerParams) => {\n const input = instance.getInput()\n if (!input) {\n return null\n }\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input)\n case 'radio':\n return getRadioValue(input)\n case 'file':\n return getFileValue(input)\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value\n }\n}\n\nconst getCheckboxValue = (input) => (input.checked ? 1 : 0)\n\nconst getRadioValue = (input) => (input.checked ? input.value : null)\n\nconst getFileValue = (input) =>\n input.files.length ? (input.getAttribute('multiple') !== null ? input.files : input.files[0]) : null\n\nconst handleInputOptions = (instance, params) => {\n const popup = dom.getPopup()\n const processInputOptions = (inputOptions) =>\n populateInputOptions[params.input](popup, formatInputOptions(inputOptions), params)\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(dom.getConfirmButton())\n asPromise(params.inputOptions).then((inputOptions) => {\n instance.hideLoading()\n processInputOptions(inputOptions)\n })\n } else if (typeof params.inputOptions === 'object') {\n processInputOptions(params.inputOptions)\n } else {\n error(`Unexpected type of inputOptions! Expected object, Map or Promise, got ${typeof params.inputOptions}`)\n }\n}\n\nconst handleInputValue = (instance, params) => {\n const input = instance.getInput()\n dom.hide(input)\n asPromise(params.inputValue)\n .then((inputValue) => {\n input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : `${inputValue}`\n dom.show(input)\n input.focus()\n instance.hideLoading()\n })\n .catch((err) => {\n error(`Error in inputValue promise: ${err}`)\n input.value = ''\n dom.show(input)\n input.focus()\n instance.hideLoading()\n })\n}\n\nconst populateInputOptions = {\n select: (popup, inputOptions, params) => {\n const select = getDirectChildByClass(popup, swalClasses.select)\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option')\n option.value = optionValue\n dom.setInnerHtml(option, optionLabel)\n option.selected = isSelected(optionValue, params.inputValue)\n parent.appendChild(option)\n }\n inputOptions.forEach((inputOption) => {\n const optionValue = inputOption[0]\n const optionLabel = inputOption[1]\n // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n const optgroup = document.createElement('optgroup')\n optgroup.label = optionValue\n optgroup.disabled = false // not configurable for now\n select.appendChild(optgroup)\n optionLabel.forEach((o) => renderOption(optgroup, o[1], o[0]))\n } else {\n // case of \n valueFormatted = formatInputOptions(valueFormatted)\n }\n result.push([key, valueFormatted])\n })\n } else {\n Object.keys(inputOptions).forEach((key) => {\n let valueFormatted = inputOptions[key]\n if (typeof valueFormatted === 'object') {\n // case of \n valueFormatted = formatInputOptions(valueFormatted)\n }\n result.push([key, valueFormatted])\n })\n }\n return result\n}\n\nconst isSelected = (optionValue, inputValue) => {\n return inputValue && inputValue.toString() === optionValue.toString()\n}\n","import * as dom from '../utils/dom/index.js'\nimport { swalClasses } from '../utils/classes.js'\nimport privateProps from '../privateProps.js'\n\n/**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\nfunction hideLoading() {\n // do nothing if popup is closed\n const innerParams = privateProps.innerParams.get(this)\n if (!innerParams) {\n return\n }\n const domCache = privateProps.domCache.get(this)\n dom.hide(domCache.loader)\n if (dom.isToast()) {\n if (innerParams.icon) {\n dom.show(dom.getIcon())\n }\n } else {\n showRelatedButton(domCache)\n }\n dom.removeClass([domCache.popup, domCache.actions], swalClasses.loading)\n domCache.popup.removeAttribute('aria-busy')\n domCache.popup.removeAttribute('data-loading')\n domCache.confirmButton.disabled = false\n domCache.denyButton.disabled = false\n domCache.cancelButton.disabled = false\n}\n\nconst showRelatedButton = (domCache) => {\n const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'))\n if (buttonToReplace.length) {\n dom.show(buttonToReplace[0], 'inline-block')\n } else if (dom.allButtonsAreHidden()) {\n dom.hide(domCache.actions)\n }\n}\n\nexport { hideLoading, hideLoading as disableLoading }\n","import * as dom from '../utils/dom/index.js'\nimport privateProps from '../privateProps.js'\n\n/**\n * Gets the input DOM node, this method works with input parameter.\n * @returns {HTMLElement | null}\n */\nexport function getInput(instance) {\n const innerParams = privateProps.innerParams.get(instance || this)\n const domCache = privateProps.domCache.get(instance || this)\n if (!domCache) {\n return null\n }\n return dom.getInput(domCache.popup, innerParams.input)\n}\n","/**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\nexport default {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap(),\n}\n","import * as dom from '../utils/dom/index.js'\nimport * as domUtils from '../utils/dom/domUtils.js'\n\nexport {\n getContainer,\n getPopup,\n getTitle,\n getHtmlContainer,\n getImage,\n getIcon,\n getInputLabel,\n getCloseButton,\n getActions,\n getConfirmButton,\n getDenyButton,\n getCancelButton,\n getLoader,\n getFooter,\n getTimerProgressBar,\n getFocusableElements,\n getValidationMessage,\n isLoading,\n} from '../utils/dom/index.js'\n\n/*\n * Global function to determine if SweetAlert2 popup is shown\n */\nexport const isVisible = () => {\n return domUtils.isVisible(dom.getPopup())\n}\n\n/*\n * Global function to click 'Confirm' button\n */\nexport const clickConfirm = () => dom.getConfirmButton() && dom.getConfirmButton().click()\n\n/*\n * Global function to click 'Deny' button\n */\nexport const clickDeny = () => dom.getDenyButton() && dom.getDenyButton().click()\n\n/*\n * Global function to click 'Cancel' button\n */\nexport const clickCancel = () => dom.getCancelButton() && dom.getCancelButton().click()\n","import * as dom from './utils/dom/index.js'\nimport { DismissReason } from './utils/DismissReason.js'\nimport { callIfFunction } from './utils/utils.js'\nimport { clickConfirm } from './staticMethods/dom.js'\nimport privateProps from './privateProps.js'\n\nexport const removeKeydownHandler = (globalState) => {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture,\n })\n globalState.keydownHandlerAdded = false\n }\n}\n\nexport const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => {\n removeKeydownHandler(globalState)\n if (!innerParams.toast) {\n globalState.keydownHandler = (e) => keydownHandler(instance, e, dismissWith)\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : dom.getPopup()\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture,\n })\n globalState.keydownHandlerAdded = true\n }\n}\n\n// Focus handling\nexport const setFocus = (innerParams, index, increment) => {\n const focusableElements = dom.getFocusableElements()\n // search for visible elements and select the next possible match\n if (focusableElements.length) {\n index = index + increment\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1\n }\n\n return focusableElements[index].focus()\n }\n // no visible focusable elements, focus the popup\n dom.getPopup().focus()\n}\n\nconst arrowKeysNextButton = ['ArrowRight', 'ArrowDown']\n\nconst arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp']\n\nconst keydownHandler = (instance, e, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance)\n\n if (!innerParams) {\n return // This instance has already been destroyed\n }\n\n // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n if (e.isComposing || e.keyCode === 229) {\n return\n }\n\n if (innerParams.stopKeydownPropagation) {\n e.stopPropagation()\n }\n\n // ENTER\n if (e.key === 'Enter') {\n handleEnter(instance, e, innerParams)\n }\n\n // TAB\n else if (e.key === 'Tab') {\n handleTab(e, innerParams)\n }\n\n // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) {\n handleArrows(e.key)\n }\n\n // ESC\n else if (e.key === 'Escape') {\n handleEsc(e, innerParams, dismissWith)\n }\n}\n\nconst handleEnter = (instance, e, innerParams) => {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return\n }\n\n if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return // do not submit\n }\n\n clickConfirm()\n e.preventDefault()\n }\n}\n\nconst handleTab = (e, innerParams) => {\n const targetElement = e.target\n\n const focusableElements = dom.getFocusableElements()\n let btnIndex = -1\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i\n break\n }\n }\n\n // Cycle to the next button\n if (!e.shiftKey) {\n setFocus(innerParams, btnIndex, 1)\n }\n\n // Cycle to the prev button\n else {\n setFocus(innerParams, btnIndex, -1)\n }\n\n e.stopPropagation()\n e.preventDefault()\n}\n\nconst handleArrows = (key) => {\n const confirmButton = dom.getConfirmButton()\n const denyButton = dom.getDenyButton()\n const cancelButton = dom.getCancelButton()\n if (![confirmButton, denyButton, cancelButton].includes(document.activeElement)) {\n return\n }\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling'\n let buttonToFocus = document.activeElement\n for (let i = 0; i < dom.getActions().children.length; i++) {\n buttonToFocus = buttonToFocus[sibling]\n if (!buttonToFocus) {\n return\n }\n if (dom.isVisible(buttonToFocus) && buttonToFocus instanceof HTMLButtonElement) {\n break\n }\n }\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus()\n }\n}\n\nconst handleEsc = (e, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n e.preventDefault()\n dismissWith(DismissReason.esc)\n }\n}\n","import { undoScrollbar } from '../utils/scrollbarFix.js'\nimport { undoIOSfix } from '../utils/iosFix.js'\nimport { unsetAriaHidden } from '../utils/aria.js'\nimport * as dom from '../utils/dom/index.js'\nimport { swalClasses } from '../utils/classes.js'\nimport globalState, { restoreActiveElement } from '../globalState.js'\nimport privateProps from '../privateProps.js'\nimport privateMethods from '../privateMethods.js'\nimport { removeKeydownHandler } from '../keydown-handler.js'\n\n/*\n * Instance method to close sweetAlert\n */\n\nfunction removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (dom.isToast()) {\n triggerDidCloseAndDispose(instance, didClose)\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose))\n removeKeydownHandler(globalState)\n }\n\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent)\n // workaround for #2088\n // for some reason removing the container in Safari will scroll the document to bottom\n if (isSafari) {\n container.setAttribute('style', 'display:none !important')\n container.removeAttribute('class')\n container.innerHTML = ''\n } else {\n container.remove()\n }\n\n if (dom.isModal()) {\n undoScrollbar()\n undoIOSfix()\n unsetAriaHidden()\n }\n\n removeBodyClasses()\n}\n\nfunction removeBodyClasses() {\n dom.removeClass(\n [document.documentElement, document.body],\n [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]\n )\n}\n\nexport function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue)\n\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this)\n\n const didClose = triggerClosePopup(this)\n\n if (this.isAwaitingPromise()) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this)\n swalPromiseResolve(resolveValue)\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue)\n }\n}\n\nexport function isAwaitingPromise() {\n return !!privateProps.awaitingPromise.get(this)\n}\n\nconst triggerClosePopup = (instance) => {\n const popup = dom.getPopup()\n\n if (!popup) {\n return false\n }\n\n const innerParams = privateProps.innerParams.get(instance)\n if (!innerParams || dom.hasClass(popup, innerParams.hideClass.popup)) {\n return false\n }\n\n dom.removeClass(popup, innerParams.showClass.popup)\n dom.addClass(popup, innerParams.hideClass.popup)\n\n const backdrop = dom.getContainer()\n dom.removeClass(backdrop, innerParams.showClass.backdrop)\n dom.addClass(backdrop, innerParams.hideClass.backdrop)\n\n handlePopupAnimation(instance, popup, innerParams)\n\n return true\n}\n\nexport function rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this)\n handleAwaitingPromise(this)\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error)\n }\n}\n\nexport const handleAwaitingPromise = (instance) => {\n if (instance.isAwaitingPromise()) {\n privateProps.awaitingPromise.delete(instance)\n // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy()\n }\n }\n}\n\nconst prepareResolveValue = (resolveValue) => {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true,\n }\n }\n\n return Object.assign(\n {\n isConfirmed: false,\n isDenied: false,\n isDismissed: false,\n },\n resolveValue\n )\n}\n\nconst handlePopupAnimation = (instance, popup, innerParams) => {\n const container = dom.getContainer()\n // If animation is supported, animate\n const animationIsSupported = dom.animationEndEvent && dom.hasCssAnimation(popup)\n\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup)\n }\n\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose)\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose)\n }\n}\n\nconst animatePopup = (instance, popup, container, returnFocus, didClose) => {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(\n null,\n instance,\n container,\n returnFocus,\n didClose\n )\n popup.addEventListener(dom.animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback()\n delete globalState.swalCloseEventFinishedCallback\n }\n })\n}\n\nconst triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)()\n }\n instance._destroy()\n })\n}\n\nexport { close as closePopup, close as closeModal, close as closeToast }\n","import privateProps from '../privateProps.js'\n\nfunction setButtonsDisabled(instance, buttons, disabled) {\n const domCache = privateProps.domCache.get(instance)\n buttons.forEach((button) => {\n domCache[button].disabled = disabled\n })\n}\n\nfunction setInputDisabled(input, disabled) {\n if (!input) {\n return false\n }\n if (input.type === 'radio') {\n const radiosContainer = input.parentNode.parentNode\n const radios = radiosContainer.querySelectorAll('input')\n for (let i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled\n }\n } else {\n input.disabled = disabled\n }\n}\n\nexport function enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false)\n}\n\nexport function disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true)\n}\n\nexport function enableInput() {\n return setInputDisabled(this.getInput(), false)\n}\n\nexport function disableInput() {\n return setInputDisabled(this.getInput(), true)\n}\n","import * as dom from '../utils/dom/index.js'\nimport { swalClasses } from '../utils/classes.js'\nimport privateProps from '../privateProps.js'\n\n// Show block with validation message\nexport function showValidationMessage(error) {\n const domCache = privateProps.domCache.get(this)\n const params = privateProps.innerParams.get(this)\n dom.setInnerHtml(domCache.validationMessage, error)\n domCache.validationMessage.className = swalClasses['validation-message']\n if (params.customClass && params.customClass.validationMessage) {\n dom.addClass(domCache.validationMessage, params.customClass.validationMessage)\n }\n dom.show(domCache.validationMessage)\n\n const input = this.getInput()\n if (input) {\n input.setAttribute('aria-invalid', true)\n input.setAttribute('aria-describedby', swalClasses['validation-message'])\n dom.focusInput(input)\n dom.addClass(input, swalClasses.inputerror)\n }\n}\n\n// Hide block with validation message\nexport function resetValidationMessage() {\n const domCache = privateProps.domCache.get(this)\n if (domCache.validationMessage) {\n dom.hide(domCache.validationMessage)\n }\n\n const input = this.getInput()\n if (input) {\n input.removeAttribute('aria-invalid')\n input.removeAttribute('aria-describedby')\n dom.removeClass(input, swalClasses.inputerror)\n }\n}\n","import privateProps from '../privateProps.js'\n\nexport function getProgressSteps() {\n const domCache = privateProps.domCache.get(this)\n return domCache.progressSteps\n}\n","import * as dom from '../../src/utils/dom/index.js'\nimport { warn } from '../../src/utils/utils.js'\nimport privateProps from '../privateProps.js'\nimport { isUpdatableParameter } from '../../src/utils/params.js'\n\n/**\n * Updates popup parameters.\n */\nexport function update(params) {\n const popup = dom.getPopup()\n const innerParams = privateProps.innerParams.get(this)\n\n if (!popup || dom.hasClass(popup, innerParams.hideClass.popup)) {\n return warn(\n `You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.`\n )\n }\n\n const validUpdatableParams = filterValidParams(params)\n\n const updatedParams = Object.assign({}, innerParams, validUpdatableParams)\n\n dom.render(this, updatedParams)\n\n privateProps.innerParams.set(this, updatedParams)\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true,\n },\n })\n}\n\nconst filterValidParams = (params) => {\n const validUpdatableParams = {}\n Object.keys(params).forEach((param) => {\n if (isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param]\n } else {\n warn(`Invalid parameter to update: ${param}`)\n }\n })\n return validUpdatableParams\n}\n","import globalState from '../globalState.js'\nimport privateProps from '../privateProps.js'\nimport privateMethods from '../privateMethods.js'\n\nexport function _destroy() {\n const domCache = privateProps.domCache.get(this)\n const innerParams = privateProps.innerParams.get(this)\n\n if (!innerParams) {\n disposeWeakMaps(this) // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n return // This instance has already been destroyed\n }\n\n // Check if there is another Swal closing\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback()\n delete globalState.swalCloseEventFinishedCallback\n }\n\n // Check if there is a swal disposal defer timer\n if (globalState.deferDisposalTimer) {\n clearTimeout(globalState.deferDisposalTimer)\n delete globalState.deferDisposalTimer\n }\n\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy()\n }\n disposeSwal(this)\n}\n\nconst disposeSwal = (instance) => {\n disposeWeakMaps(instance)\n // Unset this.params so GC will dispose it (#1569)\n delete instance.params\n // Unset globalState props so GC will dispose globalState (#1569)\n delete globalState.keydownHandler\n delete globalState.keydownTarget\n // Unset currentInstance\n delete globalState.currentInstance\n}\n\nconst disposeWeakMaps = (instance) => {\n // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n if (instance.isAwaitingPromise()) {\n unsetWeakMaps(privateProps, instance)\n privateProps.awaitingPromise.set(instance, true)\n } else {\n unsetWeakMaps(privateMethods, instance)\n unsetWeakMaps(privateProps, instance)\n }\n}\n\nconst unsetWeakMaps = (obj, instance) => {\n for (const i in obj) {\n obj[i].delete(instance)\n }\n}\n","import { isVisible } from './utils/dom/domUtils.js'\nimport { getInputValue } from './utils/dom/inputUtils.js'\nimport { getDenyButton, getValidationMessage } from './utils/dom/getters.js'\nimport { asPromise, capitalizeFirstLetter, error } from './utils/utils.js'\nimport { showLoading } from './staticMethods/showLoading.js'\nimport { DismissReason } from './utils/DismissReason.js'\nimport privateProps from './privateProps.js'\nimport { handleAwaitingPromise } from './instanceMethods.js'\n\nexport const handleConfirmButtonClick = (instance) => {\n const innerParams = privateProps.innerParams.get(instance)\n instance.disableButtons()\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm')\n } else {\n confirm(instance, true)\n }\n}\n\nexport const handleDenyButtonClick = (instance) => {\n const innerParams = privateProps.innerParams.get(instance)\n instance.disableButtons()\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny')\n } else {\n deny(instance, false)\n }\n}\n\nexport const handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons()\n dismissWith(DismissReason.cancel)\n}\n\nconst handleConfirmOrDenyWithInput = (instance, type /* 'confirm' | 'deny' */) => {\n const innerParams = privateProps.innerParams.get(instance)\n if (!innerParams.input) {\n return error(\n `The \"input\" parameter is needed to be set when using returnInputValueOn${capitalizeFirstLetter(type)}`\n )\n }\n const inputValue = getInputValue(instance, innerParams)\n if (innerParams.inputValidator) {\n handleInputValidator(instance, inputValue, type)\n } else if (!instance.getInput().checkValidity()) {\n instance.enableButtons()\n instance.showValidationMessage(innerParams.validationMessage)\n } else if (type === 'deny') {\n deny(instance, inputValue)\n } else {\n confirm(instance, inputValue)\n }\n}\n\nconst handleInputValidator = (instance, inputValue, type /* 'confirm' | 'deny' */) => {\n const innerParams = privateProps.innerParams.get(instance)\n instance.disableInput()\n const validationPromise = Promise.resolve().then(() =>\n asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage))\n )\n validationPromise.then((validationMessage) => {\n instance.enableButtons()\n instance.enableInput()\n if (validationMessage) {\n instance.showValidationMessage(validationMessage)\n } else if (type === 'deny') {\n deny(instance, inputValue)\n } else {\n confirm(instance, inputValue)\n }\n })\n}\n\nconst deny = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || this)\n\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton())\n }\n\n if (innerParams.preDeny) {\n privateProps.awaitingPromise.set(instance || this, true) // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n const preDenyPromise = Promise.resolve().then(() =>\n asPromise(innerParams.preDeny(value, innerParams.validationMessage))\n )\n preDenyPromise\n .then((preDenyValue) => {\n if (preDenyValue === false) {\n instance.hideLoading()\n handleAwaitingPromise(instance)\n } else {\n instance.closePopup({ isDenied: true, value: typeof preDenyValue === 'undefined' ? value : preDenyValue })\n }\n })\n .catch((error) => rejectWith(instance || this, error))\n } else {\n instance.closePopup({ isDenied: true, value })\n }\n}\n\nconst succeedWith = (instance, value) => {\n instance.closePopup({ isConfirmed: true, value })\n}\n\nconst rejectWith = (instance, error) => {\n instance.rejectPromise(error)\n}\n\nconst confirm = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || this)\n\n if (innerParams.showLoaderOnConfirm) {\n showLoading()\n }\n\n if (innerParams.preConfirm) {\n instance.resetValidationMessage()\n privateProps.awaitingPromise.set(instance || this, true) // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n const preConfirmPromise = Promise.resolve().then(() =>\n asPromise(innerParams.preConfirm(value, innerParams.validationMessage))\n )\n preConfirmPromise\n .then((preConfirmValue) => {\n if (isVisible(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading()\n handleAwaitingPromise(instance)\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue)\n }\n })\n .catch((error) => rejectWith(instance || this, error))\n } else {\n succeedWith(instance, value)\n }\n}\n","import { callIfFunction } from './utils/utils.js'\nimport { DismissReason } from './utils/DismissReason.js'\nimport privateProps from './privateProps.js'\n\nexport const handlePopupClick = (instance, domCache, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance)\n if (innerParams.toast) {\n handleToastClick(instance, domCache, dismissWith)\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache)\n\n // Ignore click events that had mousedown on the container but mouseup on the popup\n handleContainerMousedown(domCache)\n\n handleModalClick(instance, domCache, dismissWith)\n }\n}\n\nconst handleToastClick = (instance, domCache, dismissWith) => {\n // Closing toast by internal click\n domCache.popup.onclick = () => {\n const innerParams = privateProps.innerParams.get(instance)\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return\n }\n dismissWith(DismissReason.close)\n }\n}\n\n/**\n * @param {*} innerParams\n * @returns {boolean}\n */\nconst isAnyButtonShown = (innerParams) => {\n return (\n innerParams.showConfirmButton ||\n innerParams.showDenyButton ||\n innerParams.showCancelButton ||\n innerParams.showCloseButton\n )\n}\n\nlet ignoreOutsideClick = false\n\nconst handleModalMousedown = (domCache) => {\n domCache.popup.onmousedown = () => {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = undefined\n // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n if (e.target === domCache.container) {\n ignoreOutsideClick = true\n }\n }\n }\n}\n\nconst handleContainerMousedown = (domCache) => {\n domCache.container.onmousedown = () => {\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = undefined\n // We also need to check if the mouseup target is a child of the popup\n if (e.target === domCache.popup || domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true\n }\n }\n }\n}\n\nconst handleModalClick = (instance, domCache, dismissWith) => {\n domCache.container.onclick = (e) => {\n const innerParams = privateProps.innerParams.get(instance)\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false\n return\n }\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop)\n }\n }\n}\n","import { error } from '../utils/utils.js'\n\nconst isJqueryElement = (elem) => typeof elem === 'object' && elem.jquery\nconst isElement = (elem) => elem instanceof Element || isJqueryElement(elem)\n\nexport const argsToParams = (args) => {\n const params = {}\n if (typeof args[0] === 'object' && !isElement(args[0])) {\n Object.assign(params, args[0])\n } else {\n ;['title', 'html', 'icon'].forEach((name, index) => {\n const arg = args[index]\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg\n } else if (arg !== undefined) {\n error(`Unexpected type of ${name}! Expected \"string\" or \"Element\", got ${typeof arg}`)\n }\n })\n }\n return params\n}\n","export function fire(...args) {\n const Swal = this // eslint-disable-line @typescript-eslint/no-this-alias\n return new Swal(...args)\n}\n","/**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param mixinParams\n */\nexport function mixin(mixinParams) {\n class MixinSwal extends this {\n _main(params, priorityMixinParams) {\n return super._main(params, Object.assign({}, mixinParams, priorityMixinParams))\n }\n }\n\n return MixinSwal\n}\n","import { animateTimerProgressBar, stopTimerProgressBar } from '../utils/dom/domUtils.js'\nimport globalState from '../globalState.js'\n\n/**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n */\nexport const getTimerLeft = () => {\n return globalState.timeout && globalState.timeout.getTimerLeft()\n}\n\n/**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\nexport const stopTimer = () => {\n if (globalState.timeout) {\n stopTimerProgressBar()\n return globalState.timeout.stop()\n }\n}\n\n/**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\nexport const resumeTimer = () => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.start()\n animateTimerProgressBar(remaining)\n return remaining\n }\n}\n\n/**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\nexport const toggleTimer = () => {\n const timer = globalState.timeout\n return timer && (timer.running ? stopTimer() : resumeTimer())\n}\n\n/**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n */\nexport const increaseTimer = (n) => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.increase(n)\n animateTimerProgressBar(remaining, true)\n return remaining\n }\n}\n\n/**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n */\nexport const isTimerRunning = () => {\n return globalState.timeout && globalState.timeout.isRunning()\n}\n","let bodyClickListenerAdded = false\nconst clickHandlers = {}\n\nexport function bindClickHandler(attr = 'data-swal-template') {\n clickHandlers[attr] = this\n\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener)\n bodyClickListenerAdded = true\n }\n}\n\nconst bodyClickListener = (event) => {\n for (let el = event.target; el && el !== document; el = el.parentNode) {\n for (const attr in clickHandlers) {\n const template = el.getAttribute(attr)\n if (template) {\n clickHandlers[attr].fire({ template })\n return\n }\n }\n }\n}\n","import defaultParams, { showWarningsForParams } from './utils/params.js'\nimport * as dom from './utils/dom/index.js'\nimport { callIfFunction } from './utils/utils.js'\nimport { DismissReason } from './utils/DismissReason.js'\nimport { unsetAriaHidden } from './utils/aria.js'\nimport { getTemplateParams } from './utils/getTemplateParams.js'\nimport setParameters from './utils/setParameters.js'\nimport Timer from './utils/Timer.js'\nimport { openPopup } from './utils/openPopup.js'\nimport { handleInputOptionsAndValue } from './utils/dom/inputUtils.js'\nimport { handleCancelButtonClick, handleConfirmButtonClick, handleDenyButtonClick } from './buttons-handlers.js'\nimport { handlePopupClick } from './popup-click-handler.js'\nimport { addKeydownHandler, setFocus } from './keydown-handler.js'\nimport * as staticMethods from './staticMethods.js'\nimport * as instanceMethods from './instanceMethods.js'\nimport privateProps from './privateProps.js'\nimport privateMethods from './privateMethods.js'\nimport globalState from './globalState.js'\n\nlet currentInstance\n\nclass SweetAlert {\n constructor(...args) {\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return\n }\n\n currentInstance = this\n\n // @ts-ignore\n const outerParams = Object.freeze(this.constructor.argsToParams(args))\n\n Object.defineProperties(this, {\n params: {\n value: outerParams,\n writable: false,\n enumerable: true,\n configurable: true,\n },\n })\n\n // @ts-ignore\n const promise = this._main(this.params)\n privateProps.promise.set(this, promise)\n }\n\n _main(userParams, mixinParams = {}) {\n showWarningsForParams(Object.assign({}, mixinParams, userParams))\n\n if (globalState.currentInstance) {\n globalState.currentInstance._destroy()\n if (dom.isModal()) {\n unsetAriaHidden()\n }\n }\n globalState.currentInstance = this\n\n const innerParams = prepareParams(userParams, mixinParams)\n setParameters(innerParams)\n Object.freeze(innerParams)\n\n // clear the previous timer\n if (globalState.timeout) {\n globalState.timeout.stop()\n delete globalState.timeout\n }\n\n // clear the restore focus timeout\n clearTimeout(globalState.restoreFocusTimeout)\n\n const domCache = populateDomCache(this)\n\n dom.render(this, innerParams)\n\n privateProps.innerParams.set(this, innerParams)\n\n return swalPromise(this, domCache, innerParams)\n }\n\n // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n then(onFulfilled) {\n const promise = privateProps.promise.get(this)\n return promise.then(onFulfilled)\n }\n\n finally(onFinally) {\n const promise = privateProps.promise.get(this)\n return promise.finally(onFinally)\n }\n}\n\nconst swalPromise = (instance, domCache, innerParams) => {\n return new Promise((resolve, reject) => {\n // functions to handle all closings/dismissals\n const dismissWith = (dismiss) => {\n instance.closePopup({ isDismissed: true, dismiss })\n }\n\n privateMethods.swalPromiseResolve.set(instance, resolve)\n privateMethods.swalPromiseReject.set(instance, reject)\n\n domCache.confirmButton.onclick = () => handleConfirmButtonClick(instance)\n domCache.denyButton.onclick = () => handleDenyButtonClick(instance)\n domCache.cancelButton.onclick = () => handleCancelButtonClick(instance, dismissWith)\n\n domCache.closeButton.onclick = () => dismissWith(DismissReason.close)\n\n handlePopupClick(instance, domCache, dismissWith)\n\n addKeydownHandler(instance, globalState, innerParams, dismissWith)\n\n handleInputOptionsAndValue(instance, innerParams)\n\n openPopup(innerParams)\n\n setupTimer(globalState, innerParams, dismissWith)\n\n initFocus(domCache, innerParams)\n\n // Scroll container to top on open (#1247, #1946)\n setTimeout(() => {\n domCache.container.scrollTop = 0\n })\n })\n}\n\nconst prepareParams = (userParams, mixinParams) => {\n const templateParams = getTemplateParams(userParams)\n const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams) // precedence is described in #2131\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass)\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass)\n return params\n}\n\nconst populateDomCache = (instance) => {\n const domCache = {\n popup: dom.getPopup(),\n container: dom.getContainer(),\n actions: dom.getActions(),\n confirmButton: dom.getConfirmButton(),\n denyButton: dom.getDenyButton(),\n cancelButton: dom.getCancelButton(),\n loader: dom.getLoader(),\n closeButton: dom.getCloseButton(),\n validationMessage: dom.getValidationMessage(),\n progressSteps: dom.getProgressSteps(),\n }\n privateProps.domCache.set(instance, domCache)\n\n return domCache\n}\n\nconst setupTimer = (globalState, innerParams, dismissWith) => {\n const timerProgressBar = dom.getTimerProgressBar()\n dom.hide(timerProgressBar)\n if (innerParams.timer) {\n globalState.timeout = new Timer(() => {\n dismissWith('timer')\n delete globalState.timeout\n }, innerParams.timer)\n if (innerParams.timerProgressBar) {\n dom.show(timerProgressBar)\n dom.applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar')\n setTimeout(() => {\n if (globalState.timeout && globalState.timeout.running) {\n // timer can be already stopped or unset at this point\n dom.animateTimerProgressBar(innerParams.timer)\n }\n })\n }\n }\n}\n\nconst initFocus = (domCache, innerParams) => {\n if (innerParams.toast) {\n return\n }\n\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return blurActiveElement()\n }\n\n if (!focusButton(domCache, innerParams)) {\n setFocus(innerParams, -1, 1)\n }\n}\n\nconst focusButton = (domCache, innerParams) => {\n if (innerParams.focusDeny && dom.isVisible(domCache.denyButton)) {\n domCache.denyButton.focus()\n return true\n }\n\n if (innerParams.focusCancel && dom.isVisible(domCache.cancelButton)) {\n domCache.cancelButton.focus()\n return true\n }\n\n if (innerParams.focusConfirm && dom.isVisible(domCache.confirmButton)) {\n domCache.confirmButton.focus()\n return true\n }\n\n return false\n}\n\nconst blurActiveElement = () => {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur()\n }\n}\n\n// Assign instance methods from src/instanceMethods/*.js to prototype\nObject.assign(SweetAlert.prototype, instanceMethods)\n\n// Assign static methods from src/staticMethods/*.js to constructor\nObject.assign(SweetAlert, staticMethods)\n\n// Proxy to instance methods to constructor, for now, for backwards compatibility\nObject.keys(instanceMethods).forEach((key) => {\n SweetAlert[key] = function (...args) {\n if (currentInstance) {\n return currentInstance[key](...args)\n }\n }\n})\n\nSweetAlert.DismissReason = DismissReason\n\nSweetAlert.version = '11.4.14'\n\nexport default SweetAlert\n","import SweetAlert from './SweetAlert.js'\n\nconst Swal = SweetAlert\n// @ts-ignore\nSwal.default = Swal\n\nexport default Swal\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.AOS=t():e.AOS=t()}(this,function(){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p=\"dist/\",t(0)}([function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}var i=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,x),(0,b.default)(w,x.once),w},O=function(){w=(0,h.default)(),j()},M=function(){w.forEach(function(e,t){e.node.removeAttribute(\"data-aos\"),e.node.removeAttribute(\"data-aos-easing\"),e.node.removeAttribute(\"data-aos-duration\"),e.node.removeAttribute(\"data-aos-delay\")})},S=function(e){return e===!0||\"mobile\"===e&&p.default.mobile()||\"phone\"===e&&p.default.phone()||\"tablet\"===e&&p.default.tablet()||\"function\"==typeof e&&e()===!0},_=function(e){x=i(x,e),w=(0,h.default)();var t=document.all&&!window.atob;return S(x.disable)||t?M():(x.disableMutationObserver||d.default.isSupported()||(console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '),x.disableMutationObserver=!0),document.querySelector(\"body\").setAttribute(\"data-aos-easing\",x.easing),document.querySelector(\"body\").setAttribute(\"data-aos-duration\",x.duration),document.querySelector(\"body\").setAttribute(\"data-aos-delay\",x.delay),\"DOMContentLoaded\"===x.startEvent&&[\"complete\",\"interactive\"].indexOf(document.readyState)>-1?j(!0):\"load\"===x.startEvent?window.addEventListener(x.startEvent,function(){j(!0)}):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener(\"resize\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"orientationchange\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"scroll\",(0,u.default)(function(){(0,b.default)(w,x.once)},x.throttleDelay)),x.disableMutationObserver||d.default.ready(\"[data-aos]\",O),w)};e.exports={init:_,refresh:j,refreshHard:O}},function(e,t){},,,,,function(e,t){(function(t){\"use strict\";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(f,t),M?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return S?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=O();return c(e)?d(e):void(h=setTimeout(f,a(e)))}function d(e){return h=void 0,_&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),o(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,k=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(s);return t=u(t)||0,i(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?x(u(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(s);return i(o)&&(r=\"leading\"in o?!!o.leading:r,a=\"trailing\"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t=\"undefined\"==typeof e?\"undefined\":c(e);return!!e&&(\"object\"==t||\"function\"==t)}function r(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":c(e))}function a(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":c(e))||r(e)&&k.call(e)==d}function u(e){if(\"number\"==typeof e)return e;if(a(e))return f;if(i(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(l,\"\");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?f:+e}var c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},s=\"Expected a function\",f=NaN,d=\"[object Symbol]\",l=/^\\s+|\\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y=\"object\"==(\"undefined\"==typeof t?\"undefined\":c(t))&&t&&t.Object===Object&&t,g=\"object\"==(\"undefined\"==typeof self?\"undefined\":c(self))&&self&&self.Object===Object&&self,h=y||g||Function(\"return this\")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){\"use strict\";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(f,t),M?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return S?x(i,y-o):i}function s(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=j();return s(e)?d(e):void(h=setTimeout(f,u(e)))}function d(e){return h=void 0,_&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=s(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),i(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,O=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?k(a(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e){var t=\"undefined\"==typeof e?\"undefined\":u(e);return!!e&&(\"object\"==t||\"function\"==t)}function i(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":u(e))}function r(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":u(e))||i(e)&&w.call(e)==f}function a(e){if(\"number\"==typeof e)return e;if(r(e))return s;if(o(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(d,\"\");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?s:+e}var u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},c=\"Expected a function\",s=NaN,f=\"[object Symbol]\",d=/^\\s+|\\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v=\"object\"==(\"undefined\"==typeof t?\"undefined\":u(t))&&t&&t.Object===Object&&t,y=\"object\"==(\"undefined\"==typeof self?\"undefined\":u(self))&&self&&self.Object===Object&&self,g=v||y||Function(\"return this\")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){\"use strict\";function n(e){var t=void 0,o=void 0,i=void 0;for(t=0;te.position?e.node.classList.add(\"aos-animate\"):\"undefined\"!=typeof o&&(\"false\"===o||!n&&\"true\"!==o)&&e.node.classList.remove(\"aos-animate\")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add(\"aos-init\"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute(\"data-aos-offset\"),anchor:e.getAttribute(\"data-aos-anchor\"),anchorPlacement:e.getAttribute(\"data-aos-anchor-placement\")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case\"top-bottom\":break;case\"center-bottom\":n+=e.offsetHeight/2;break;case\"bottom-bottom\":n+=e.offsetHeight;break;case\"top-center\":n+=i/2;break;case\"bottom-center\":n+=i/2+e.offsetHeight;break;case\"center-center\":n+=i/2+e.offsetHeight/2;break;case\"top-top\":n+=i;break;case\"bottom-top\":n+=e.offsetHeight+i;break;case\"center-top\":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-(\"BODY\"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-(\"BODY\"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){return e=e||document.querySelectorAll(\"[data-aos]\"),Array.prototype.map.call(e,function(e){return{node:e}})};t.default=n}])});","'use strict';\n\n// Function To Add Scroll To Top Button\nfunction scrollTop(options = { txtColor: '', background: '', size: '', borderRadius: '', boxShadow: '', position: { top: '', right: '', bottom: '', left: '' }, mobile: Boolean, breakpoint: Number, distance: Number, svgIcon: '' }) {\n\n // Load Button Element After Document Load\n window.addEventListener('load', function () {\n\n // Create Button Element\n let scrollTopBtn = document.createElement(\"div\");\n\n // Button Style\n scrollTopBtn.style = 'z-index: 10; display: none; justify-content: center; align-items: center; position:fixed; user-select: none';\n scrollTopBtn.style.cursor = (window.innerWidth >= 1024) ? 'pointer' : 'unset';\n scrollTopBtn.style.color = options.txtColor || '#fff';\n scrollTopBtn.style.background = options.background || 'rgba(0, 94, 255, 0.5)';\n scrollTopBtn.style.borderRadius = options.borderRadius || '9999px';\n scrollTopBtn.style.boxShadow = options.boxShadow || 'unset';\n scrollTopBtn.style.width = `${options.size}rem` || '3rem';\n scrollTopBtn.style.height = `${options.size}rem` || '3rem';\n scrollTopBtn.style.fontSize = `${options.size / 2}rem` || '1.5rem';\n scrollTopBtn.style.lineHeight = (options.size * 2 / 3) || '2';\n scrollTopBtn.style.top = options.position.top || 'unset';\n scrollTopBtn.style.right = options.position.right || '1rem';\n scrollTopBtn.style.bottom = options.position.bottom || '1rem';\n scrollTopBtn.style.left = options.position.left || 'unset';\n\n // Button Id Set\n scrollTopBtn.setAttribute('id', 'scrollTop');\n\n // Button Icon\n let scrollTopBtnSVG = options.svgIcon || ``;\n\n scrollTopBtn.innerHTML = scrollTopBtnSVG;\n\n // Append Button Element to Body\n document.body.append(scrollTopBtn);\n\n // Add Click Event To The Button To Move To Top\n let scrollTopEl = document.getElementById('scrollTop');\n scrollTopEl.addEventListener('click', function () {\n window.scroll({\n top: 0,\n behavior: 'smooth'\n });\n })\n\n // Animate Functions\n function fadeIn(el, display = String) {\n el.style.opacity = 0;\n el.style.display = display || \"block\";\n (function fade() {\n var val = parseFloat(el.style.opacity);\n if (!((val += .1) > 1)) {\n el.style.opacity = val;\n requestAnimationFrame(fade);\n }\n })();\n };\n\n function fadeOut(el) {\n el.style.opacity = 1;\n (function fade() {\n if ((el.style.opacity -= 0.1) < 0) {\n el.style.display = \"none\";\n } else {\n requestAnimationFrame(fade);\n }\n })();\n };\n\n // Scroll To Top Float Icon Show/Hide\n document.addEventListener('scroll', function () {\n\n let mobileShow = options.mobile;\n let breakPoint = options.breakpoint || 768;\n let distance = options.distance;\n // Active In Mobile Condition\n let w = (mobileShow) ? true : window.innerWidth >= breakPoint;\n\n // Distance From Top Condition\n let y = (distance) ? document.documentElement.scrollTop > distance : document.documentElement.scrollTop > 300;\n\n // Show/Hide Condition\n if (y && w) {\n if (scrollTopEl.style.display == 'none') {\n fadeIn(scrollTopEl, \"flex\");\n }\n } else {\n if (scrollTopEl.style.display == 'flex') {\n fadeOut(scrollTopEl);\n }\n }\n });\n });\n}\n\nexport default scrollTop;\n","'use strict';\n\n// Main Function to Prevent Copy From Page\nfunction preventCopy(options = { contentSelection: { status: false, msg: '' }, rightClick: { status: false, msg: '' }, devTools: { status: false, msg: '' } }) {\n\n // Prevent Content Selection\n !function () {\n let content_selection = options.contentSelection.status;\n let content_selection_msg = options.contentSelection.msg;\n\n let el = document.documentElement;\n let imgs = document.querySelectorAll('img');\n\n if (content_selection) {\n el.style.userSelect = 'none';\n for (let img of imgs) {\n img.setAttribute('draggable', false);\n img.addEventListener('drag', function(e) {\n e.preventDefault();\n alert(content_selection_msg);\n return false;\n })\n }\n }\n }();\n\n\n // Prevent Right Click\n !function () {\n let right_click = options.rightClick.status;\n let right_click_msg = options.rightClick.msg;\n\n if (right_click) {\n window.oncontextmenu = function () {\n alert(right_click_msg);\n return false;\n }\n }\n }();\n\n\n // Prevent Devtools\n !function () {\n let dev_tools = options.devTools.status;\n let dev_tools_msg = options.devTools.msg;\n\n if (dev_tools) {\n function detectDevTool(allow) {\n if (isNaN(+allow)) allow = 100;\n var start = +new Date(); // Validation of built-in Object tamper prevention.\n debugger;\n var end = +new Date(); // Validates too.\n if (isNaN(start) || isNaN(end) || end - start > allow) {\n if (dev_tools_msg) {\n alert(dev_tools_msg);\n }\n }\n }\n if (window.attachEvent) {\n if (document.readyState === \"complete\" || document.readyState === \"interactive\") {\n detectDevTool();\n window.attachEvent('onresize', detectDevTool);\n window.attachEvent('onmousemove', detectDevTool);\n window.attachEvent('onfocus', detectDevTool);\n window.attachEvent('onblur', detectDevTool);\n } else {\n setTimeout(argument.callee, 0);\n }\n } else {\n window.addEventListener('load', detectDevTool);\n window.addEventListener('resize', detectDevTool);\n window.addEventListener('mousemove', detectDevTool);\n window.addEventListener('focus', detectDevTool);\n window.addEventListener('blur', detectDevTool);\n }\n }\n }();\n}\n\nexport default preventCopy","/**\n * Skipped minification because the original files appears to be already minified.\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nconst t=new WeakMap,e=e=>\"function\"==typeof e&&t.has(e),s=void 0!==window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,i=(t,e,s=null)=>{for(;e!==s;){const s=e.nextSibling;t.removeChild(e),e=s}},n={},o={},r=`{{lit-${String(Math.random()).slice(2)}}}`,a=`\\x3c!--${r}--\\x3e`,l=new RegExp(`${r}|${a}`);class d{constructor(t,e){this.parts=[],this.element=e;const s=[],i=[],n=document.createTreeWalker(e.content,133,null,!1);let o=0,a=-1,d=0;const{strings:c,values:{length:f}}=t;for(;d0;){const e=c[d],s=u.exec(e)[2],i=s.toLowerCase()+\"$lit$\",n=t.getAttribute(i);t.removeAttribute(i);const o=n.split(l);this.parts.push({type:\"attribute\",index:a,name:s,strings:o}),d+=o.length-1}}\"TEMPLATE\"===t.tagName&&(i.push(t),n.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(r)>=0){const i=t.parentNode,n=e.split(l),o=n.length-1;for(let e=0;e{const s=t.length-e.length;return s>=0&&t.slice(s)===e},c=t=>-1!==t.index,p=()=>document.createComment(\"\"),u=/([ \\x09\\x0a\\x0c\\x0d])([^\\0-\\x1F\\x7F-\\x9F \"'>=/]+)([ \\x09\\x0a\\x0c\\x0d]*=[ \\x09\\x0a\\x0c\\x0d]*(?:[^ \\x09\\x0a\\x0c\\x0d\"'`<>=]*|\"[^\"]*|'[^']*))$/;\n/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nclass f{constructor(t,e,s){this.__parts=[],this.template=t,this.processor=e,this.options=s}update(t){let e=0;for(const s of this.__parts)void 0!==s&&s.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const t=s?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),e=[],i=this.template.parts,n=document.createTreeWalker(t,133,null,!1);let o,r=0,a=0,l=n.nextNode();for(;r-1||s)&&-1===t.indexOf(\"--\\x3e\",n+1);const o=u.exec(t);e+=null===o?t+(s?m:a):t.substr(0,o.index)+o[1]+o[2]+\"$lit$\"+o[3]+r}return e+=this.strings[t],e}getTemplateElement(){const t=document.createElement(\"template\");return t.innerHTML=this.getHTML(),t}}\n/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */const _=t=>null===t||!(\"object\"==typeof t||\"function\"==typeof t),y=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class v{constructor(t,e,s){this.dirty=!0,this.element=t,this.name=e,this.strings=s,this.parts=[];for(let t=0;tthis.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;e(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=n,t(this)}if(this.__pendingValue===n)return;const t=this.__pendingValue,s=this.value,i=null==t||null!=s&&(t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive),o=null!=t&&(null==s||i);i&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),o&&(this.__options=N(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=n}handleEvent(t){\"function\"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const N=t=>t&&(C?{capture:t.capture,passive:t.passive,once:t.once}:t.capture)\n/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */;const E=new class{handleAttributeExpressions(t,e,s,i){const n=e[0];if(\".\"===n){return new x(t,e.slice(1),s).parts}return\"@\"===n?[new T(t,e.slice(1),i.eventContext)]:\"?\"===n?[new b(t,e.slice(1),s)]:new v(t,e,s).parts}handleTextExpression(t){return new S(t)}};\n/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */function A(t){let e=k.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},k.set(t.type,e));let s=e.stringsArray.get(t.strings);if(void 0!==s)return s;const i=t.strings.join(r);return s=e.keyString.get(i),void 0===s&&(s=new d(t,t.getTemplateElement()),e.keyString.set(i,s)),e.stringsArray.set(t.strings,s),s}const k=new Map,V=new WeakMap;\n/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n(window.litHtmlVersions||(window.litHtmlVersions=[])).push(\"1.1.2\");const O=(t,...e)=>new g(t,e,\"html\",E)\n/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */;function U(t,e){const{element:{content:s},parts:i}=t,n=document.createTreeWalker(s,133,null,!1);let o=M(i),r=i[o],a=-1,l=0;const d=[];let h=null;for(;n.nextNode();){a++;const t=n.currentNode;for(t.previousSibling===h&&(h=null),e.has(t)&&(d.push(t),null===h&&(h=t)),null!==h&&l++;void 0!==r&&r.index===a;)r.index=null!==h?-1:r.index-l,o=M(i,o),r=i[o]}d.forEach(t=>t.parentNode.removeChild(t))}const R=t=>{let e=11===t.nodeType?0:1;const s=document.createTreeWalker(t,133,null,!1);for(;s.nextNode();)e++;return e},M=(t,e=-1)=>{for(let s=e+1;s`${t}--${e}`;let $=!0;void 0===window.ShadyCSS?$=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn(\"Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1.\"),$=!1);const j=t=>e=>{const s=B(e.type,t);let i=k.get(s);void 0===i&&(i={stringsArray:new WeakMap,keyString:new Map},k.set(s,i));let n=i.stringsArray.get(e.strings);if(void 0!==n)return n;const o=e.strings.join(r);if(n=i.keyString.get(o),void 0===n){const s=e.getTemplateElement();$&&window.ShadyCSS.prepareTemplateDom(s,t),n=new d(e,s),i.keyString.set(o,n)}return i.stringsArray.set(e.strings,n),n},z=[\"html\",\"svg\"],q=new Set,F=(t,e,s)=>{q.add(t);const i=s?s.element:document.createElement(\"template\"),n=e.querySelectorAll(\"style\"),{length:o}=n;if(0===o)return void window.ShadyCSS.prepareTemplateStyles(i,t);const r=document.createElement(\"style\");for(let t=0;t{z.forEach(e=>{const s=k.get(B(e,t));void 0!==s&&s.keyString.forEach(t=>{const{element:{content:e}}=t,s=new Set;Array.from(e.querySelectorAll(\"style\")).forEach(t=>{s.add(t)}),U(t,s)})})})(t);const a=i.content;s?function(t,e,s=null){const{element:{content:i},parts:n}=t;if(null==s)return void i.appendChild(e);const o=document.createTreeWalker(i,133,null,!1);let r=M(n),a=0,l=-1;for(;o.nextNode();){for(l++,o.currentNode===s&&(a=R(e),s.parentNode.insertBefore(e,s));-1!==r&&n[r].index===l;){if(a>0){for(;-1!==r;)n[r].index+=a,r=M(n,r);return}r=M(n,r)}}}(s,r,a.firstChild):a.insertBefore(r,a.firstChild),window.ShadyCSS.prepareTemplateStyles(i,t);const l=a.querySelector(\"style\");if(window.ShadyCSS.nativeShadow&&null!==l)e.insertBefore(l.cloneNode(!0),e.firstChild);else if(s){a.insertBefore(r,a.firstChild);const t=new Set;t.add(r),U(s,t)}};window.JSCompiler_renameProperty=(t,e)=>t;const I={toAttribute(t,e){switch(e){case Boolean:return t?\"\":null;case Object:case Array:return null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){switch(e){case Boolean:return null!==t;case Number:return null===t?null:Number(t);case Object:case Array:return JSON.parse(t)}return t}},W=(t,e)=>e!==t&&(e==e||t==t),L={attribute:!0,type:String,converter:I,reflect:!1,hasChanged:W},H=Promise.resolve(!0);class D extends HTMLElement{constructor(){super(),this._updateState=0,this._instanceProperties=void 0,this._updatePromise=H,this._hasConnectedResolver=void 0,this._changedProperties=new Map,this._reflectingProperties=void 0,this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach((e,s)=>{const i=this._attributeNameForProperty(s,e);void 0!==i&&(this._attributeToPropertyMap.set(i,s),t.push(i))}),t}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty(\"_classProperties\",this))){this._classProperties=new Map;const t=Object.getPrototypeOf(this)._classProperties;void 0!==t&&t.forEach((t,e)=>this._classProperties.set(e,t))}}static createProperty(t,e=L){if(this._ensureClassProperties(),this._classProperties.set(t,e),e.noAccessor||this.prototype.hasOwnProperty(t))return;const s=\"symbol\"==typeof t?Symbol():`__${t}`;Object.defineProperty(this.prototype,t,{get(){return this[s]},set(e){const i=this[t];this[s]=e,this._requestUpdate(t,i)},configurable:!0,enumerable:!0})}static finalize(){const t=Object.getPrototypeOf(this);if(t.hasOwnProperty(\"finalized\")||t.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty(\"properties\",this))){const t=this.properties,e=[...Object.getOwnPropertyNames(t),...\"function\"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]];for(const s of e)this.createProperty(s,t[s])}}static _attributeNameForProperty(t,e){const s=e.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,e,s=W){return s(t,e)}static _propertyValueFromAttribute(t,e){const s=e.type,i=e.converter||I,n=\"function\"==typeof i?i:i.fromAttribute;return n?n(t,s):t}static _propertyValueToAttribute(t,e){if(void 0===e.reflect)return;const s=e.type,i=e.converter;return(i&&i.toAttribute||I.toAttribute)(t,s)}initialize(){this._saveInstanceProperties(),this._requestUpdate()}_saveInstanceProperties(){this.constructor._classProperties.forEach((t,e)=>{if(this.hasOwnProperty(e)){const t=this[e];delete this[e],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(e,t)}})}_applyInstanceProperties(){this._instanceProperties.forEach((t,e)=>this[e]=t),this._instanceProperties=void 0}connectedCallback(){this._updateState=32|this._updateState,this._hasConnectedResolver&&(this._hasConnectedResolver(),this._hasConnectedResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(t,e,s){e!==s&&this._attributeToProperty(t,s)}_propertyToAttribute(t,e,s=L){const i=this.constructor,n=i._attributeNameForProperty(t,s);if(void 0!==n){const t=i._propertyValueToAttribute(e,s);if(void 0===t)return;this._updateState=8|this._updateState,null==t?this.removeAttribute(n):this.setAttribute(n,t),this._updateState=-9&this._updateState}}_attributeToProperty(t,e){if(8&this._updateState)return;const s=this.constructor,i=s._attributeToPropertyMap.get(t);if(void 0!==i){const t=s._classProperties.get(i)||L;this._updateState=16|this._updateState,this[i]=s._propertyValueFromAttribute(e,t),this._updateState=-17&this._updateState}}_requestUpdate(t,e){let s=!0;if(void 0!==t){const i=this.constructor,n=i._classProperties.get(t)||L;i._valueHasChanged(this[t],e,n.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,e),!0!==n.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,n))):s=!1}!this._hasRequestedUpdate&&s&&this._enqueueUpdate()}requestUpdate(t,e){return this._requestUpdate(t,e),this.updateComplete}async _enqueueUpdate(){let t,e;this._updateState=4|this._updateState;const s=this._updatePromise;this._updatePromise=new Promise((s,i)=>{t=s,e=i});try{await s}catch(t){}this._hasConnected||await new Promise(t=>this._hasConnectedResolver=t);try{const t=this.performUpdate();null!=t&&await t}catch(t){e(t)}t(!this._hasRequestedUpdate)}get _hasConnected(){return 32&this._updateState}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){this._instanceProperties&&this._applyInstanceProperties();let t=!1;const e=this._changedProperties;try{t=this.shouldUpdate(e),t&&this.update(e)}catch(e){throw t=!1,e}finally{this._markUpdated()}t&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(e)),this.updated(e))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this._updatePromise}shouldUpdate(t){return!0}update(t){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach((t,e)=>this._propertyToAttribute(e,this[e],t)),this._reflectingProperties=void 0)}updated(t){}firstUpdated(t){}}D.finalized=!0;\n/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nconst J=(t,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?Object.assign({},e,{finisher(s){s.createProperty(e.key,t)}}):{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(s){s.createProperty(e.key,t)}};function G(t){return(e,s)=>void 0!==s?((t,e,s)=>{e.constructor.createProperty(s,t)})(t,e,s):J(t,e)}\n/**\n@license\nCopyright (c) 2019 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at\nhttp://polymer.github.io/LICENSE.txt The complete set of authors may be found at\nhttp://polymer.github.io/AUTHORS.txt The complete set of contributors may be\nfound at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as\npart of the polymer project is also subject to an additional IP rights grant\nfound at http://polymer.github.io/PATENTS.txt\n*/const K=\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,Y=Symbol();class Z{constructor(t,e){if(e!==Y)throw new Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t}get styleSheet(){return void 0===this._styleSheet&&(K?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}const Q=(t,...e)=>{const s=e.reduce((e,s,i)=>e+(t=>{if(t instanceof Z)return t.cssText;if(\"number\"==typeof t)return t;throw new Error(`Value passed to 'css' function must be a 'css' function result: ${t}. Use 'unsafeCSS' to pass non-literal values, but\\n take care to ensure page security.`)})(s)+t[i+1],t[0]);return new Z(s,Y)};\n/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n(window.litElementVersions||(window.litElementVersions=[])).push(\"2.2.1\");const X=t=>t.flat?t.flat(1/0):function t(e,s=[]){for(let i=0,n=e.length;i(t.add(e),t),new Set).forEach(t=>e.unshift(t))}else t&&e.push(t);return e}initialize(){super.initialize(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:\"open\"})}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?K?this.renderRoot.adoptedStyleSheets=t.map(t=>t.styleSheet):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map(t=>t.cssText),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){super.update(t);const e=this.render();e instanceof g&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach(t=>{const e=document.createElement(\"style\");e.textContent=t.cssText,this.renderRoot.appendChild(e)}))}render(){}}tt.finalized=!0,tt.render=(t,e,s)=>{if(!s||\"object\"!=typeof s||!s.scopeName)throw new Error(\"The `scopeName` option is required.\");const n=s.scopeName,o=V.has(e),r=$&&11===e.nodeType&&!!e.host,a=r&&!q.has(n),l=a?document.createDocumentFragment():e;if(((t,e,s)=>{let n=V.get(e);void 0===n&&(i(e,e.firstChild),V.set(e,n=new S(Object.assign({templateFactory:A},s))),n.appendInto(e)),n.setValue(t),n.commit()})(t,l,Object.assign({templateFactory:j(n)},s)),a){const t=V.get(l);V.delete(l);const s=t.value instanceof f?t.value.template:void 0;F(n,l,s),i(e,e.firstChild),e.appendChild(l),V.set(e,t)}!o&&r&&window.ShadyCSS.styleElement(e.host)};var et=function(t,e,s,i){var n,o=arguments.length,r=o<3?e:null===i?i=Object.getOwnPropertyDescriptor(e,s):i;if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.decorate)r=Reflect.decorate(t,e,s,i);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(r=(o<3?n(r):o>3?n(e,s,r):n(e,s))||r);return o>3&&r&&Object.defineProperty(e,s,r),r};let st=class extends tt{constructor(){super(...arguments),this.swpath=\"../sw.js\",this.updateevent=\"SKIP_WAITING\",this.updatemessage=\"An update for this app is available\",this.readyToAsk=!1,this.showStorageEstimate=!1,this.showOfflineToast=!1,this.offlineToastDuration=2400,this.storageUsed=null}static get styles(){return Q`:host{font-family:sans-serif;--toast-background:#3c3c3c;--button-background:#0b0b0b}#updateToast{position:fixed;bottom:16px;right:16px;background:var(--toast-background);color:#fff;padding:1em;border-radius:4px;display:flex;align-items:center;justify-content:space-between;min-width:22em;font-weight:600;animation-name:fadein;animation-duration:.3s}#storageToast{position:fixed;bottom:16px;right:16px;background:var(--toast-background);color:#fff;padding:1em;border-radius:4px;display:flex;flex-direction:column;align-items:flex-end;font-weight:600}#storageEstimate{font-size:10px;margin-top:8px}#updateToast button{color:#fff;border:none;background:var(--button-background);padding:8px;border-radius:24px;text-transform:lowercase;padding-left:14px;padding-right:14px;font-weight:700}@keyframes fadein{from{opacity:0}to{opacity:1}}`}async firstUpdated(){if(this.swpath&&\"serviceWorker\"in navigator){const t=await navigator.serviceWorker.register(this.swpath);if(t.installing&&navigator.storage){const t=await navigator.storage.estimate();if(t){this.storageUsed=this.formatBytes(t.usage),this.showOfflineToast=!0,await this.updateComplete;const e=this.shadowRoot.querySelector(\"#storageToast\").animate([{opacity:0},{opacity:1}],{fill:\"forwards\",duration:280});setTimeout(async()=>{e.onfinish=()=>{this.showOfflineToast=!1},await e.reverse()},this.offlineToastDuration)}}t.onupdatefound=async()=>{let e=t.installing;e.onstatechange=()=>{\"installed\"===e.state&&this.dispatchEvent(new Event(\"pwaUpdate\"))}}}this.setupEvents()}setupEvents(){this.addEventListener(\"pwaUpdate\",async()=>{navigator.serviceWorker&&(this.swreg=await navigator.serviceWorker.getRegistration(),this.swreg&&this.swreg.waiting&&(this.readyToAsk=!0))})}doUpdate(){this.swreg.waiting.postMessage({type:this.updateevent}),window.location.reload()}formatBytes(t,e=2){if(0===t)return\"0 Bytes\";const s=e<0?0:e,i=Math.floor(Math.log(t)/Math.log(1024));return parseFloat((t/Math.pow(1024,i)).toFixed(s))+\" \"+[\"Bytes\",\"KB\",\"MB\",\"GB\",\"TB\",\"PB\",\"EB\",\"ZB\",\"YB\"][i]}render(){return O`
    ${this.readyToAsk?O`
    ${this.updatemessage}
    `:null} ${this.showOfflineToast?O`
    آماده استفاده به صورت آفلاین ${this.showStorageEstimate?O`Cached ${this.storageUsed}`:null}
    `:null}
    `}};var it;et([G({type:String})],st.prototype,\"swpath\",void 0),et([G({type:String})],st.prototype,\"updateevent\",void 0),et([G({type:String})],st.prototype,\"updatemessage\",void 0),et([G({type:Boolean})],st.prototype,\"readyToAsk\",void 0),et([G({type:Boolean})],st.prototype,\"showStorageEstimate\",void 0),et([G({type:Boolean})],st.prototype,\"showOfflineToast\",void 0),et([G({type:Number})],st.prototype,\"offlineToastDuration\",void 0),et([G({type:String})],st.prototype,\"storageUsed\",void 0),st=et([(it=\"pwa-update\",t=>\"function\"==typeof t?((t,e)=>(window.customElements.define(t,e),e))(it,t):((t,e)=>{const{kind:s,elements:i}=e;return{kind:s,elements:i,finisher(e){window.customElements.define(t,e)}}})(it,t))],st);export{st as pwaupdate};\n","import \"./fontawesome\";\nimport \"./skip-link-focus-fix\";\nimport Velocity from \"velocity-animate\";\nimport emailjs from \"emailjs-com\";\nimport Swal from \"sweetalert2\";\nimport \"sweetalert2/dist/sweetalert2.min.css\";\nimport AOS from \"aos\";\nimport \"aos/dist/aos.css\";\nimport scrollTop from \"./scrollTop\";\nimport preventCopy from \"./preventCopy\";\nimport alertBar from \"./alertBar\";\nimport \"./pwaupdate\";\n\n(function () {\n 'use strict';\n\n /* BEGIN: AOS Animate */\n AOS.init();\n /* END: AOS Animate */\n\n /* BEGIN: Mobile Nav Menu */\n (function () {\n 'use strict';\n\n let navMenu = document.getElementById('nav-menu');\n let mobileNavButton = document.getElementById('mobile-nav-btn');\n // 'navHeight' is defined in html source\n\n mobileNavButton.addEventListener('click', function (e) {\n if (navMenu.offsetHeight == 0) {\n e.preventDefault();\n Velocity(navMenu, { height: navHeight }, { duration: 250 });\n } else {\n e.preventDefault();\n Velocity(navMenu, { height: 0 }, { duration: 250 });\n }\n });\n })();\n /* END: Mobile Nav Menu */\n\n /* BEGIN: Preloader */\n (function () {\n 'use strict';\n\n function preLoader(elID = String) {\n function fadeOut(el) {\n el.style.opacity = 1;\n (function fade() {\n if ((el.style.opacity -= .1) < 0) {\n el.style.display = \"none\";\n } else {\n requestAnimationFrame(fade);\n }\n })();\n };\n window.addEventListener('load', function () {\n let el = document.getElementById(elID);\n fadeOut(el);\n });\n }\n preLoader('preloader');\n })();\n /* END: Preloader */\n\n /* BEGIN: Contact Form EmailJs */\n (function () {\n 'use strict';\n\n emailjs.init(\"user_NTiDkqUqnCXi38y62iAVC\");\n const btn = document.getElementById('contact-send');\n document.getElementById('contact-form').addEventListener('submit', function (e) {\n e.preventDefault();\n\n btn.setAttribute('disabled', 'true');\n\n const serviceID = 'service_9p4lr2g';\n const templateID = 'template_n59zuvr';\n\n emailjs.sendForm(serviceID, templateID, this)\n .then(() => {\n btn.removeAttribute('disabled');\n this.reset();\n Swal.fire(\n 'پیام شما با موفقت ارسال شد!',\n 'به زودی با شما تماس خواهیم گرفت!',\n 'success'\n );\n }, (err) => {\n btn.removeAttribute('disabled');\n // alert(JSON.stringify(err));\n Swal.fire(\n 'ارسال پیام با خطا مواجه شد!',\n 'لطفا مجددا تلاش نمایید!',\n 'error'\n );\n });\n });\n })();\n /* END: Contact Form EmailJs */\n\n /* BEGIN: Scroll To Top Button */\n let buttonStyles = {\n default: {\n txtColor: '#fff',\n background: 'rgba(0, 94, 255, 0.5)',\n borderRadius: '8px',\n boxShadow: 'unset',\n size: 3,\n position: {\n top: 'unset',\n right: '8px',\n bottom: '8px',\n left: 'unset',\n },\n mobile: true,\n breakpoint: 768,\n distance: 300,\n svgIcon: ``\n },\n style_1: {\n txtColor: '#fff',\n background: 'transparent',\n borderRadius: '8px',\n boxShadow: '5px 5px 10px #b3b3b3, -5px -5px 10px #ffffff',\n size: 3,\n position: {\n top: 'unset',\n right: '8px',\n bottom: '8px',\n left: 'unset',\n },\n mobile: true,\n breakpoint: 768,\n distance: 300,\n svgIcon: ``\n }\n }\n scrollTop(buttonStyles.default);\n /* END: Scroll To Top Button */\n\n /* BEGIN: Prevent Copy */\n preventCopy({\n contentSelection: {\n status: false,\n msg: 'Content Selection IS Disabled!'\n },\n rightClick: {\n status: false,\n msg: 'Right Click IS Disabled!'\n },\n devTools: {\n status: false,\n msg: 'Dev Tools Are Disabled!'\n }\n });\n /* END: Prevent Copy */\n\n /* BEGIN: Alert Bar */\n // alertBar();\n /* END: Alert Bar */\n\n /* BEGIN: PWA Element */\n const el = document.createElement('pwa-update');\n el.style.fontFamily = 'inherit';\n document.body.appendChild(el);\n /* END: PWA Element */\n})();"],"names":["p","removeClass","A","B","C","addClass","performance","EmailJSResponseStatus_1","UI_1","require$$0","require$$1","getProgressSteps","isVisible","getInput","resetValidationMessage","dom.getActions","dom.getLoader","dom.hide","dom.show","dom.applyCustomClass","dom.setInnerHtml","dom.getConfirmButton","dom.getDenyButton","dom.getCancelButton","dom.removeClass","dom.addClass","dom.toggle","dom.getContainer","dom.getPopup","dom.getDirectChildByClass","dom.focusInput","dom.getInput","dom.getHtmlContainer","dom.parseHtmlToContainer","dom.getFooter","dom.getCloseButton","dom.getIcon","dom.setStyle","dom.getImage","dom.applyNumericalStyle","dom.getProgressSteps","dom.getTitle","dom.getValidationMessage","addClasses","dom.isVisible","dom.init","dom.states","dom.measureScrollbar","dom.hasClass","dom.isScrollable","dom.isModal","dom.isToast","dom.animationEndEvent","dom.hasCssAnimation","dom.allButtonsAreHidden","domUtils.isVisible","dom.getFocusableElements","dom.render","this","dom.getTimerProgressBar","dom.animateTimerProgressBar","Velocity"],"mappings":"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CD,YAAa,CAAE,EACf,OAAQ,OACR,MAAO,OACP,SAAU,GACV,WAAY,GACZ,kBAAmB,GACnB,eAAgB,GAChB,cAAe,GACf,uBAAwB,GACxB,uBAAwB,GACxB,kBAAmB,GACnB,eAAgB,GAChB,iBAAkB,GAClB,WAAY,OACZ,QAAS,OACT,kBAAmB,KACnB,uBAAwB,GACxB,mBAAoB,OACpB,eAAgB,KAChB,oBAAqB,GACrB,gBAAiB,OACjB,iBAAkB,SAClB,sBAAuB,GACvB,kBAAmB,OACnB,eAAgB,GAChB,eAAgB,GAChB,aAAc,GACd,UAAW,GACX,YAAa,GACb,YAAa,GACb,gBAAiB,GACjB,gBAAiB,UACjB,qBAAsB,oBACtB,WAAY,GACZ,oBAAqB,GACrB,iBAAkB,GAClB,SAAU,OACV,WAAY,OACZ,YAAa,OACb,SAAU,GACV,MAAO,OACP,iBAAkB,GAClB,MAAO,OACP,QAAS,OACT,WAAY,OACZ,MAAO,OACP,iBAAkB,GAClB,WAAY,GACZ,WAAY,GACZ,aAAc,CAAE,EAChB,cAAe,GACf,gBAAiB,CAAE,EACnB,eAAgB,OAChB,uBAAwB,GACxB,kBAAmB,OACnB,KAAM,GACN,SAAU,SACV,cAAe,CAAE,EACjB,oBAAqB,OACrB,sBAAuB,OACvB,SAAU,OACV,QAAS,OACT,UAAW,OACX,UAAW,OACX,SAAU,OACV,WAAY,OACZ,iBAAkB,EACpB,EAEa,GAAkB,CAC7B,iBACA,oBACA,aACA,iBACA,wBACA,oBACA,mBACA,uBACA,kBACA,QACA,yBACA,qBACA,oBACA,sBACA,cACA,sBACA,kBACA,iBACA,WACA,aACA,SACA,YACA,OACA,OACA,YACA,WACA,WACA,cACA,WACA,aACA,aACA,UACA,gBACA,cACA,iBACA,mBACA,kBACA,oBACA,iBACA,OACA,QACA,YACA,WACF,EAEa,GAAmB,CAAE,EAE5B,GAA0B,CAC9B,oBACA,gBACA,WACA,eACA,YACA,cACA,cACA,aACA,wBACF,EAMa,GAAmB,AAAC,GACxB,OAAO,UAAU,eAAe,KAAK,GAAe,CAAS,EAOzD,GAAuB,AAAC,GAC5B,GAAg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"}