{"version":3,"sources":["webpack:///./node_modules/sweetalert2/dist/sweetalert2.all.js"],"names":["module","exports","capitalizeFirstLetter","str","charAt","toUpperCase","slice","toArray","nodeList","Array","prototype","call","warn","message","console","concat","join","error","previousWarnOnceMessages","warnAboutDeprecation","deprecatedParam","useInstead","includes","push","callIfFunction","arg","hasToPromiseFn","toPromise","asPromise","Promise","resolve","isPromise","defaultParams","title","titleText","text","html","footer","icon","undefined","iconColor","iconHtml","template","toast","showClass","popup","backdrop","hideClass","customClass","target","color","heightAuto","allowOutsideClick","allowEscapeKey","allowEnterKey","stopKeydownPropagation","keydownListenerCapture","showConfirmButton","showDenyButton","showCancelButton","preConfirm","preDeny","confirmButtonText","confirmButtonAriaLabel","confirmButtonColor","denyButtonText","denyButtonAriaLabel","denyButtonColor","cancelButtonText","cancelButtonAriaLabel","cancelButtonColor","buttonsStyling","reverseButtons","focusConfirm","focusDeny","focusCancel","returnFocus","showCloseButton","closeButtonHtml","closeButtonAriaLabel","loaderHtml","showLoaderOnConfirm","showLoaderOnDeny","imageUrl","imageWidth","imageHeight","imageAlt","timer","timerProgressBar","width","padding","background","input","inputPlaceholder","inputLabel","inputValue","inputOptions","inputAutoTrim","inputAttributes","inputValidator","returnInputValueOnDeny","validationMessage","grow","position","progressSteps","currentProgressStep","progressStepsDistance","willOpen","didOpen","didRender","willClose","didClose","didDestroy","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","Object","hasOwnProperty","isUpdatableParameter","indexOf","isDeprecatedParameter","checkIfParamIsValid","param","checkIfToastParamIsValid","checkIfParamIsDeprecated","prefix","items","result","i","swalClasses","iconTypes","getContainer","document","body","querySelector","container","elementBySelector","selectorString","elementByClass","className","getPopup","getIcon","getTitle","getHtmlContainer","getImage","image","getProgressSteps","getValidationMessage","getConfirmButton","actions","confirm","getDenyButton","deny","getLoader","loader","getCancelButton","cancel","getActions","getFooter","getTimerProgressBar","getCloseButton","close","getFocusableElements","focusableElementsWithTabindex","querySelectorAll","sort","a","b","tabindexA","parseInt","getAttribute","tabindexB","otherFocusableElements","filter","el","arr","length","uniqueArray","isVisible","isModal","hasClass","shown","isToast","states","previousBodyPadding","setInnerHtml","elem","textContent","parsed","DOMParser","parseFromString","childNodes","forEach","child","appendChild","classList","split","contains","applyCustomClass","params","values","remove","removeCustomClasses","addClass","getInput","inputClass","checkbox","radio","range","focusInput","focus","type","val","value","toggleClass","condition","Boolean","isArray","add","removeClass","getDirectChildByClass","applyNumericalStyle","property","style","removeProperty","show","display","arguments","hide","setStyle","parent","selector","toggle","offsetWidth","offsetHeight","getClientRects","isScrollable","scrollHeight","clientHeight","hasCssAnimation","window","getComputedStyle","animDuration","parseFloat","getPropertyValue","transDuration","animateTimerProgressBar","reset","transition","setTimeout","isNodeEnv","globalState","restoreActiveElement","x","scrollX","y","scrollY","restoreFocusTimeout","previousActiveElement","HTMLElement","scrollTo","sweetHTML","file","select","label","textarea","replace","resetValidationMessage","currentInstance","init","oldContainerExisted","oldContainer","documentElement","resetOldContainer","createElement","targetElement","setAttribute","setupAccessibility","direction","rtl","setupRTL","rangeOutput","oninput","onchange","addInputChangeListeners","noWarMessageForRussians","youtubeId","Math","floor","random","navigator","language","location","host","match","noWar","paddingTop","parseHtmlToContainer","handleObject","jquery","handleJqueryElem","toString","cloneNode","animationEndEvent","testEl","transEndEventNames","WebkitAnimation","animation","renderActions","instance","confirmButton","denyButton","cancelButton","renderButton","styled","backgroundColor","handleButtonsStyling","insertBefore","renderButtons","button","buttonType","renderContainer","handleBackdropParam","center","handlePositionParam","growClass","handleGrowParam","privateProps","awaitingPromise","WeakMap","promise","innerParams","domCache","inputClasses","showInput","renderInputType","inputContainer","getInputContainer","setAttributes","attributes","attrName","name","removeAttribute","removeAttributes","attr","setCustomClass","setInputPlaceholder","placeholder","setInputLabel","prependTo","id","labelClass","innerText","insertAdjacentElement","inputType","checkAndSetInputValue","email","password","number","tel","url","rangeInput","disabled","selected","checkboxContainer","checked","initialPopupWidth","MutationObserver","textareaWidth","marginLeft","marginRight","observe","attributeFilter","renderContent","htmlContainer","get","rerender","renderInput","applyStyles","iconType","setColor","adjustSuccessIconBackgroundColor","popupBackgroundColor","successIconParts","setContent","newContent","oldContent","innerHTML","iconContent","question","warning","info","trim","borderColor","sel","content","createStepElement","step","stepEl","createLineElement","lineEl","addClasses","modal","render","renderPopup","progressStepsContainer","index","renderProgressSteps","keys","renderIcon","renderImage","renderTitle","closeButton","renderCloseButton","renderFooter","DismissReason","freeze","esc","unsetAriaHidden","children","hasAttribute","swalStringParams","getSwalParams","templateContent","showWarningsForAttributes","JSON","parse","getSwalButtons","getSwalImage","getSwalIcon","getSwalInput","option","optionValue","optionName","getSwalStringParams","paramNames","tag","showWarningsForElements","allowedElements","tagName","toLowerCase","allowedAttributes","attribute","defaultInputValidators","string","test","setParameters","key","setDefaultInputValidators","validateCustomTargetElement","Timer","callback","delay","this","remaining","running","start","started","Date","clearTimeout","getTime","n","stop","fixScrollbar","innerHeight","paddingRight","scrollDiv","scrollbarWidth","getBoundingClientRect","clientWidth","removeChild","measureScrollbar","addBottomPaddingForTallPopups","ua","userAgent","iOS","webkit","bottomPanelHeight","paddingBottom","lockBodyScroll","preventTouchMove","ontouchstart","e","shouldPreventTouchMove","ontouchmove","preventDefault","stopPropagation","event","isStylus","isZoom","touches","touchType","openPopup","initialBodyOverflow","overflowY","addClasses$1","setScrollingVisibility","fixScrollContainer","activeElement","swalOpenAnimationFinished","removeEventListener","addEventListener","MSStream","platform","maxTouchPoints","iosfix","offset","scrollTop","top","iOSfix","setProperty","showLoading","buttonToReplace","Swal","replaceButton","parentNode","loading","getCheckboxValue","getRadioValue","getFileValue","files","handleInputOptions","processInputOptions","populateInputOptions","formatInputOptions","then","hideLoading","handleInputValue","catch","err","renderOption","optionLabel","isSelected","inputOption","optgroup","o","radioValue","radioLabel","radioInput","radioLabelElement","radios","Map","valueFormatted","showRelatedButton","getElementsByClassName","privateMethods","swalPromiseResolve","swalPromiseReject","clickConfirm","click","removeKeydownHandler","keydownTarget","keydownHandlerAdded","keydownHandler","capture","setFocus","increment","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","dismissWith","isComposing","keyCode","handleEnter","handleTab","handleArrows","handleEsc","outerHTML","btnIndex","shiftKey","sibling","buttonToFocus","HTMLButtonElement","removePopupAndResetState","triggerDidCloseAndDispose","undoIOSfix","resolveValue","prepareResolveValue","triggerClosePopup","isAwaitingPromise","isDismissed","handleAwaitingPromise","handlePopupAnimation","delete","_destroy","isConfirmed","isDenied","assign","animationIsSupported","animatePopup","swalCloseEventFinishedCallback","bind","setButtonsDisabled","buttons","setInputDisabled","filterValidParams","validUpdatableParams","disposeSwal","disposeWeakMaps","unsetWeakMaps","set","obj","instanceMethods","disableLoading","rejectPromise","closePopup","closeModal","closeToast","enableButtons","disableButtons","enableInput","disableInput","showValidationMessage","inputerror","update","updatedParams","defineProperties","writable","enumerable","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","resumeTimer","bodyClickListenerAdded","clickHandlers","bodyClickListener","fire","staticMethods","argsToParams","args","clickDeny","clickCancel","getInputLabel","isLoading","_len","_key","mixin","mixinParams","priorityMixinParams","super","_main","enableLoading","getTimerLeft","toggleTimer","increaseTimer","increase","isTimerRunning","isRunning","bindClickHandler","SweetAlert","outerParams","constructor","configurable","userParams","showWarningsForParams","prepareParams","populateDomCache","swalPromise","onFulfilled","onFinally","finally","reject","dismiss","handleConfirmButtonClick","handleDenyButtonClick","handleCancelButtonClick","handlePopupClick","addKeydownHandler","handleInputOptionsAndValue","setupTimer","initFocus","templateParams","getTemplateParams","globalState$$1","focusButton","blurActiveElement","blur","version","default","factory","Sweetalert2","swal","sweetAlert","t","getElementsByTagName","styleSheet","cssText"],"mappings":"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","file":"js/2.js?id=49af00142bc9fe23479f","sourcesContent":["/*!\n* sweetalert2 v11.4.17\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 const consolePrefix = 'SweetAlert2:';\n /**\n * Filter the unique values into a new array\n * @param arr\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 * @param {string} str\n * @returns {string}\n */\n\n const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n /**\n * @param {NodeList | HTMLCollection | NamedNodeMap | DOMTokenList} nodeList\n * @returns {array}\n */\n\n const toArray = nodeList => Array.prototype.slice.call(nodeList);\n /**\n * Standardize console warnings\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 * @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 * @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 * @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\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 * @param arg\n */\n\n const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n const isPromise = arg => arg && Promise.resolve(arg) === arg;\n const getRandomElement = arr => arr[Math.floor(Math.random() * arr.length)];\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 * @param {string} paramName\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 * @param {string} paramName\n */\n\n const isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n };\n /**\n * Is deprecated parameter\n * @param {string} paramName\n */\n\n const isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n };\n\n const checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(\"Unknown parameter \\\"\".concat(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 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 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 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 /**\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 = toArray(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 = toArray(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 toArray(parsed.querySelector('head').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n toArray(parsed.querySelector('body').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n }\n };\n /**\n * @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 toArray(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 childNodes = toArray(elem.childNodes);\n\n for (let i = 0; i < childNodes.length; i++) {\n if (hasClass(childNodes[i], className)) {\n return childNodes[i];\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 /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\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 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 noWarMessageForRussians(container, params);\n };\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions} params\n */\n\n const noWarMessageForRussians = (container, params) => {\n if (params.toast) {\n return;\n } // This message is targeted at people who are corrupted by propaganda, everybody else\n // is already against war either silently or actively.\n //\n // The point is to wrap the truth-bomb into a patriotic title so they will actually click it\n // and listen to the uncomfortable truth about the war from the people they love or respect.\n\n\n const message = getRandomElement([{\n text: 'ШВАРЦЕНЕГГЕР обратился
к РУССКОМУ НАРОДУ о войне',\n // Arnold is loved in Russia by all people including those who are for this war\n // His speech might change the mind of those who are brainwashed by propaganda\n youtubeId: 'fWClXZd9c78'\n }, {\n text: 'РУССКИЙ ПАТРИОТ
открыл главную тайну спецоперации',\n // In this video one of the most famous Russian nationalist leaders, Dmitry Demushkin,\n // explains that this war has no sense and produces the exact opposite result of what\n // it was intended to do.\n youtubeId: '_RjBNkn88yA'\n }, {\n text: 'ГЕРОЙ НОВОРОССИИ СТРЕЛКОВ
дал оценку ходу спецоперации',\n // In this video Igor Girkin, who played a key role in the annexation of Crimea,\n // explains that this war has failed already and all possible outcomes are bad for Russia.\n youtubeId: 'yUmzQT4C8JY'\n }, {\n text: 'ФИНСКИЙ ДРУГ РОССИИ
говорит ПО-РУССКИ о спецоперации',\n youtubeId: 'hkCYb6edUrQ'\n }, {\n text: 'ЮРИЙ ПОДОЛЯКА честно
о генералах РУССКОЙ АРМИИ',\n youtubeId: 'w4-_8BJKfpk'\n }, {\n text: 'Полковник ФСБ СТРЕЛКОВ
об успехах РОССИИ в спецоперации',\n youtubeId: 'saK5UTKroDA'\n }]); // The message will only be shown to Russian users visiting Russian sites\n\n if (navigator.language === 'ru' && location.host.match(/\\.(ru|su|xn--p1ai)$/)) {\n const noWar = document.createElement('div');\n noWar.className = swalClasses['no-war'];\n setInnerHtml(noWar, \"\").concat(message.text, \"\"));\n container.appendChild(noWar);\n container.style.paddingTop = '4em';\n }\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 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 * 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 /// \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 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 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 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 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 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 const DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\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 = toArray(document.body.children);\n bodyChildren.forEach(el => {\n if (el === getContainer() || el.contains(getContainer())) {\n return;\n }\n\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));\n }\n\n el.setAttribute('aria-hidden', 'true');\n });\n };\n const unsetAriaHidden = () => {\n const bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n const swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n const getTemplateParams = params => {\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 */\n\n const getSwalParams = templateContent => {\n const result = {};\n toArray(templateContent.querySelectorAll('swal-param')).forEach(param => {\n showWarningsForAttributes(param, ['name', 'value']);\n const paramName = param.getAttribute('name');\n const value = param.getAttribute('value');\n\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 */\n\n\n const getSwalButtons = templateContent => {\n const result = {};\n toArray(templateContent.querySelectorAll('swal-button')).forEach(button => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n const type = button.getAttribute('type');\n result[\"\".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 */\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 */\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 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 */\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 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\n const inputOptions = templateContent.querySelectorAll('swal-input-option');\n\n if (inputOptions.length) {\n result.inputOptions = {};\n toArray(inputOptions).forEach(option => {\n showWarningsForAttributes(option, ['value']);\n const optionValue = option.getAttribute('value');\n const optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\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 toArray(templateContent.children).forEach(el => {\n const tagName = el.tagName.toLowerCase();\n\n if (allowedElements.indexOf(tagName) === -1) {\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 toArray(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 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 class Timer {\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 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 /* 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 container.ontouchstart = e => {\n preventTouchMove = shouldPreventTouchMove(e);\n };\n\n container.ontouchmove = e => {\n if (preventTouchMove) {\n e.preventDefault();\n e.stopPropagation();\n }\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.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 SHOW_CLASS_TIMEOUT = 10;\n /**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param 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 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 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 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 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 /**\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 * 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 * 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 /*\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 /**\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 * 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 /**\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 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 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 const handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n };\n\n const handleConfirmOrDenyWithInput = (instance, type\n /* 'confirm' | 'deny' */\n ) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams.input) {\n return error(\"The \\\"input\\\" parameter is needed to be set when using returnInputValueOn\".concat(capitalizeFirstLetter(type)));\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 const handleInputValidator = (instance, inputValue, type\n /* 'confirm' | 'deny' */\n ) => {\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 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.closePopup({\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.closePopup({\n isDenied: true,\n value\n });\n }\n };\n\n const succeedWith = (instance, value) => {\n instance.closePopup({\n isConfirmed: true,\n value\n });\n };\n\n const rejectWith = (instance, error$$1) => {\n instance.rejectPromise(error$$1);\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 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 const swalPromise = (instance, domCache, innerParams) => {\n return new Promise((resolve, reject) => {\n // functions to handle all closings/dismissals\n const dismissWith = dismiss => {\n instance.closePopup({\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 = () => handleConfirmButtonClick(instance);\n\n domCache.denyButton.onclick = () => handleDenyButtonClick(instance);\n\n domCache.cancelButton.onclick = () => handleCancelButtonClick(instance, dismissWith);\n\n domCache.closeButton.onclick = () => dismissWith(DismissReason.close);\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 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 return blurActiveElement();\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 }; // 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 SweetAlert[key] = function () {\n if (currentInstance) {\n return currentInstance[key](...arguments);\n }\n };\n });\n SweetAlert.DismissReason = DismissReason;\n SweetAlert.version = '11.4.17';\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;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:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-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;-ms-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}.swal2-no-war{display:flex;position:fixed;z-index:1061;top:0;left:0;align-items:center;justify-content:center;width:100%;height:3.375em;background:#20232a;color:#fff;text-align:center}.swal2-no-war a{color:#61dafb;text-decoration:none}.swal2-no-war a:hover{text-decoration:underline}@-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}\");"],"sourceRoot":""}