{"version":3,"file":"shared/chunks/1661.594542bac73ce3da7c0d.js","mappings":"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","sources":["webpack://dsposal.web/./node_modules/core-js/internals/object-assign.js","webpack://dsposal.web/./node_modules/core-js/modules/es.object.assign.js","webpack://dsposal.web/./node_modules/sweetalert2/dist/sweetalert2.all.js"],"sourcesContent":["'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es-x/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es-x/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es-x/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es-x/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","/*!\n* sweetalert2 v11.4.32\n* Released under the MIT License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Sweetalert2 = factory());\n}(this, function () { 'use strict';\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 var privateProps = {\n awaitingPromise: new WeakMap(),\n promise: new WeakMap(),\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n const swalPrefix = 'swal2-';\n /**\n * @param {string[]} items\n * @returns {object}\n */\n\n const prefix = items => {\n const result = {};\n\n for (const i in items) {\n result[items[i]] = swalPrefix + items[i];\n }\n\n return result;\n };\n const swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'no-war']);\n const iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);\n\n const consolePrefix = 'SweetAlert2:';\n /**\n * Filter the unique values into a new array\n *\n * @param {Array} arr\n * @returns {Array}\n */\n\n const uniqueArray = arr => {\n const result = [];\n\n for (let i = 0; i < arr.length; i++) {\n if (result.indexOf(arr[i]) === -1) {\n result.push(arr[i]);\n }\n }\n\n return result;\n };\n /**\n * Capitalize the first letter of a string\n *\n * @param {string} str\n * @returns {string}\n */\n\n const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n /**\n * Standardize console warnings\n *\n * @param {string | Array} message\n */\n\n const warn = message => {\n console.warn(\"\".concat(consolePrefix, \" \").concat(typeof message === 'object' ? message.join(' ') : message));\n };\n /**\n * Standardize console errors\n *\n * @param {string} message\n */\n\n const error = message => {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n };\n /**\n * Private global state for `warnOnce`\n *\n * @type {Array}\n * @private\n */\n\n const previousWarnOnceMessages = [];\n /**\n * Show a console warning, but only if it hasn't already been shown\n *\n * @param {string} message\n */\n\n const warnOnce = message => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n /**\n * Show a one-time console warning about deprecated params/methods\n *\n * @param {string} deprecatedParam\n * @param {string} useInstead\n */\n\n const warnAboutDeprecation = (deprecatedParam, useInstead) => {\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\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 *\n * @param {Function | any} arg\n * @returns {any}\n */\n\n const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n\n const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n /**\n * @param {any} arg\n * @returns {Promise}\n */\n\n const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n\n const isPromise = arg => arg && Promise.resolve(arg) === arg;\n /**\n * @param {Array} arr\n * @returns {any}\n */\n\n const getRandomElement = arr => arr[Math.floor(Math.random() * arr.length)];\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n\n const getContainer = () => document.body.querySelector(\".\".concat(swalClasses.container));\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n\n const elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n\n const elementByClass = className => {\n return elementBySelector(\".\".concat(className));\n };\n /**\n * @returns {HTMLElement | null}\n */\n\n\n const getPopup = () => elementByClass(swalClasses.popup);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getIcon = () => elementByClass(swalClasses.icon);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getTitle = () => elementByClass(swalClasses.title);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getImage = () => elementByClass(swalClasses.image);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getConfirmButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getDenyButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getInputLabel = () => elementByClass(swalClasses['input-label']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getLoader = () => elementBySelector(\".\".concat(swalClasses.loader));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getCancelButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getActions = () => elementByClass(swalClasses.actions);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getFooter = () => elementByClass(swalClasses.footer);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getCloseButton = () => elementByClass(swalClasses.close); // https://github.com/jkup/focusable/blob/master/index.js\n\n const 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 /**\n * @returns {HTMLElement[]}\n */\n\n const getFocusableElements = () => {\n const focusableElementsWithTabindex = Array.from(getPopup().querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])')) // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex'));\n const tabindexB = parseInt(b.getAttribute('tabindex'));\n\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n\n return 0;\n });\n const otherFocusableElements = Array.from(getPopup().querySelectorAll(focusable)).filter(el => el.getAttribute('tabindex') !== '-1');\n return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(el => isVisible(el));\n };\n /**\n * @returns {boolean}\n */\n\n const isModal = () => {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n /**\n * @returns {boolean}\n */\n\n const isToast = () => {\n return getPopup() && hasClass(getPopup(), swalClasses.toast);\n };\n /**\n * @returns {boolean}\n */\n\n const isLoading = () => {\n return getPopup().hasAttribute('data-loading');\n };\n\n const states = {\n previousBodyPadding: null\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 */\n\n const setInnerHtml = (elem, html) => {\n elem.textContent = '';\n\n if (html) {\n const parser = new DOMParser();\n const parsed = parser.parseFromString(html, \"text/html\");\n Array.from(parsed.querySelector('head').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n Array.from(parsed.querySelector('body').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n\n const hasClass = (elem, className) => {\n if (!className) {\n return false;\n }\n\n const classList = className.split(/\\s+/);\n\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n\n return true;\n };\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n\n const removeCustomClasses = (elem, params) => {\n Array.from(elem.classList).forEach(className => {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n\n\n 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(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(typeof params.customClass[className], \"\\\"\"));\n }\n\n addClass(elem, params.customClass[className]);\n }\n };\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass} inputClass\n * @returns {HTMLInputElement | null}\n */\n\n const getInput = (popup, inputClass) => {\n if (!inputClass) {\n return null;\n }\n\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses[inputClass]));\n\n case 'checkbox':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.checkbox, \" input\"));\n\n case 'radio':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:checked\")) || popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:first-child\"));\n\n case 'range':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.range, \" input\"));\n\n default:\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.input));\n }\n };\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n\n const focusInput = input => {\n input.focus(); // place cursor at end of text in text input\n\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 * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n * @param {boolean} condition\n */\n\n const toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return;\n }\n\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\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 * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\n\n const addClass = (target, classList) => {\n toggleClass(target, classList, true);\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\n\n const removeClass = (target, classList) => {\n toggleClass(target, classList, false);\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 */\n\n const getDirectChildByClass = (elem, className) => {\n const children = Array.from(elem.children);\n\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n\n const applyNumericalStyle = (elem, property, value) => {\n if (value === \"\".concat(parseInt(value))) {\n value = parseInt(value);\n }\n\n if (value || parseInt(value) === 0) {\n elem.style[property] = typeof value === 'number' ? \"\".concat(value, \"px\") : value;\n } else {\n elem.style.removeProperty(property);\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} display\n */\n\n const show = function (elem) {\n let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n elem.style.display = display;\n };\n /**\n * @param {HTMLElement} elem\n */\n\n const hide = elem => {\n elem.style.display = 'none';\n };\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n\n const setStyle = (parent, selector, property, value) => {\n /** @type {HTMLElement} */\n const el = parent.querySelector(selector);\n\n if (el) {\n el.style[property] = value;\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\n\n const toggle = function (elem, condition) {\n let display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n condition ? show(elem, display) : hide(elem);\n };\n /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n\n const isVisible = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n /**\n * @returns {boolean}\n */\n\n const allButtonsAreHidden = () => !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton());\n /**\n * @returns {boolean}\n */\n\n const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n\n const hasCssAnimation = elem => {\n const style = window.getComputedStyle(elem);\n const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n /**\n * @param {number} timer\n * @param {boolean} reset\n */\n\n const animateTimerProgressBar = function (timer) {\n let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const timerProgressBar = getTimerProgressBar();\n\n if (isVisible(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n\n setTimeout(() => {\n timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n 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 = \"\".concat(timerProgressBarPercent, \"%\");\n };\n\n const RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n\n const globalState = {};\n\n const focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement instanceof HTMLElement) {\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\n *\n * @param {boolean} returnFocus\n * @returns {Promise}\n */\n\n\n const restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\n const 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 /**\n * @returns {boolean}\n */\n\n const resetOldContainer = () => {\n const oldContainer = getContainer();\n\n if (!oldContainer) {\n return false;\n }\n\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n\n const resetValidationMessage = () => {\n globalState.currentInstance.resetValidationMessage();\n };\n\n const addInputChangeListeners = () => {\n const popup = getPopup();\n const input = getDirectChildByClass(popup, swalClasses.input);\n const file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n\n const range = popup.querySelector(\".\".concat(swalClasses.range, \" input\"));\n /** @type {HTMLOutputElement} */\n\n const rangeOutput = popup.querySelector(\".\".concat(swalClasses.range, \" output\"));\n const select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n\n const checkbox = popup.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n const textarea = getDirectChildByClass(popup, swalClasses.textarea);\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 rangeOutput.value = range.value;\n };\n };\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n\n\n const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n /**\n * @param {SweetAlertOptions} params\n */\n\n\n const setupAccessibility = params => {\n const popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n /**\n * @param {HTMLElement} targetElement\n */\n\n\n const setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n\n\n const init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n /* istanbul ignore if */\n\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\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n\n setInnerHtml(container, sweetHTML);\n const targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n\n const parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n } // Object\n else if (typeof param === 'object') {\n handleObject(param, target);\n } // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n /**\n * @param {object} param\n * @param {HTMLElement} target\n */\n\n const handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n } // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n /**\n * @param {HTMLElement} target\n * @param {HTMLElement} elem\n */\n\n\n const handleJqueryElem = (target, elem) => {\n target.textContent = '';\n\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\n /**\n * @returns {'webkitAnimationEnd' | 'animationend' | false}\n */\n\n const animationEndEvent = (() => {\n // Prevent run in Node env\n\n /* istanbul ignore if */\n if (isNodeEnv()) {\n return false;\n }\n\n const testEl = document.createElement('div');\n const transEndEventNames = {\n WebkitAnimation: 'webkitAnimationEnd',\n // Chrome, Safari and Opera\n animation: 'animationend' // Standard syntax\n\n };\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\n /**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\n\n 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\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader(); // Actions (buttons) wrapper\n\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n } // Custom class\n\n\n applyCustomClass(actions, params, 'actions'); // Render all the buttons\n\n renderButtons(actions, loader, params); // Loader\n\n setInnerHtml(loader, params.loaderHtml);\n applyCustomClass(loader, params, 'loader');\n };\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n\n function renderButtons(actions, loader, params) {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton(); // Render buttons\n\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 /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n\n\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n }\n\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors\n\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n\n\n function renderButton(button, buttonType, params) {\n toggle(button, params[\"show\".concat(capitalizeFirstLetter(buttonType), \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")]); // Set caption text\n\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")]); // ARIA label\n // Add buttons custom classes\n\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n addClass(button, params[\"\".concat(buttonType, \"ButtonClass\")]);\n }\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n setInnerHtml(closeButton, params.closeButtonHtml); // Custom class\n\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderContainer = (instance, params) => {\n const container = getContainer();\n\n if (!container) {\n return;\n }\n\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow); // Custom class\n\n applyCustomClass(container, params, 'container');\n };\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\n\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\n\n\n function handlePositionParam(container, position) {\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n\n\n function handleGrowParam(container, grow) {\n if (grow && typeof grow === 'string') {\n const growClass = \"grow-\".concat(grow);\n\n if (growClass in swalClasses) {\n addClass(container, swalClasses[growClass]);\n }\n }\n }\n\n /// \n /** @type {InputClass[]} */\n\n const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderInput = (instance, params) => {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(inputClass => {\n const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]); // set attributes\n\n setAttributes(inputClass, params.inputAttributes); // set class\n\n inputContainer.className = swalClasses[inputClass];\n\n if (rerender) {\n hide(inputContainer);\n }\n });\n\n if (params.input) {\n if (rerender) {\n showInput(params);\n } // set custom class\n\n\n setCustomClass(params);\n }\n };\n /**\n * @param {SweetAlertOptions} params\n */\n\n const showInput = params => {\n if (!renderInputType[params.input]) {\n return error(\"Unexpected type of input! Expected \\\"text\\\", \\\"email\\\", \\\"password\\\", \\\"number\\\", \\\"tel\\\", \\\"select\\\", \\\"radio\\\", \\\"checkbox\\\", \\\"textarea\\\", \\\"file\\\" or \\\"url\\\", got \\\"\".concat(params.input, \"\\\"\"));\n }\n\n const inputContainer = getInputContainer(params.input);\n const input = renderInputType[params.input](inputContainer, params);\n show(inputContainer); // input autofocus\n\n setTimeout(() => {\n focusInput(input);\n });\n };\n /**\n * @param {HTMLInputElement} input\n */\n\n\n const removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n\n if (!['type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n\n\n const setAttributes = (inputClass, inputAttributes) => {\n const input = getInput(getPopup(), inputClass);\n\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 * @param {SweetAlertOptions} params\n */\n\n\n const setCustomClass = params => {\n const inputContainer = getInputContainer(params.input);\n\n if (typeof params.customClass === 'object') {\n addClass(inputContainer, params.customClass.input);\n }\n };\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n\n\n const setInputPlaceholder = (input, params) => {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\n\n\n const 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\n if (typeof params.customClass === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n /**\n * @param {SweetAlertOptions['input']} inputType\n * @returns {HTMLElement}\n */\n\n\n const getInputContainer = inputType => {\n return getDirectChildByClass(getPopup(), swalClasses[inputType] || swalClasses.input);\n };\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n\n\n const checkAndSetInputValue = (input, inputValue) => {\n if (['string', 'number'].includes(typeof inputValue)) {\n input.value = \"\".concat(inputValue);\n } else if (!isPromise(inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(typeof inputValue, \"\\\"\"));\n }\n };\n /** @type Record Input> */\n\n\n const renderInputType = {};\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (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 * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.file = (input, params) => {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.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 * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n\n\n renderInputType.select = (select, params) => {\n select.textContent = '';\n\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n\n setInputLabel(select, select, params);\n return select;\n };\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.radio = radio => {\n radio.textContent = '';\n return radio;\n };\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.checkbox = (checkboxContainer, params) => {\n const checkbox = getInput(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.id = swalClasses.checkbox;\n checkbox.checked = Boolean(params.inputValue);\n const label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkbox;\n };\n /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n\n\n renderInputType.textarea = (textarea, params) => {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight); // https://github.com/sweetalert2/sweetalert2/issues/2291\n\n\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n\n const textareaResizeHandler = () => {\n const textareaWidth = textarea.offsetWidth + getMargin(textarea);\n\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(textareaWidth, \"px\");\n } else {\n getPopup().style.width = null;\n }\n };\n\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML\n\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n } // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n } // No content\n else {\n hide(htmlContainer);\n }\n\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderFooter = (instance, params) => {\n const footer = getFooter();\n toggle(footer, params.footer);\n\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n } // Custom class\n\n\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon\n\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\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 \\\"\".concat(params.icon, \"\\\"\"));\n hide(icon);\n return;\n }\n\n show(icon); // Custom or default content\n\n setContent(icon, params);\n applyStyles(icon, params); // Animate icon\n\n addClass(icon, params.showClass.icon);\n };\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n const applyStyles = (icon, params) => {\n for (const iconType in iconTypes) {\n if (params.icon !== iconType) {\n removeClass(icon, iconTypes[iconType]);\n }\n }\n\n addClass(icon, iconTypes[params.icon]); // Icon color\n\n setColor(icon, params); // Success icon background color\n\n adjustSuccessIconBackgroundColor(); // Custom class\n\n applyCustomClass(icon, params, 'icon');\n }; // Adjust success icon background color to match the popup background color\n\n\n const adjustSuccessIconBackgroundColor = () => {\n const popup = getPopup();\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf} */\n\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n\n const successIconHtml = \"\\n
\\n \\n
\\n
\\n\";\n const errorIconHtml = \"\\n \\n \\n \\n \\n\";\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n const setContent = (icon, params) => {\n let oldContent = icon.innerHTML;\n let newContent;\n\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n\n const setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n\n for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n setStyle(icon, sel, 'backgroundColor', params.iconColor);\n }\n\n setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);\n };\n /**\n * @param {string} content\n * @returns {string}\n */\n\n\n const iconContent = content => \"
\").concat(content, \"
\");\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderImage = (instance, params) => {\n const image = getImage();\n\n if (!params.imageUrl) {\n return hide(image);\n }\n\n show(image, ''); // Src, alt\n\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt); // Width, height\n\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight); // Class\n\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup(); // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n popup.insertBefore(getLoader(), getIcon());\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n } // Padding\n\n\n applyNumericalStyle(popup, 'padding', params.padding); // Color\n\n if (params.color) {\n popup.style.color = params.color;\n } // Background\n\n\n if (params.background) {\n popup.style.background = params.background;\n }\n\n hide(getValidationMessage()); // Classes\n\n addClasses(popup, params);\n };\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n\n const addClasses = (popup, params) => {\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible(popup) ? params.showClass.popup : '');\n\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n } // Custom class\n\n\n applyCustomClass(popup, params, 'popup');\n\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n } // Icon class (#1842)\n\n\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n\n if (!params.progressSteps || params.progressSteps.length === 0) {\n return hide(progressStepsContainer);\n }\n\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n\n if (params.currentProgressStep >= params.progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n\n params.progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n\n if (index === params.currentProgressStep) {\n 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 * @param {string} step\n * @returns {HTMLLIElement}\n */\n\n const createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n\n\n const createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n\n return lineEl;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderTitle = (instance, params) => {\n const title = getTitle();\n toggle(title, params.title || params.titleText, 'block');\n\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n\n if (params.titleText) {\n title.innerText = params.titleText;\n } // Custom class\n\n\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const render = (instance, params) => {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\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\n /**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n\n function hideLoading() {\n // do nothing if popup is closed\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n return;\n }\n\n const domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n\n 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\n const showRelatedButton = domCache => {\n const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n\n if (buttonToReplace.length) {\n show(buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n };\n\n /**\n * Gets the input DOM node, this method works with input parameter.\n * @returns {HTMLElement | null}\n */\n\n function getInput$1(instance) {\n const innerParams = privateProps.innerParams.get(instance || this);\n const domCache = privateProps.domCache.get(instance || this);\n\n if (!domCache) {\n return null;\n }\n\n return getInput(domCache.popup, innerParams.input);\n }\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n\n const isVisible$1 = () => {\n return isVisible(getPopup());\n };\n /*\n * Global function to click 'Confirm' button\n */\n\n const clickConfirm = () => getConfirmButton() && getConfirmButton().click();\n /*\n * Global function to click 'Deny' button\n */\n\n const clickDeny = () => getDenyButton() && getDenyButton().click();\n /*\n * Global function to click 'Cancel' button\n */\n\n const clickCancel = () => getCancelButton() && getCancelButton().click();\n\n const DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n /**\n * @param {GlobalState} globalState\n */\n\n 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 /**\n * @param {SweetAlert2} instance\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n\n const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => {\n removeKeydownHandler(globalState);\n\n if (!innerParams.toast) {\n globalState.keydownHandler = e => keydownHandler(instance, e, dismissWith);\n\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : 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 * @param {SweetAlertOptions} innerParams\n * @param {number} index\n * @param {number} increment\n */\n\n const setFocus = (innerParams, index, increment) => {\n const focusableElements = getFocusableElements(); // search for visible elements and select the next possible match\n\n if (focusableElements.length) {\n index = index + increment; // rollover to first item\n\n if (index === focusableElements.length) {\n index = 0; // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n\n return focusableElements[index].focus();\n } // no visible focusable elements, focus the popup\n\n\n getPopup().focus();\n };\n const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n /**\n * @param {SweetAlert2} instance\n * @param {KeyboardEvent} e\n * @param {function} dismissWith\n */\n\n const keydownHandler = (instance, e, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams) {\n return; // This instance has already been destroyed\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\n\n if (e.isComposing || e.keyCode === 229) {\n return;\n }\n\n if (innerParams.stopKeydownPropagation) {\n e.stopPropagation();\n } // ENTER\n\n\n if (e.key === 'Enter') {\n handleEnter(instance, e, innerParams);\n } // TAB\n else if (e.key === 'Tab') {\n handleTab(e, innerParams);\n } // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) {\n handleArrows(e.key);\n } // ESC\n else if (e.key === 'Escape') {\n handleEsc(e, innerParams, dismissWith);\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const 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 instanceof HTMLElement && 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 /**\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const handleTab = (e, innerParams) => {\n const targetElement = e.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n } // Cycle to the next button\n\n\n if (!e.shiftKey) {\n setFocus(innerParams, btnIndex, 1);\n } // Cycle to the prev button\n else {\n setFocus(innerParams, btnIndex, -1);\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n /**\n * @param {string} key\n */\n\n\n const handleArrows = key => {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n\n if (document.activeElement instanceof HTMLElement && ![confirmButton, denyButton, cancelButton].includes(document.activeElement)) {\n return;\n }\n\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n let buttonToFocus = document.activeElement;\n\n for (let i = 0; i < getActions().children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n\n if (!buttonToFocus) {\n return;\n }\n\n if (buttonToFocus instanceof HTMLButtonElement && isVisible(buttonToFocus)) {\n break;\n }\n }\n\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n /**\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n * @param {function} dismissWith\n */\n\n\n const handleEsc = (e, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n e.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\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 var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\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\n const setAriaHidden = () => {\n const bodyChildren = Array.from(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\n el.setAttribute('aria-hidden', 'true');\n });\n };\n const unsetAriaHidden = () => {\n const bodyChildren = Array.from(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\n /* istanbul ignore file */\n\n const iOSfix = () => {\n const iOS = // @ts-ignore\n /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n\n if (iOS && !hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n addBottomPaddingForTallPopups();\n }\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1948\n */\n\n const 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\n if (iOSSafari) {\n const bottomPanelHeight = 44;\n\n if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {\n getContainer().style.paddingBottom = \"\".concat(bottomPanelHeight, \"px\");\n }\n }\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n\n\n const lockBodyScroll = () => {\n const container = getContainer();\n let preventTouchMove;\n /**\n * @param {TouchEvent} e\n */\n\n container.ontouchstart = e => {\n preventTouchMove = shouldPreventTouchMove(e);\n };\n /**\n * @param {TouchEvent} e\n */\n\n\n container.ontouchmove = e => {\n if (preventTouchMove) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n };\n /**\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n\n\n const shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n\n if (target === container) {\n return true;\n }\n\n if (!isScrollable(container) && target instanceof HTMLElement && target.tagName !== 'INPUT' && // #1603\n target.tagName !== 'TEXTAREA' && // #2266\n !(isScrollable(getHtmlContainer()) && // #1944\n getHtmlContainer().contains(target))) {\n return true;\n }\n\n return false;\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n\n\n const isStylus = event => {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n\n\n const isZoom = event => {\n return event.touches && event.touches.length > 1;\n };\n\n const undoIOSfix = () => {\n if (hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n const fixScrollbar = () => {\n // for queues, do not do this more than once\n if (states.previousBodyPadding !== null) {\n return;\n } // if the body has overflow\n\n\n if (document.body.scrollHeight > window.innerHeight) {\n // add padding so the content doesn't shift after removal of scrollbar\n states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n const undoScrollbar = () => {\n if (states.previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding, \"px\");\n states.previousBodyPadding = null;\n }\n };\n\n /*\n * Instance method to close sweetAlert\n */\n\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (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); // workaround for #2088\n // for some reason removing the container in Safari will scroll the document to bottom\n\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 (isModal()) {\n undoScrollbar();\n undoIOSfix();\n unsetAriaHidden();\n }\n\n removeBodyClasses();\n }\n\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\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 function isAwaitingPromise() {\n return !!privateProps.awaitingPromise.get(this);\n }\n\n const triggerClosePopup = instance => {\n const popup = getPopup();\n\n if (!popup) {\n return false;\n }\n\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n const backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n function rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n const handleAwaitingPromise = instance => {\n if (instance.isAwaitingPromise()) {\n privateProps.awaitingPromise.delete(instance); // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n const 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 isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n const handlePopupAnimation = (instance, popup, innerParams) => {\n const container = getContainer(); // If animation is supported, animate\n\n const animationIsSupported = animationEndEvent && 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\n const animatePopup = (instance, popup, container, returnFocus, didClose) => {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n const triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n\n instance._destroy();\n });\n };\n\n function setButtonsDisabled(instance, buttons, disabled) {\n const domCache = privateProps.domCache.get(instance);\n buttons.forEach(button => {\n domCache[button].disabled = disabled;\n });\n }\n\n function setInputDisabled(input, disabled) {\n if (!input) {\n return false;\n }\n\n if (input.type === 'radio') {\n const radiosContainer = input.parentNode.parentNode;\n const radios = radiosContainer.querySelectorAll('input');\n\n for (let i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n }\n\n function enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n }\n function disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n }\n function enableInput() {\n return setInputDisabled(this.getInput(), false);\n }\n function disableInput() {\n return setInputDisabled(this.getInput(), true);\n }\n\n function showValidationMessage(error) {\n const domCache = privateProps.domCache.get(this);\n const params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n\n show(domCache.validationMessage);\n const input = this.getInput();\n\n if (input) {\n input.setAttribute('aria-invalid', true);\n input.setAttribute('aria-describedby', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n } // Hide block with validation message\n\n function resetValidationMessage$1() {\n const domCache = privateProps.domCache.get(this);\n\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n\n const input = this.getInput();\n\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n }\n\n function getProgressSteps$1() {\n const domCache = privateProps.domCache.get(this);\n return domCache.progressSteps;\n }\n\n 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 const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n const deprecatedParams = {};\n const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n /**\n * Is valid parameter\n *\n * @param {string} paramName\n * @returns {boolean}\n */\n\n const isValidParameter = paramName => {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n };\n /**\n * Is valid parameter for Swal.update() method\n *\n * @param {string} paramName\n * @returns {boolean}\n */\n\n const isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n };\n /**\n * Is deprecated parameter\n *\n * @param {string} paramName\n * @returns {string | undefined}\n */\n\n const isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n };\n /**\n * @param {string} param\n */\n\n const checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n }\n };\n /**\n * @param {string} param\n */\n\n\n const checkIfToastParamIsValid = param => {\n if (toastIncompatibleParams.includes(param)) {\n warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n }\n };\n /**\n * @param {string} param\n */\n\n\n const checkIfParamIsDeprecated = param => {\n if (isDeprecatedParameter(param)) {\n warnAboutDeprecation(param, isDeprecatedParameter(param));\n }\n };\n /**\n * Show relevant warnings for given params\n *\n * @param {SweetAlertOptions} params\n */\n\n\n 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\n /**\n * Updates popup parameters.\n */\n\n function update(params) {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(this);\n\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n return warn(\"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 const validUpdatableParams = filterValidParams(params);\n const updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n render(this, updatedParams);\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\n const 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: \".concat(param));\n }\n });\n return validUpdatableParams;\n };\n\n 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\n return; // This instance has already been destroyed\n } // Check if there is another Swal closing\n\n\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n\n disposeSwal(this);\n }\n /**\n * @param {SweetAlert2} instance\n */\n\n const disposeSwal = instance => {\n disposeWeakMaps(instance); // Unset this.params so GC will dispose it (#1569)\n // @ts-ignore\n\n delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)\n\n delete globalState.keydownHandler;\n delete globalState.keydownTarget; // Unset currentInstance\n\n delete globalState.currentInstance;\n };\n /**\n * @param {SweetAlert2} instance\n */\n\n\n const 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 // @ts-ignore\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 /**\n * @param {object} obj\n * @param {SweetAlert2} instance\n */\n\n\n const unsetWeakMaps = (obj, instance) => {\n for (const i in obj) {\n obj[i].delete(instance);\n }\n };\n\n\n\n var instanceMethods = /*#__PURE__*/Object.freeze({\n hideLoading: hideLoading,\n disableLoading: hideLoading,\n getInput: getInput$1,\n close: close,\n isAwaitingPromise: isAwaitingPromise,\n rejectPromise: rejectPromise,\n handleAwaitingPromise: handleAwaitingPromise,\n closePopup: close,\n closeModal: close,\n closeToast: close,\n enableButtons: enableButtons,\n disableButtons: disableButtons,\n enableInput: enableInput,\n disableInput: disableInput,\n showValidationMessage: showValidationMessage,\n resetValidationMessage: resetValidationMessage$1,\n getProgressSteps: getProgressSteps$1,\n update: update,\n _destroy: _destroy\n });\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 */\n\n const showLoading = buttonToReplace => {\n let popup = getPopup();\n\n if (!popup) {\n new Swal(); // eslint-disable-line no-new\n }\n\n popup = getPopup();\n const loader = getLoader();\n\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n\n const replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n\n if (!buttonToReplace && isVisible(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n\n show(actions);\n\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n }\n\n loader.parentNode.insertBefore(loader, buttonToReplace);\n addClass([popup, actions], swalClasses.loading);\n };\n\n const handleInputOptionsAndValue = (instance, params) => {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].includes(params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n const getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n\n if (!input) {\n return null;\n }\n\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n\n case 'radio':\n return getRadioValue(input);\n\n case 'file':\n return getFileValue(input);\n\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n const getCheckboxValue = input => input.checked ? 1 : 0;\n\n const getRadioValue = input => input.checked ? input.value : null;\n\n const getFileValue = input => input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n const handleInputOptions = (instance, params) => {\n const popup = getPopup();\n\n const processInputOptions = inputOptions => populateInputOptions[params.input](popup, formatInputOptions(inputOptions), params);\n\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(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 \".concat(typeof params.inputOptions));\n }\n };\n\n const handleInputValue = (instance, params) => {\n const input = instance.getInput();\n hide(input);\n asPromise(params.inputValue).then(inputValue => {\n input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n }).catch(err => {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n const populateInputOptions = {\n select: (popup, inputOptions, params) => {\n const select = getDirectChildByClass(popup, swalClasses.select);\n\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n\n inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1]; // 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\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\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\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(key => {\n let valueFormatted = inputOptions[key];\n\n if (typeof valueFormatted === 'object') {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n }\n\n return result;\n };\n\n const isSelected = (optionValue, inputValue) => {\n return inputValue && inputValue.toString() === optionValue.toString();\n };\n\n /**\n * @param {SweetAlert2} instance\n */\n\n const handleConfirmButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm');\n } else {\n confirm(instance, true);\n }\n };\n /**\n * @param {SweetAlert2} instance\n */\n\n const handleDenyButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny');\n } else {\n deny(instance, false);\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {Function} dismissWith\n */\n\n const handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n };\n /**\n * @param {SweetAlert2} instance\n * @param {'confirm' | 'deny'} type\n */\n\n const handleConfirmOrDenyWithInput = (instance, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams.input) {\n error(\"The \\\"input\\\" parameter is needed to be set when using returnInputValueOn\".concat(capitalizeFirstLetter(type)));\n return;\n }\n\n const inputValue = getInputValue(instance, innerParams);\n\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 /**\n * @param {SweetAlert2} instance\n * @param {string} inputValue\n * @param {'confirm' | 'deny'} type\n */\n\n\n const handleInputValidator = (instance, inputValue, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableInput();\n const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));\n validationPromise.then(validationMessage => {\n instance.enableButtons();\n instance.enableInput();\n\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 /**\n * @param {SweetAlert2} instance\n * @param {any} value\n */\n\n\n const deny = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n\n if (innerParams.preDeny) {\n privateProps.awaitingPromise.set(instance || undefined, 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\n const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));\n preDenyPromise.then(preDenyValue => {\n if (preDenyValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n instance.close({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n }).catch(error$$1 => rejectWith(instance || undefined, error$$1));\n } else {\n instance.close({\n isDenied: true,\n value\n });\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {any} value\n */\n\n\n const succeedWith = (instance, value) => {\n instance.close({\n isConfirmed: true,\n value\n });\n };\n /**\n *\n * @param {SweetAlert2} instance\n * @param {string} error\n */\n\n\n const rejectWith = (instance, error$$1) => {\n // @ts-ignore\n instance.rejectPromise(error$$1);\n };\n /**\n *\n * @param {SweetAlert2} instance\n * @param {any} value\n */\n\n\n const confirm = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n\n if (innerParams.showLoaderOnConfirm) {\n showLoading();\n }\n\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n privateProps.awaitingPromise.set(instance || undefined, 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\n const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));\n preConfirmPromise.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 }).catch(error$$1 => rejectWith(instance || undefined, error$$1));\n } else {\n succeedWith(instance, value);\n }\n };\n\n const handlePopupClick = (instance, domCache, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\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); // Ignore click events that had mousedown on the container but mouseup on the popup\n\n handleContainerMousedown(domCache);\n handleModalClick(instance, domCache, dismissWith);\n }\n };\n\n const handleToastClick = (instance, domCache, dismissWith) => {\n // Closing toast by internal click\n domCache.popup.onclick = () => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return;\n }\n\n dismissWith(DismissReason.close);\n };\n };\n /**\n * @param {*} innerParams\n * @returns {boolean}\n */\n\n\n const isAnyButtonShown = innerParams => {\n return innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton;\n };\n\n let ignoreOutsideClick = false;\n\n const handleModalMousedown = domCache => {\n domCache.popup.onmousedown = () => {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = undefined; // 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\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleContainerMousedown = domCache => {\n domCache.container.onmousedown = () => {\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup\n\n if (e.target === domCache.popup || domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleModalClick = (instance, domCache, dismissWith) => {\n domCache.container.onclick = e => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n };\n\n const isJqueryElement = elem => typeof elem === 'object' && elem.jquery;\n\n const isElement = elem => elem instanceof Element || isJqueryElement(elem);\n\n const argsToParams = args => {\n const params = {};\n\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\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(\"Unexpected type of \".concat(name, \"! Expected \\\"string\\\" or \\\"Element\\\", got \").concat(typeof arg));\n }\n });\n }\n\n return params;\n };\n\n function fire() {\n const Swal = this; // eslint-disable-line @typescript-eslint/no-this-alias\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return new Swal(...args);\n }\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 */\n 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\n return MixinSwal;\n }\n\n /**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n */\n\n const getTimerLeft = () => {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n };\n /**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const stopTimer = () => {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const resumeTimer = () => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const toggleTimer = () => {\n const timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n };\n /**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n 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 * 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 */\n\n const isTimerRunning = () => {\n return globalState.timeout && globalState.timeout.isRunning();\n };\n\n let bodyClickListenerAdded = false;\n const clickHandlers = {};\n function bindClickHandler() {\n let attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n clickHandlers[attr] = this;\n\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n }\n\n const 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\n if (template) {\n clickHandlers[attr].fire({\n template\n });\n return;\n }\n }\n }\n };\n\n\n\n var staticMethods = /*#__PURE__*/Object.freeze({\n isValidParameter: isValidParameter,\n isUpdatableParameter: isUpdatableParameter,\n isDeprecatedParameter: isDeprecatedParameter,\n argsToParams: argsToParams,\n isVisible: isVisible$1,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n clickCancel: clickCancel,\n getContainer: getContainer,\n getPopup: getPopup,\n getTitle: getTitle,\n getHtmlContainer: getHtmlContainer,\n getImage: getImage,\n getIcon: getIcon,\n getInputLabel: getInputLabel,\n getCloseButton: getCloseButton,\n getActions: getActions,\n getConfirmButton: getConfirmButton,\n getDenyButton: getDenyButton,\n getCancelButton: getCancelButton,\n getLoader: getLoader,\n getFooter: getFooter,\n getTimerProgressBar: getTimerProgressBar,\n getFocusableElements: getFocusableElements,\n getValidationMessage: getValidationMessage,\n isLoading: isLoading,\n fire: fire,\n mixin: mixin,\n showLoading: showLoading,\n enableLoading: showLoading,\n getTimerLeft: getTimerLeft,\n stopTimer: stopTimer,\n resumeTimer: resumeTimer,\n toggleTimer: toggleTimer,\n increaseTimer: increaseTimer,\n isTimerRunning: isTimerRunning,\n bindClickHandler: bindClickHandler\n });\n\n class Timer {\n /**\n * @param {Function} callback\n * @param {number} delay\n */\n constructor(callback, delay) {\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\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\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\n return this.remaining;\n }\n\n increase(n) {\n const running = this.running;\n\n if (running) {\n this.stop();\n }\n\n this.remaining += n;\n\n if (running) {\n this.start();\n }\n\n return this.remaining;\n }\n\n getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n\n return this.remaining;\n }\n\n isRunning() {\n return this.running;\n }\n\n }\n\n const swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n /**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\n\n const getTemplateParams = params => {\n /** @type {HTMLTemplateElement} */\n const template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;\n\n if (!template) {\n return {};\n }\n /** @type {DocumentFragment} */\n\n\n const templateContent = template.content;\n showWarningsForElements(templateContent);\n const result = Object.assign(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n * @returns {SweetAlertOptions}\n */\n\n const getSwalParams = templateContent => {\n const result = {};\n /** @type {HTMLElement[]} */\n\n const swalParams = Array.from(templateContent.querySelectorAll('swal-param'));\n swalParams.forEach(param => {\n showWarningsForAttributes(param, ['name', 'value']);\n const paramName = param.getAttribute('name');\n const value = param.getAttribute('value');\n\n if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {\n result[paramName] = false;\n }\n\n if (typeof defaultParams[paramName] === 'object') {\n result[paramName] = JSON.parse(value);\n }\n });\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n * @returns {SweetAlertOptions}\n */\n\n\n const getSwalButtons = templateContent => {\n const result = {};\n /** @type {HTMLElement[]} */\n\n const swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));\n swalButtons.forEach(button => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n const type = button.getAttribute('type');\n result[\"\".concat(type, \"ButtonText\")] = button.innerHTML;\n result[\"show\".concat(capitalizeFirstLetter(type), \"Button\")] = true;\n\n if (button.hasAttribute('color')) {\n result[\"\".concat(type, \"ButtonColor\")] = button.getAttribute('color');\n }\n\n if (button.hasAttribute('aria-label')) {\n result[\"\".concat(type, \"ButtonAriaLabel\")] = button.getAttribute('aria-label');\n }\n });\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n * @returns {SweetAlertOptions}\n */\n\n\n const getSwalImage = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const image = templateContent.querySelector('swal-image');\n\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src');\n }\n\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width');\n }\n\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height');\n }\n\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt');\n }\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n * @returns {SweetAlertOptions}\n */\n\n\n const getSwalIcon = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const icon = templateContent.querySelector('swal-icon');\n\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n\n if (icon.hasAttribute('type')) {\n /** @type {SweetAlertIcon} */\n // @ts-ignore\n result.icon = icon.getAttribute('type');\n }\n\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n\n result.iconHtml = icon.innerHTML;\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n * @returns {SweetAlertOptions}\n */\n\n\n const getSwalInput = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const input = templateContent.querySelector('swal-input');\n\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n /** @type {SweetAlertInput} */\n // @ts-ignore\n\n result.input = input.getAttribute('type') || 'text';\n\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n /** @type {HTMLElement[]} */\n\n\n const inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));\n\n if (inputOptions.length) {\n result.inputOptions = {};\n 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\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n * @returns {SweetAlertOptions}\n */\n\n\n const getSwalStringParams = (templateContent, paramNames) => {\n const result = {};\n\n for (const i in paramNames) {\n const paramName = paramNames[i];\n /** @type {HTMLElement} */\n\n const tag = templateContent.querySelector(paramName);\n\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const showWarningsForElements = templateContent => {\n const allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n Array.from(templateContent.children).forEach(el => {\n const tagName = el.tagName.toLowerCase();\n\n if (!allowedElements.includes(tagName)) {\n warn(\"Unrecognized element <\".concat(tagName, \">\"));\n }\n });\n };\n /**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\n\n\n const showWarningsForAttributes = (el, allowedAttributes) => {\n Array.from(el.attributes).forEach(attribute => {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([\"Unrecognized attribute \\\"\".concat(attribute.name, \"\\\" on <\").concat(el.tagName.toLowerCase(), \">.\"), \"\".concat(allowedAttributes.length ? \"Allowed attributes are: \".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);\n }\n });\n };\n\n const SHOW_CLASS_TIMEOUT = 10;\n /**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param {SweetAlertOptions} params\n */\n\n const openPopup = params => {\n const container = getContainer();\n const popup = 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$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'\n\n setTimeout(() => {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n setAriaHidden();\n }\n\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n\n if (typeof params.didOpen === 'function') {\n setTimeout(() => params.didOpen(popup));\n }\n\n removeClass(container, swalClasses['no-transition']);\n };\n /**\n * @param {AnimationEvent} event\n */\n\n const swalOpenAnimationFinished = event => {\n const popup = getPopup();\n\n if (event.target !== popup) {\n return;\n }\n\n const container = getContainer();\n popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n };\n /**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n */\n\n\n const setScrollingVisibility = (container, popup) => {\n if (animationEndEvent && hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n };\n /**\n * @param {HTMLElement} container\n * @param {boolean} scrollbarPadding\n * @param {string} initialBodyOverflow\n */\n\n\n const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n iOSfix();\n\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n fixScrollbar();\n } // sweetalert2/issues/1247\n\n\n setTimeout(() => {\n container.scrollTop = 0;\n });\n };\n /**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n\n\n const addClasses$1 = (container, popup, params) => {\n addClass(container, params.showClass.backdrop); // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(() => {\n // Animate popup right after showing it\n addClass(popup, params.showClass.popup); // and remove the opacity workaround\n\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n\n addClass([document.documentElement, document.body], swalClasses.shown);\n\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n };\n\n var defaultInputValidators = {\n /**\n * @param {string} string\n * @param {string} validationMessage\n * @returns {Promise}\n */\n email: (string, validationMessage) => {\n return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n\n /**\n * @param {string} string\n * @param {string} validationMessage\n * @returns {Promise}\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) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n\n function 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 /**\n * @param {SweetAlertOptions} params\n */\n\n\n function validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n }\n /**\n * Set type, text and actions on popup\n *\n * @param {SweetAlertOptions} params\n */\n\n\n function setParameters(params) {\n setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm\n\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n\n validateCustomTargetElement(params); // Replace newlines with
in title\n\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('
');\n }\n\n init(params);\n }\n\n let currentInstance;\n\n class SweetAlert {\n constructor() {\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n\n currentInstance = this; // @ts-ignore\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n const outerParams = Object.freeze(this.constructor.argsToParams(args));\n Object.defineProperties(this, {\n params: {\n value: outerParams,\n writable: false,\n enumerable: true,\n configurable: true\n }\n }); // @ts-ignore\n\n const promise = currentInstance._main(currentInstance.params);\n\n privateProps.promise.set(this, promise);\n }\n\n _main(userParams) {\n let mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n\n if (globalState.currentInstance) {\n // @ts-ignore\n globalState.currentInstance._destroy();\n\n if (isModal()) {\n unsetAriaHidden();\n }\n }\n\n globalState.currentInstance = currentInstance;\n const innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams); // clear the previous timer\n\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n } // clear the restore focus timeout\n\n\n clearTimeout(globalState.restoreFocusTimeout);\n const domCache = populateDomCache(currentInstance);\n render(currentInstance, innerParams);\n privateProps.innerParams.set(currentInstance, innerParams);\n return swalPromise(currentInstance, domCache, innerParams);\n } // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n\n\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 }\n /**\n * @param {SweetAlert2} instance\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {Promise}\n */\n\n\n const swalPromise = (instance, domCache, innerParams) => {\n return new Promise((resolve, reject) => {\n // functions to handle all closings/dismissals\n\n /**\n * @param {DismissReason} dismiss\n */\n const dismissWith = dismiss => {\n // @ts-ignore\n instance.close({\n isDismissed: true,\n dismiss\n });\n };\n\n privateMethods.swalPromiseResolve.set(instance, resolve);\n privateMethods.swalPromiseReject.set(instance, reject);\n\n domCache.confirmButton.onclick = () => {\n handleConfirmButtonClick(instance);\n };\n\n domCache.denyButton.onclick = () => {\n handleDenyButtonClick(instance);\n };\n\n domCache.cancelButton.onclick = () => {\n handleCancelButtonClick(instance, dismissWith);\n };\n\n domCache.closeButton.onclick = () => {\n // @ts-ignore\n dismissWith(DismissReason.close);\n };\n\n handlePopupClick(instance, domCache, dismissWith);\n addKeydownHandler(instance, globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)\n\n setTimeout(() => {\n domCache.container.scrollTop = 0;\n });\n });\n };\n /**\n * @param {SweetAlertOptions} userParams\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlertOptions}\n */\n\n\n const prepareParams = (userParams, mixinParams) => {\n const templateParams = getTemplateParams(userParams);\n const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n return params;\n };\n /**\n * @param {SweetAlert2} instance\n * @returns {DomCache}\n */\n\n\n const populateDomCache = instance => {\n const domCache = {\n popup: getPopup(),\n container: getContainer(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n };\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n\n\n const setupTimer = (globalState$$1, innerParams, dismissWith) => {\n const timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n\n if (innerParams.timer) {\n globalState$$1.timeout = new Timer(() => {\n dismissWith('timer');\n delete globalState$$1.timeout;\n }, innerParams.timer);\n\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n setTimeout(() => {\n if (globalState$$1.timeout && globalState$$1.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n };\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const initFocus = (domCache, innerParams) => {\n if (innerParams.toast) {\n return;\n }\n\n if (!callIfFunction(innerParams.allowEnterKey)) {\n blurActiveElement();\n return;\n }\n\n if (!focusButton(domCache, innerParams)) {\n setFocus(innerParams, -1, 1);\n }\n };\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\n\n\n const focusButton = (domCache, innerParams) => {\n if (innerParams.focusDeny && isVisible(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n\n if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n\n if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n\n return false;\n };\n\n const blurActiveElement = () => {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n }; // This anti-war message will only be shown to Russian users visiting Russian sites\n\n\n if (typeof window !== 'undefined' && /^ru\\b/.test(navigator.language) && location.host.match(/\\.(ru|su|xn--p1ai)$/)) {\n if (Math.random() < 0.1) {\n const noWar = document.createElement('div');\n noWar.className = 'leave-russia-now-and-apply-your-skills-to-the-world';\n const video = getRandomElement([{\n text: \"\\u0412 \\u043D\\u0438\\u0436\\u0435\\u043F\\u0440\\u0438\\u0432\\u0435\\u0434\\u0451\\u043D\\u043D\\u043E\\u043C \\u0432\\u0438\\u0434\\u0435\\u043E \\u043E\\u0431\\u044A\\u044F\\u0441\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u043A\\u0430\\u043A \\u043A\\u0430\\u0436\\u0434\\u044B\\u0439 \\u0438\\u0437 \\u043D\\u0430\\u0441 \\u043C\\u043E\\u0436\\u0435\\u0442 \\u043F\\u043E\\u043C\\u043E\\u0447\\u044C \\u0432 \\u0442\\u043E\\u043C,\\n \\u0447\\u0442\\u043E\\u0431\\u044B \\u044D\\u0442\\u0430 \\u0431\\u0435\\u0441\\u0441\\u043C\\u044B\\u0441\\u043B\\u0435\\u043D\\u043D\\u0430\\u044F \\u0438 \\u0431\\u0435\\u0441\\u0447\\u0435\\u043B\\u043E\\u0432\\u0435\\u0447\\u043D\\u0430\\u044F \\u0432\\u043E\\u0439\\u043D\\u0430 \\u043E\\u0441\\u0442\\u0430\\u043D\\u043E\\u0432\\u0438\\u043B\\u0430\\u0441\\u044C:\",\n id: '4CfDhaRkw7I'\n }, {\n text: 'Эмпатия - главное человеческое чувство. Способность сопереживать. Способность поставить себя на место другого.',\n id: 's-GLAIY4DXA'\n }]);\n setInnerHtml(noWar, \"\\n
\\n \\u0415\\u0441\\u043B\\u0438 \\u043C\\u044B \\u043D\\u0435 \\u043E\\u0441\\u0442\\u0430\\u043D\\u043E\\u0432\\u0438\\u043C \\u0432\\u043E\\u0439\\u043D\\u0443, \\u043E\\u043D\\u0430 \\u043F\\u0440\\u0438\\u0434\\u0435\\u0442 \\u0432 \\u0434\\u043E\\u043C \\u043A\\u0430\\u0436\\u0434\\u043E\\u0433\\u043E \\u0438\\u0437 \\u043D\\u0430\\u0441 \\u0438 \\u0435\\u0451 \\u043F\\u043E\\u0441\\u043B\\u0435\\u0434\\u0441\\u0442\\u0432\\u0438\\u044F \\u0431\\u0443\\u0434\\u0443\\u0442 \\u0443\\u0436\\u0430\\u0441\\u0430\\u044E\\u0449\\u0438\\u043C\\u0438.\\n
\\n
\\n \\u041F\\u0443\\u0442\\u0438\\u043D\\u0441\\u043A\\u0438\\u0439 \\u0440\\u0435\\u0436\\u0438\\u043C \\u0437\\u0430 20 \\u0441 \\u043B\\u0438\\u0448\\u043D\\u0438\\u043C \\u043B\\u0435\\u0442 \\u0441\\u0432\\u043E\\u0435\\u0433\\u043E \\u0441\\u0443\\u0449\\u0435\\u0441\\u0442\\u0432\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u0432\\u0434\\u043E\\u043B\\u0431\\u0438\\u043B \\u043D\\u0430\\u043C, \\u0447\\u0442\\u043E \\u043C\\u044B \\u0431\\u0435\\u0441\\u0441\\u0438\\u043B\\u044C\\u043D\\u044B \\u0438 \\u043E\\u0434\\u0438\\u043D \\u0447\\u0435\\u043B\\u043E\\u0432\\u0435\\u043A \\u043D\\u0435 \\u043C\\u043E\\u0436\\u0435\\u0442 \\u043D\\u0438\\u0447\\u0435\\u0433\\u043E \\u0441\\u0434\\u0435\\u043B\\u0430\\u0442\\u044C. \\u042D\\u0442\\u043E \\u043D\\u0435 \\u0442\\u0430\\u043A!\\n
\\n
\\n \".concat(video.text, \"\\n
\\n \\n
\\n \\u041D\\u0435\\u0442 \\u0432\\u043E\\u0439\\u043D\\u0435!\\n
\\n \"));\n const closeButton = document.createElement('button');\n closeButton.innerHTML = '×';\n\n closeButton.onclick = () => noWar.remove();\n\n noWar.appendChild(closeButton);\n window.addEventListener('load', () => {\n setTimeout(() => {\n document.body.appendChild(noWar);\n }, 1000);\n });\n }\n } // Assign instance methods from src/instanceMethods/*.js to prototype\n\n\n Object.assign(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor\n\n Object.assign(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility\n\n Object.keys(instanceMethods).forEach(key => {\n /**\n * @param {...any} args\n * @returns {any}\n */\n SweetAlert[key] = function () {\n if (currentInstance) {\n return currentInstance[key](...arguments);\n }\n };\n });\n SweetAlert.DismissReason = DismissReason;\n SweetAlert.version = '11.4.32';\n\n const Swal = SweetAlert; // @ts-ignore\n\n Swal.default = Swal;\n\n return Swal;\n\n}));\nif (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px hsla(0deg,0%,0%,.075),0 1px 2px hsla(0deg,0%,0%,.075),1px 2px 4px hsla(0deg,0%,0%,.075),1px 3px 8px hsla(0deg,0%,0%,.075),2px 4px 16px hsla(0deg,0%,0%,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:0 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:0 0;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:0 0;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:0 0;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.leave-russia-now-and-apply-your-skills-to-the-world{display:flex;position:fixed;z-index:1939;top:0;right:0;bottom:0;left:0;flex-direction:column;align-items:center;justify-content:center;padding:25px 0 20px;background:#20232a;color:#fff;text-align:center}.leave-russia-now-and-apply-your-skills-to-the-world div{max-width:560px;margin:10px;line-height:146%}.leave-russia-now-and-apply-your-skills-to-the-world iframe{max-width:100%;max-height:55.5555555556vmin;margin:16px auto}.leave-russia-now-and-apply-your-skills-to-the-world strong{border-bottom:2px dashed #fff}.leave-russia-now-and-apply-your-skills-to-the-world button{display:flex;position:fixed;z-index:1940;top:0;right:0;align-items:center;justify-content:center;width:48px;height:48px;margin-right:10px;margin-bottom:-10px;border:none;background:0 0;color:#aaa;font-size:48px;font-weight:700;cursor:pointer}.leave-russia-now-and-apply-your-skills-to-the-world button:hover{color:#fff}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}\");"],"names":["DESCRIPTORS","uncurryThis","call","fails","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","toObject","IndexedObject","$assign","Object","assign","defineProperty","concat","module","exports","b","enumerable","get","this","value","A","B","symbol","Symbol","alphabet","split","forEach","chr","join","target","source","T","argumentsLength","arguments","length","index","getOwnPropertySymbols","f","propertyIsEnumerable","key","S","keys","j","$","stat","arity","forced","privateProps","awaitingPromise","WeakMap","promise","innerParams","domCache","prefix","items","result","i","swalClasses","iconTypes","consolePrefix","capitalizeFirstLetter","str","charAt","toUpperCase","slice","warn","message","console","error","previousWarnOnceMessages","warnAboutDeprecation","deprecatedParam","useInstead","includes","push","callIfFunction","arg","hasToPromiseFn","toPromise","asPromise","Promise","resolve","isPromise","getContainer","document","body","querySelector","container","elementBySelector","selectorString","elementByClass","className","getPopup","popup","getIcon","icon","getTitle","title","getHtmlContainer","getImage","image","getProgressSteps","getValidationMessage","getConfirmButton","actions","confirm","getDenyButton","deny","getLoader","loader","getCancelButton","cancel","getActions","getFooter","footer","getTimerProgressBar","getCloseButton","close","getFocusableElements","focusableElementsWithTabindex","Array","from","querySelectorAll","sort","a","tabindexA","parseInt","getAttribute","tabindexB","otherFocusableElements","filter","el","arr","indexOf","uniqueArray","isVisible","isModal","hasClass","shown","isToast","toast","states","previousBodyPadding","setInnerHtml","elem","html","textContent","parsed","DOMParser","parseFromString","childNodes","child","appendChild","classList","contains","applyCustomClass","params","values","showClass","remove","removeCustomClasses","customClass","addClass","getInput","inputClass","checkbox","radio","range","input","focusInput","focus","type","val","toggleClass","condition","Boolean","isArray","add","removeClass","getDirectChildByClass","children","HTMLElement","applyNumericalStyle","property","style","removeProperty","show","display","undefined","hide","setStyle","parent","selector","toggle","offsetWidth","offsetHeight","getClientRects","isScrollable","scrollHeight","clientHeight","hasCssAnimation","window","getComputedStyle","animDuration","parseFloat","getPropertyValue","transDuration","animateTimerProgressBar","timer","reset","timerProgressBar","transition","width","setTimeout","globalState","restoreActiveElement","returnFocus","x","scrollX","y","scrollY","restoreFocusTimeout","previousActiveElement","scrollTo","isNodeEnv","sweetHTML","file","select","label","textarea","replace","resetValidationMessage","currentInstance","init","oldContainerExisted","oldContainer","documentElement","resetOldContainer","createElement","targetElement","setAttribute","setupAccessibility","direction","rtl","setupRTL","rangeOutput","oninput","onchange","addInputChangeListeners","parseHtmlToContainer","param","handleObject","jquery","handleJqueryElem","toString","cloneNode","animationEndEvent","testEl","transEndEventNames","WebkitAnimation","animation","prototype","hasOwnProperty","renderActions","instance","showConfirmButton","showDenyButton","showCancelButton","confirmButton","denyButton","cancelButton","renderButton","buttonsStyling","styled","confirmButtonColor","backgroundColor","denyButtonColor","cancelButtonColor","handleButtonsStyling","reverseButtons","insertBefore","renderButtons","loaderHtml","button","buttonType","renderContainer","backdrop","background","handleBackdropParam","position","center","handlePositionParam","grow","growClass","handleGrowParam","inputClasses","showInput","renderInputType","inputContainer","getInputContainer","setAttributes","inputAttributes","attributes","attrName","name","removeAttribute","removeAttributes","attr","setCustomClass","setInputPlaceholder","placeholder","inputPlaceholder","setInputLabel","prependTo","inputLabel","id","labelClass","innerText","insertAdjacentElement","inputType","checkAndSetInputValue","inputValue","text","email","password","number","tel","url","rangeInput","disabled","selected","checkboxContainer","checked","initialPopupWidth","MutationObserver","textareaWidth","marginLeft","marginRight","observe","attributeFilter","renderContent","htmlContainer","rerender","renderInput","applyStyles","iconType","setColor","adjustSuccessIconBackgroundColor","popupBackgroundColor","successIconParts","setContent","newContent","oldContent","innerHTML","iconHtml","iconContent","question","warning","info","trim","iconColor","color","borderColor","sel","content","addClasses","modal","createStepElement","step","stepEl","createLineElement","lineEl","progressStepsDistance","render","padding","renderPopup","progressStepsContainer","progressSteps","currentProgressStep","renderProgressSteps","renderIcon","imageUrl","imageAlt","imageWidth","imageHeight","renderImage","titleText","renderTitle","closeButton","closeButtonHtml","showCloseButton","closeButtonAriaLabel","renderCloseButton","renderFooter","didRender","hideLoading","showRelatedButton","loading","buttonToReplace","getElementsByClassName","clickConfirm","click","DismissReason","freeze","esc","removeKeydownHandler","keydownTarget","keydownHandlerAdded","removeEventListener","keydownHandler","capture","keydownListenerCapture","setFocus","increment","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","e","dismissWith","isComposing","keyCode","stopKeydownPropagation","stopPropagation","handleEnter","handleTab","handleArrows","handleEsc","allowEnterKey","outerHTML","preventDefault","btnIndex","shiftKey","activeElement","sibling","buttonToFocus","HTMLButtonElement","allowEscapeKey","privateMethods","swalPromiseResolve","swalPromiseReject","unsetAriaHidden","hasAttribute","addBottomPaddingForTallPopups","ua","navigator","userAgent","iOS","match","webkit","bottomPanelHeight","innerHeight","paddingBottom","lockBodyScroll","preventTouchMove","ontouchstart","shouldPreventTouchMove","ontouchmove","event","isStylus","isZoom","tagName","touches","touchType","fixScrollbar","paddingRight","scrollDiv","scrollbarWidth","getBoundingClientRect","clientWidth","removeChild","measureScrollbar","removePopupAndResetState","didClose","triggerDidCloseAndDispose","then","test","iosfix","offset","top","scrollTop","undoIOSfix","resolveValue","prepareResolveValue","triggerClosePopup","isAwaitingPromise","isDismissed","handleAwaitingPromise","hideClass","handlePopupAnimation","delete","_destroy","isConfirmed","isDenied","animationIsSupported","willClose","animatePopup","swalCloseEventFinishedCallback","bind","addEventListener","setButtonsDisabled","buttons","setInputDisabled","radios","parentNode","defaultParams","template","heightAuto","allowOutsideClick","preConfirm","preDeny","confirmButtonText","confirmButtonAriaLabel","denyButtonText","denyButtonAriaLabel","cancelButtonText","cancelButtonAriaLabel","focusConfirm","focusDeny","focusCancel","showLoaderOnConfirm","showLoaderOnDeny","inputOptions","inputAutoTrim","inputValidator","returnInputValueOnDeny","validationMessage","willOpen","didOpen","didDestroy","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","filterValidParams","validUpdatableParams","disposeSwal","disposeWeakMaps","unsetWeakMaps","set","obj","instanceMethods","disableLoading","rejectPromise","closePopup","closeModal","closeToast","enableButtons","disableButtons","enableInput","disableInput","showValidationMessage","inputerror","update","updatedParams","defineProperties","writable","showLoading","Swal","replaceButton","getCheckboxValue","getRadioValue","getFileValue","files","handleInputOptions","processInputOptions","populateInputOptions","formatInputOptions","handleInputValue","catch","err","renderOption","optionLabel","optionValue","option","isSelected","inputOption","optgroup","o","radioValue","radioLabel","radioInput","radioLabelElement","Map","valueFormatted","handleConfirmOrDenyWithInput","getInputValue","handleInputValidator","checkValidity","preDenyValue","error$$1","rejectWith","succeedWith","preConfirmValue","handleToastClick","onclick","isAnyButtonShown","ignoreOutsideClick","handleModalMousedown","onmousedown","onmouseup","handleContainerMousedown","handleModalClick","isElement","Element","isJqueryElement","stopTimer","timeout","timerProgressBarWidth","timerProgressBarPercent","stopTimerProgressBar","stop","resumeTimer","remaining","start","bodyClickListenerAdded","clickHandlers","bodyClickListener","fire","staticMethods","argsToParams","args","clickDeny","clickCancel","getInputLabel","isLoading","_len","_key","mixin","mixinParams","_main","priorityMixinParams","super","enableLoading","getTimerLeft","toggleTimer","running","increaseTimer","n","increase","isTimerRunning","isRunning","bindClickHandler","Timer","constructor","callback","delay","started","Date","clearTimeout","getTime","swalStringParams","getSwalParams","templateContent","showWarningsForAttributes","JSON","parse","getSwalButtons","getSwalImage","getSwalIcon","getSwalInput","optionName","getSwalStringParams","paramNames","tag","showWarningsForElements","allowedElements","toLowerCase","allowedAttributes","attribute","openPopup","initialBodyOverflow","overflowY","addClasses$1","setScrollingVisibility","fixScrollContainer","swalOpenAnimationFinished","MSStream","platform","maxTouchPoints","iOSfix","setProperty","defaultInputValidators","string","setParameters","setDefaultInputValidators","validateCustomTargetElement","SweetAlert","outerParams","configurable","userParams","showWarningsForParams","prepareParams","populateDomCache","swalPromise","onFulfilled","finally","onFinally","reject","dismiss","handleConfirmButtonClick","handleDenyButtonClick","handleCancelButtonClick","handlePopupClick","addKeydownHandler","handleInputOptionsAndValue","setupTimer","initFocus","templateParams","getTemplateParams","globalState$$1","focusButton","blurActiveElement","blur","language","location","host","Math","random","noWar","video","floor","version","default","factory","Sweetalert2","swal","sweetAlert","t","getElementsByTagName","styleSheet","cssText"],"sourceRoot":""}