{"version":3,"sources":["webpack:///./node_modules/sweetalert2/dist/sweetalert2.all.js","webpack:///./src/modules/auth/components/RecoverPassword.vue?219f","webpack:///./src/modules/home/recuperar-senha.vue","webpack:///src/modules/home/recuperar-senha.vue","webpack:///./src/modules/home/recuperar-senha.vue?5591","webpack:///./src/modules/home/recuperar-senha.vue?5916","webpack:///./src/modules/auth/components/RecoverPassword.vue","webpack:///src/modules/auth/components/RecoverPassword.vue","webpack:///./src/modules/auth/components/RecoverPassword.vue?7581","webpack:///./src/modules/auth/components/RecoverPassword.vue?75ca"],"names":["global","factory","module","exports","this","privateProps","awaitingPromise","WeakMap","promise","innerParams","domCache","swalPrefix","prefix","items","result","i","swalClasses","iconTypes","consolePrefix","uniqueArray","arr","length","indexOf","push","capitalizeFirstLetter","str","charAt","toUpperCase","slice","warn","message","console","join","error","previousWarnOnceMessages","warnOnce","includes","warnAboutDeprecation","deprecatedParam","useInstead","callIfFunction","arg","hasToPromiseFn","toPromise","asPromise","Promise","resolve","isPromise","getContainer","document","body","querySelector","container","elementBySelector","selectorString","elementByClass","className","getPopup","popup","getIcon","icon","getIconContent","getTitle","title","getHtmlContainer","getImage","image","getProgressSteps","getValidationMessage","getConfirmButton","actions","confirm","getDenyButton","deny","getInputLabel","getLoader","loader","getCancelButton","cancel","getActions","getFooter","footer","getTimerProgressBar","getCloseButton","close","focusable","getFocusableElements","focusableElementsWithTabindex","Array","from","querySelectorAll","sort","a","b","tabindexA","parseInt","getAttribute","tabindexB","otherFocusableElements","filter","el","concat","isVisible$1","isModal","hasClass","shown","isToast","toast","isLoading","hasAttribute","states","previousBodyPadding","setInnerHtml","elem","html","textContent","parser","DOMParser","parsed","parseFromString","childNodes","forEach","child","appendChild","HTMLVideoElement","HTMLAudioElement","cloneNode","classList","split","contains","removeCustomClasses","params","Object","values","showClass","remove","applyCustomClass","customClass","addClass","getInput$1","inputClass","checkbox","radio","range","input","focusInput","focus","type","val","value","toggleClass","target","condition","Boolean","isArray","add","removeClass","getDirectChildByClass","children","HTMLElement","applyNumericalStyle","property","style","removeProperty","show","display","arguments","undefined","hide","setStyle","parent","selector","toggle","offsetWidth","offsetHeight","getClientRects","allButtonsAreHidden","isScrollable","scrollHeight","clientHeight","hasCssAnimation","window","getComputedStyle","animDuration","parseFloat","getPropertyValue","transDuration","animateTimerProgressBar","timer","reset","timerProgressBar","transition","width","setTimeout","stopTimerProgressBar","timerProgressBarWidth","timerProgressBarFullWidth","timerProgressBarPercent","RESTORE_FOCUS_TIMEOUT","globalState","focusPreviousActiveElement","previousActiveElement","restoreActiveElement","returnFocus","x","scrollX","y","scrollY","restoreFocusTimeout","scrollTo","isNodeEnv","sweetHTML","file","select","label","textarea","replace","resetOldContainer","oldContainer","documentElement","resetValidationMessage$1","currentInstance","resetValidationMessage","addInputChangeListeners","rangeOutput","oninput","onchange","getTarget","setupAccessibility","setAttribute","setupRTL","targetElement","direction","rtl","init","oldContainerExisted","createElement","parseHtmlToContainer","param","handleObject","jquery","handleJqueryElem","toString","animationEndEvent","testEl","transEndEventNames","WebkitAnimation","animation","prototype","hasOwnProperty","call","measureScrollbar","scrollDiv","scrollbarWidth","getBoundingClientRect","clientWidth","removeChild","renderActions","instance","showConfirmButton","showDenyButton","showCancelButton","renderButtons","loaderHtml","confirmButton","denyButton","cancelButton","renderButton","handleButtonsStyling","reverseButtons","insertBefore","buttonsStyling","styled","confirmButtonColor","backgroundColor","denyButtonColor","cancelButtonColor","button","buttonType","renderCloseButton","closeButton","closeButtonHtml","showCloseButton","closeButtonAriaLabel","renderContainer","handleBackdropParam","backdrop","handlePositionParam","position","handleGrowParam","grow","background","center","growClass","inputClasses","renderInput","get","rerender","inputContainer","setAttributes","inputAttributes","showInput","setCustomClass","renderInputType","getInputContainer","inputAutoFocus","removeAttributes","attributes","attrName","name","removeAttribute","attr","setInputPlaceholder","placeholder","inputPlaceholder","setInputLabel","prependTo","inputLabel","id","labelClass","innerText","insertAdjacentElement","inputType","checkAndSetInputValue","inputValue","text","email","password","number","tel","url","rangeInput","disabled","selected","checkboxContainer","checked","getMargin","marginLeft","marginRight","initialPopupWidth","textareaResizeHandler","textareaWidth","MutationObserver","observe","attributeFilter","renderContent","htmlContainer","renderFooter","renderIcon","setContent","applyStyles","iconHtml","keys","iconType","setColor","adjustSuccessIconBackgroundColor","popupBackgroundColor","successIconParts","successIconHtml","errorIconHtml","newContent","oldContent","innerHTML","iconContent","defaultIconHtml","question","warning","info","trim","iconColor","color","borderColor","sel","content","renderImage","imageUrl","imageAlt","imageWidth","imageHeight","renderPopup","padding","addClasses$1","modal","renderProgressSteps","progressStepsContainer","progressSteps","currentProgressStep","step","index","stepEl","createStepElement","lineEl","createLineElement","progressStepsDistance","renderTitle","titleText","render","didRender","hideLoading","showRelatedButton","loading","buttonToReplace","getElementsByClassName","getInput","isVisible","clickConfirm","click","clickDeny","clickCancel","DismissReason","freeze","esc","removeKeydownHandler","keydownTarget","keydownHandlerAdded","removeEventListener","keydownHandler","capture","keydownListenerCapture","addKeydownHandler","dismissWith","e","addEventListener","setFocus","increment","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","event","isComposing","keyCode","stopKeydownPropagation","stopPropagation","key","handleEnter","handleTab","handleArrows","handleEsc","allowEnterKey","outerHTML","preventDefault","btnIndex","shiftKey","activeElement","sibling","buttonToFocus","HTMLButtonElement","allowEscapeKey","privateMethods","swalPromiseResolve","swalPromiseReject","setAriaHidden","bodyChildren","unsetAriaHidden","iOSfix","iOS","test","navigator","userAgent","MSStream","platform","maxTouchPoints","iosfix","offset","scrollTop","top","lockBodyScroll","addBottomPaddingForTallPopups","ua","match","webkit","iOSSafari","bottomPanelHeight","innerHeight","paddingBottom","preventTouchMove","ontouchstart","shouldPreventTouchMove","ontouchmove","isStylus","isZoom","tagName","touches","touchType","undoIOSfix","fixScrollbar","paddingRight","undoScrollbar","removePopupAndResetState","didClose","triggerDidCloseAndDispose","then","isSafari","removeBodyClasses","resolveValue","prepareResolveValue","triggerClosePopup","isAwaitingPromise","isDismissed","handleAwaitingPromise","hideClass","handlePopupAnimation","rejectPromise","delete","_destroy","isConfirmed","isDenied","assign","animationIsSupported","willClose","animatePopup","swalCloseEventFinishedCallback","bind","setButtonsDisabled","buttons","setInputDisabled","radiosContainer","parentNode","radios","enableButtons","disableButtons","enableInput","disableInput","showValidationMessage","validationMessage","inputerror","defaultParams","template","heightAuto","allowOutsideClick","preConfirm","preDeny","confirmButtonText","confirmButtonAriaLabel","denyButtonText","denyButtonAriaLabel","cancelButtonText","cancelButtonAriaLabel","focusConfirm","focusDeny","focusCancel","showLoaderOnConfirm","showLoaderOnDeny","inputOptions","inputAutoTrim","inputValidator","returnInputValueOnDeny","willOpen","didOpen","didDestroy","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","showWarningsForParams","update","validUpdatableParams","filterValidParams","updatedParams","set","defineProperties","writable","enumerable","disposeSwal","disposeWeakMaps","unsetWeakMaps","obj","instanceMethods","__proto__","disableLoading","closePopup","closeModal","closeToast","showLoading","Swal","replaceButton","handleInputOptionsAndValue","handleInputOptions","handleInputValue","getInputValue","getCheckboxValue","getRadioValue","getFileValue","files","processInputOptions","populateInputOptions","formatInputOptions","catch","err","renderOption","optionLabel","optionValue","option","isSelected","inputOption","optgroup","o","radioValue","radioLabel","radioInput","radioLabelElement","Map","valueFormatted","handleConfirmButtonClick","handleConfirmOrDenyWithInput","handleDenyButtonClick","handleCancelButtonClick","handleInputValidator","checkValidity","validationPromise","preDenyPromise","preDenyValue","rejectWith","succeedWith","preConfirmPromise","preConfirmValue","handlePopupClick","handleToastClick","handleModalMousedown","handleContainerMousedown","handleModalClick","onclick","isAnyButtonShown","ignoreOutsideClick","onmousedown","onmouseup","isJqueryElement","isElement","Element","argsToParams","args","fire","_len","_key","mixin","mixinParams","MixinSwal","priorityMixinParams","super","_main","getTimerLeft","timeout","stopTimer","stop","resumeTimer","remaining","start","toggleTimer","running","increaseTimer","n","increase","isTimerRunning","isRunning","bodyClickListenerAdded","clickHandlers","bindClickHandler","bodyClickListener","staticMethods","enableLoading","Timer","callback","delay","started","Date","clearTimeout","getTime","swalStringParams","getTemplateParams","templateContent","showWarningsForElements","getSwalParams","getSwalFunctionParams","getSwalButtons","getSwalImage","getSwalIcon","getSwalInput","getSwalStringParams","swalParams","showWarningsForAttributes","JSON","parse","swalFunctions","Function","swalButtons","optionName","paramNames","tag","allowedElements","toLowerCase","allowedAttributes","attribute","SHOW_CLASS_TIMEOUT","openPopup","bodyStyles","initialBodyOverflow","overflowY","addClasses","setScrollingVisibility","fixScrollContainer","swalOpenAnimationFinished","setProperty","defaultInputValidators","string","setDefaultInputValidators","validateCustomTargetElement","setParameters","SweetAlert","outerParams","constructor","configurable","userParams","prepareParams","populateDomCache","swalPromise","onFulfilled","onFinally","finally","reject","dismiss","setupTimer","initFocus","templateParams","focusButton","blurActiveElement","blur","language","location","host","now","initiationDate","localStorage","getItem","pointerEvents","ukrainianAnthem","src","loop","play","setItem","version","default","Sweetalert2","swal","sweetAlert","t","getElementsByTagName","styleSheet","cssText","_vm","_c","_self","staticClass","attrs","staticRenderFns","components","RecuperarSenha","data","methods","component","_m","on","$event","onSubmit","apply","_v","directives","rawName","payload","expression","userRules","domProps","composing","$set","senha","passwordRules","avisoCadastrarUsuario","_l","avisos","aviso","staticStyle","_s","_e","tokenRecuperacao","logo","usuarioAPI"],"mappings":"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","file":"js/auth.379ab50b.js","sourcesContent":["/*!\n* sweetalert2 v11.7.0\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 = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Sweetalert2 = factory());\n})(this, (function () { 'use strict';\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateProps = {\n awaitingPromise: new WeakMap(),\n promise: new WeakMap(),\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n const swalPrefix = 'swal2-';\n\n /**\n * @param {string[]} items\n * @returns {object}\n */\n const prefix = items => {\n const result = {};\n for (const i in items) {\n result[items[i]] = swalPrefix + items[i];\n }\n return result;\n };\n 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']);\n const iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);\n\n const consolePrefix = 'SweetAlert2:';\n\n /**\n * Filter the unique values into a new array\n *\n * @param {Array} arr\n * @returns {Array}\n */\n const uniqueArray = arr => {\n const result = [];\n for (let i = 0; i < arr.length; i++) {\n if (result.indexOf(arr[i]) === -1) {\n result.push(arr[i]);\n }\n }\n return result;\n };\n\n /**\n * Capitalize the first letter of a string\n *\n * @param {string} str\n * @returns {string}\n */\n const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n\n /**\n * Standardize console warnings\n *\n * @param {string | Array} message\n */\n const warn = message => {\n console.warn(`${consolePrefix} ${typeof message === 'object' ? message.join(' ') : message}`);\n };\n\n /**\n * Standardize console errors\n *\n * @param {string} message\n */\n const error = message => {\n console.error(`${consolePrefix} ${message}`);\n };\n\n /**\n * Private global state for `warnOnce`\n *\n * @type {Array}\n * @private\n */\n const previousWarnOnceMessages = [];\n\n /**\n * Show a console warning, but only if it hasn't already been shown\n *\n * @param {string} message\n */\n const warnOnce = message => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n\n /**\n * Show a one-time console warning about deprecated params/methods\n *\n * @param {string} deprecatedParam\n * @param {string} useInstead\n */\n const warnAboutDeprecation = (deprecatedParam, useInstead) => {\n warnOnce(`\"${deprecatedParam}\" is deprecated and will be removed in the next major release. Please use \"${useInstead}\" instead.`);\n };\n\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n *\n * @param {Function | any} arg\n * @returns {any}\n */\n const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n\n /**\n * @param {any} arg\n * @returns {Promise}\n */\n const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n\n /**\n * @param {any} arg\n * @returns {boolean}\n */\n const isPromise = arg => arg && Promise.resolve(arg) === arg;\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n const getContainer = () => document.body.querySelector(`.${swalClasses.container}`);\n\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n const elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n const elementByClass = className => {\n return elementBySelector(`.${className}`);\n };\n\n /**\n * @returns {HTMLElement | null}\n */\n const getPopup = () => elementByClass(swalClasses.popup);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getIcon = () => elementByClass(swalClasses.icon);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getIconContent = () => elementByClass(swalClasses['icon-content']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getTitle = () => elementByClass(swalClasses.title);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getImage = () => elementByClass(swalClasses.image);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getConfirmButton = () => elementBySelector(`.${swalClasses.actions} .${swalClasses.confirm}`);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getDenyButton = () => elementBySelector(`.${swalClasses.actions} .${swalClasses.deny}`);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getInputLabel = () => elementByClass(swalClasses['input-label']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getLoader = () => elementBySelector(`.${swalClasses.loader}`);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getCancelButton = () => elementBySelector(`.${swalClasses.actions} .${swalClasses.cancel}`);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getActions = () => elementByClass(swalClasses.actions);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getFooter = () => elementByClass(swalClasses.footer);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n\n /**\n * @returns {HTMLElement | null}\n */\n const getCloseButton = () => elementByClass(swalClasses.close);\n\n // https://github.com/jkup/focusable/blob/master/index.js\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 const getFocusableElements = () => {\n const focusableElementsWithTabindex = Array.from(getPopup().querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])'))\n // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex'));\n const tabindexB = parseInt(b.getAttribute('tabindex'));\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n return 0;\n });\n const otherFocusableElements = Array.from(getPopup().querySelectorAll(focusable)).filter(el => el.getAttribute('tabindex') !== '-1');\n return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(el => isVisible$1(el));\n };\n\n /**\n * @returns {boolean}\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 /**\n * @returns {boolean}\n */\n const isToast = () => {\n return getPopup() && hasClass(getPopup(), swalClasses.toast);\n };\n\n /**\n * @returns {boolean}\n */\n const isLoading = () => {\n return getPopup().hasAttribute('data-loading');\n };\n\n // Remember state in cases where opening and handling a modal will fiddle with it.\n const states = {\n previousBodyPadding: null\n };\n\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n const setInnerHtml = (elem, html) => {\n elem.textContent = '';\n if (html) {\n const parser = new DOMParser();\n const parsed = parser.parseFromString(html, `text/html`);\n Array.from(parsed.querySelector('head').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n Array.from(parsed.querySelector('body').childNodes).forEach(child => {\n if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {\n elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507\n } else {\n elem.appendChild(child);\n }\n });\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n const hasClass = (elem, className) => {\n if (!className) {\n return false;\n }\n const classList = className.split(/\\s+/);\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n return true;\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n const removeCustomClasses = (elem, params) => {\n Array.from(elem.classList).forEach(className => {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n const applyCustomClass = (elem, params, className) => {\n removeCustomClasses(elem, params);\n if (params.customClass && params.customClass[className]) {\n if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n warn(`Invalid type of customClass.${className}! Expected string or iterable object, got \"${typeof params.customClass[className]}\"`);\n return;\n }\n addClass(elem, params.customClass[className]);\n }\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass} inputClass\n * @returns {HTMLInputElement | null}\n */\n const getInput$1 = (popup, inputClass) => {\n if (!inputClass) {\n return null;\n }\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses[inputClass]}`);\n case 'checkbox':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.checkbox} input`);\n case 'radio':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:checked`) || popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:first-child`);\n case 'range':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.range} input`);\n default:\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.input}`);\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n const focusInput = input => {\n input.focus();\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n const val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n * @param {boolean} condition\n */\n const toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return;\n }\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n classList.forEach(className => {\n if (Array.isArray(target)) {\n target.forEach(elem => {\n condition ? elem.classList.add(className) : elem.classList.remove(className);\n });\n } else {\n condition ? target.classList.add(className) : target.classList.remove(className);\n }\n });\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\n const addClass = (target, classList) => {\n toggleClass(target, classList, true);\n };\n\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\n const removeClass = (target, classList) => {\n toggleClass(target, classList, false);\n };\n\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | undefined}\n */\n const getDirectChildByClass = (elem, className) => {\n const children = Array.from(elem.children);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n const applyNumericalStyle = (elem, property, value) => {\n if (value === `${parseInt(value)}`) {\n value = parseInt(value);\n }\n if (value || parseInt(value) === 0) {\n elem.style[property] = typeof value === 'number' ? `${value}px` : value;\n } else {\n elem.style.removeProperty(property);\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {string} display\n */\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 /**\n * @param {HTMLElement} elem\n */\n const hide = elem => {\n elem.style.display = 'none';\n };\n\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n const setStyle = (parent, selector, property, value) => {\n /** @type {HTMLElement} */\n const el = parent.querySelector(selector);\n if (el) {\n el.style[property] = value;\n }\n };\n\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\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 /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n const isVisible$1 = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n\n /**\n * @returns {boolean}\n */\n const allButtonsAreHidden = () => !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\n\n /**\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);\n\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\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 /**\n * @param {number} timer\n * @param {boolean} reset\n */\n const animateTimerProgressBar = function (timer) {\n let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const timerProgressBar = getTimerProgressBar();\n if (isVisible$1(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n setTimeout(() => {\n timerProgressBar.style.transition = `width ${timer / 1000}s linear`;\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n 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.width = `${timerProgressBarPercent}%`;\n };\n\n const RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n const globalState = {};\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 /**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise}\n */\n const restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\n const sweetHTML = `\n
\n \n \n
\n \n

\n
\n \n \n
\n \n \n
\n \n
\n \n \n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n`.replace(/(^|\\n)\\s*/g, '');\n\n /**\n * @returns {boolean}\n */\n const resetOldContainer = () => {\n const oldContainer = getContainer();\n if (!oldContainer) {\n return false;\n }\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n const resetValidationMessage$1 = () => {\n globalState.currentInstance.resetValidationMessage();\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 const range = popup.querySelector(`.${swalClasses.range} input`);\n /** @type {HTMLOutputElement} */\n const rangeOutput = popup.querySelector(`.${swalClasses.range} output`);\n const select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n const checkbox = popup.querySelector(`.${swalClasses.checkbox} input`);\n const textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage$1;\n file.onchange = resetValidationMessage$1;\n select.onchange = resetValidationMessage$1;\n checkbox.onchange = resetValidationMessage$1;\n textarea.oninput = resetValidationMessage$1;\n range.oninput = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n range.onchange = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n };\n\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n\n /**\n * @param {SweetAlertOptions} params\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 if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n\n /**\n * @param {HTMLElement} targetElement\n */\n const setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n const init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n\n /* istanbul ignore if */\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n const container = document.createElement('div');\n container.className = swalClasses.container;\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n setInnerHtml(container, sweetHTML);\n const targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n const parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n }\n\n // Object\n else if (typeof param === 'object') {\n handleObject(param, target);\n }\n\n // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n\n /**\n * @param {object} param\n * @param {HTMLElement} target\n */\n const handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n }\n\n // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n\n /**\n * @param {HTMLElement} target\n * @param {HTMLElement} elem\n */\n const handleJqueryElem = (target, elem) => {\n target.textContent = '';\n if (0 in elem) {\n for (let i = 0; (i in elem); i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n /**\n * @returns {'webkitAnimationEnd' | 'animationend' | false}\n */\n const animationEndEvent = (() => {\n // Prevent run in Node env\n /* istanbul ignore if */\n if (isNodeEnv()) {\n return false;\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 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 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 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 const renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader();\n\n // Actions (buttons) wrapper\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n }\n\n // Custom class\n applyCustomClass(actions, params, 'actions');\n\n // Render all the buttons\n renderButtons(actions, loader, params);\n\n // Loader\n setInnerHtml(loader, params.loaderHtml);\n applyCustomClass(loader, params, 'loader');\n };\n\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n function renderButtons(actions, loader, params) {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n\n // Render buttons\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n 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 /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n return;\n }\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n\n // Buttons background colors\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n function renderButton(button, buttonType, params) {\n toggle(button, params[`show${capitalizeFirstLetter(buttonType)}Button`], 'inline-block');\n setInnerHtml(button, params[`${buttonType}ButtonText`]); // Set caption text\n button.setAttribute('aria-label', params[`${buttonType}ButtonAriaLabel`]); // ARIA label\n\n // Add buttons custom classes\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, `${buttonType}Button`);\n addClass(button, params[`${buttonType}ButtonClass`]);\n }\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n const renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n setInnerHtml(closeButton, params.closeButtonHtml);\n\n // Custom class\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 const renderContainer = (instance, params) => {\n const container = getContainer();\n if (!container) {\n return;\n }\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow);\n\n // Custom class\n applyCustomClass(container, params, 'container');\n };\n\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\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 /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\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 /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n function handleGrowParam(container, grow) {\n if (grow && typeof grow === 'string') {\n const growClass = `grow-${grow}`;\n if (growClass in swalClasses) {\n addClass(container, swalClasses[growClass]);\n }\n }\n }\n\n /// \n\n /** @type {InputClass[]} */\n const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\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]);\n\n // set attributes\n setAttributes(inputClass, params.inputAttributes);\n\n // set class\n inputContainer.className = swalClasses[inputClass];\n if (rerender) {\n hide(inputContainer);\n }\n });\n if (params.input) {\n if (rerender) {\n showInput(params);\n }\n // set custom class\n setCustomClass(params);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n const showInput = params => {\n if (!renderInputType[params.input]) {\n error(`Unexpected type of input! Expected \"text\", \"email\", \"password\", \"number\", \"tel\", \"select\", \"radio\", \"checkbox\", \"textarea\", \"file\" or \"url\", got \"${params.input}\"`);\n return;\n }\n const inputContainer = getInputContainer(params.input);\n const input = renderInputType[params.input](inputContainer, params);\n show(inputContainer);\n\n // input autofocus\n if (params.inputAutoFocus) {\n setTimeout(() => {\n focusInput(input);\n });\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n */\n const removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n if (!['type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n const setAttributes = (inputClass, inputAttributes) => {\n const input = getInput$1(getPopup(), inputClass);\n if (!input) {\n return;\n }\n removeAttributes(input);\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n const setCustomClass = params => {\n const inputContainer = getInputContainer(params.input);\n if (typeof params.customClass === 'object') {\n addClass(inputContainer, params.customClass.input);\n }\n };\n\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n const setInputPlaceholder = (input, params) => {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\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 if (typeof params.customClass === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n\n /**\n * @param {SweetAlertOptions['input']} inputType\n * @returns {HTMLElement}\n */\n const getInputContainer = inputType => {\n return getDirectChildByClass(getPopup(), swalClasses[inputType] || swalClasses.input);\n };\n\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n const checkAndSetInputValue = (input, inputValue) => {\n if (['string', 'number'].includes(typeof inputValue)) {\n input.value = `${inputValue}`;\n } else if (!isPromise(inputValue)) {\n warn(`Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"${typeof inputValue}\"`);\n }\n };\n\n /** @type {Record Input>} */\n const renderInputType = {};\n\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\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 /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.file = (input, params) => {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\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 /**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n renderInputType.select = (select, params) => {\n select.textContent = '';\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 setInputLabel(select, select, params);\n return select;\n };\n\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n renderInputType.radio = radio => {\n radio.textContent = '';\n return radio;\n };\n\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n renderInputType.checkbox = (checkboxContainer, params) => {\n const checkbox = getInput$1(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 /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n renderInputType.textarea = (textarea, params) => {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n\n // https://github.com/sweetalert2/sweetalert2/issues/2291\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n const textareaResizeHandler = () => {\n const textareaWidth = textarea.offsetWidth + getMargin(textarea);\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = `${textareaWidth}px`;\n } else {\n getPopup().style.width = null;\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 const renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n applyCustomClass(htmlContainer, params, 'htmlContainer');\n\n // Content as HTML\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n }\n\n // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n }\n\n // No content\n else {\n hide(htmlContainer);\n }\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n const renderFooter = (instance, params) => {\n const footer = getFooter();\n toggle(footer, params.footer);\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n }\n\n // Custom class\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n const renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon();\n\n // if the given icon already rendered, apply the styling without re-rendering the icon\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(`Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"${params.icon}\"`);\n hide(icon);\n return;\n }\n show(icon);\n\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n\n // Animate icon\n addClass(icon, params.showClass.icon);\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\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 addClass(icon, iconTypes[params.icon]);\n\n // Icon color\n setColor(icon, params);\n\n // Success icon background color\n adjustSuccessIconBackgroundColor();\n\n // Custom class\n applyCustomClass(icon, params, 'icon');\n };\n\n // Adjust success icon background color to match the popup background color\n const adjustSuccessIconBackgroundColor = () => {\n const popup = getPopup();\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf} */\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n const successIconHtml = `\n
\n \n
\n
\n`;\n const errorIconHtml = `\n \n \n \n \n`;\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n const setContent = (icon, params) => {\n let oldContent = icon.innerHTML;\n let newContent;\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 if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n const setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n for (const sel of ['.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 setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);\n };\n\n /**\n * @param {string} content\n * @returns {string}\n */\n const iconContent = content => `
${content}
`;\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n const renderImage = (instance, params) => {\n const image = getImage();\n if (!params.imageUrl) {\n hide(image);\n return;\n }\n show(image, '');\n\n // Src, alt\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt);\n\n // Width, height\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight);\n\n // Class\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n const renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup();\n\n // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\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 }\n\n // Padding\n applyNumericalStyle(popup, 'padding', params.padding);\n\n // Color\n if (params.color) {\n popup.style.color = params.color;\n }\n\n // Background\n if (params.background) {\n popup.style.background = params.background;\n }\n hide(getValidationMessage());\n\n // Classes\n addClasses$1(popup, params);\n };\n\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n const addClasses$1 = (popup, params) => {\n // Default Class + showClass when updating Swal.update({})\n popup.className = `${swalClasses.popup} ${isVisible$1(popup) ? params.showClass.popup : ''}`;\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 }\n\n // Custom class\n applyCustomClass(popup, params, 'popup');\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n }\n\n // Icon class (#1842)\n if (params.icon) {\n addClass(popup, swalClasses[`icon-${params.icon}`]);\n }\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n const renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n if (!params.progressSteps || params.progressSteps.length === 0) {\n hide(progressStepsContainer);\n return;\n }\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\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 params.progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n if (index === params.currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n if (index !== params.progressSteps.length - 1) {\n const lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n\n /**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\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 /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n const createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n return lineEl;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n const renderTitle = (instance, params) => {\n const title = getTitle();\n toggle(title, params.title || params.titleText, 'block');\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n if (params.titleText) {\n title.innerText = params.titleText;\n }\n\n // Custom class\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\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 if (typeof params.didRender === 'function') {\n params.didRender(getPopup());\n }\n };\n\n /**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n function hideLoading() {\n // do nothing if popup is closed\n const innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n return;\n }\n const domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\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 const showRelatedButton = domCache => {\n const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\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 *\n * @param {SweetAlert2} instance\n * @returns {HTMLElement | null}\n */\n function getInput(instance) {\n const innerParams = privateProps.innerParams.get(instance || this);\n const domCache = privateProps.domCache.get(instance || this);\n if (!domCache) {\n return null;\n }\n return getInput$1(domCache.popup, innerParams.input);\n }\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n const isVisible = () => {\n return isVisible$1(getPopup());\n };\n\n /*\n * Global function to click 'Confirm' button\n */\n const clickConfirm = () => getConfirmButton() && getConfirmButton().click();\n\n /*\n * Global function to click 'Deny' button\n */\n const clickDeny = () => getDenyButton() && getDenyButton().click();\n\n /*\n * Global function to click 'Cancel' button\n */\n const clickCancel = () => getCancelButton() && getCancelButton().click();\n\n const DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n /**\n * @param {GlobalState} globalState\n */\n 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 /**\n * @param {SweetAlert2} instance\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => {\n removeKeydownHandler(globalState);\n if (!innerParams.toast) {\n globalState.keydownHandler = e => keydownHandler(instance, e, dismissWith);\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : 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 /**\n * @param {number} index\n * @param {number} increment\n */\n const setFocus = (index, increment) => {\n const focusableElements = getFocusableElements();\n // search for visible elements and select the next possible match\n if (focusableElements.length) {\n index = index + increment;\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0;\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n focusableElements[index].focus();\n return;\n }\n // no visible focusable elements, focus the popup\n getPopup().focus();\n };\n const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n /**\n * @param {SweetAlert2} instance\n * @param {KeyboardEvent} event\n * @param {Function} dismissWith\n */\n const keydownHandler = (instance, event, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n if (innerParams.stopKeydownPropagation) {\n event.stopPropagation();\n }\n\n // ENTER\n if (event.key === 'Enter') {\n handleEnter(instance, event, innerParams);\n }\n\n // TAB\n else if (event.key === 'Tab') {\n handleTab(event);\n }\n\n // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(event.key)) {\n handleArrows(event.key);\n }\n\n // ESC\n else if (event.key === 'Escape') {\n handleEsc(event, innerParams, dismissWith);\n }\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n */\n const handleEnter = (instance, event, innerParams) => {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n if (event.target && instance.getInput() && event.target instanceof HTMLElement && event.target.outerHTML === instance.getInput().outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n\n clickConfirm();\n event.preventDefault();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n */\n const handleTab = event => {\n const targetElement = event.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n // Cycle to the next button\n if (!event.shiftKey) {\n setFocus(btnIndex, 1);\n }\n\n // Cycle to the prev button\n else {\n setFocus(btnIndex, -1);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n\n /**\n * @param {string} key\n */\n const handleArrows = key => {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n if (document.activeElement instanceof HTMLElement && ![confirmButton, denyButton, cancelButton].includes(document.activeElement)) {\n return;\n }\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n let buttonToFocus = document.activeElement;\n for (let i = 0; i < getActions().children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n if (!buttonToFocus) {\n return;\n }\n if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {\n break;\n }\n }\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n\n /**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\n const handleEsc = (event, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n event.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n // From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n const setAriaHidden = () => {\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el === getContainer() || el.contains(getContainer())) {\n return;\n }\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));\n }\n el.setAttribute('aria-hidden', 'true');\n });\n };\n const unsetAriaHidden = () => {\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n /* istanbul ignore file */\n\n // Fix iOS scrolling http://stackoverflow.com/q/39626302\n\n const iOSfix = () => {\n const iOS =\n // @ts-ignore\n /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n if (iOS && !hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop;\n document.body.style.top = `${offset * -1}px`;\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n addBottomPaddingForTallPopups();\n }\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1948\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 if (iOSSafari) {\n const bottomPanelHeight = 44;\n if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {\n getContainer().style.paddingBottom = `${bottomPanelHeight}px`;\n }\n }\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n const lockBodyScroll = () => {\n const container = getContainer();\n let preventTouchMove;\n /**\n * @param {TouchEvent} event\n */\n container.ontouchstart = event => {\n preventTouchMove = shouldPreventTouchMove(event);\n };\n /**\n * @param {TouchEvent} event\n */\n container.ontouchmove = event => {\n if (preventTouchMove) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n };\n\n /**\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n const shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n if (target === container) {\n return true;\n }\n if (!isScrollable(container) && target instanceof HTMLElement && target.tagName !== 'INPUT' &&\n // #1603\n target.tagName !== 'TEXTAREA' &&\n // #2266\n !(isScrollable(getHtmlContainer()) &&\n // #1944\n getHtmlContainer().contains(target))) {\n return true;\n }\n return false;\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n const isStylus = event => {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n const isZoom = event => {\n return event.touches && event.touches.length > 1;\n };\n const undoIOSfix = () => {\n if (hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n const fixScrollbar = () => {\n // for queues, do not do this more than once\n if (states.previousBodyPadding !== null) {\n return;\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight) {\n // add padding so the content doesn't shift after removal of scrollbar\n states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = `${states.previousBodyPadding + measureScrollbar()}px`;\n }\n };\n const undoScrollbar = () => {\n if (states.previousBodyPadding !== null) {\n document.body.style.paddingRight = `${states.previousBodyPadding}px`;\n states.previousBodyPadding = null;\n }\n };\n\n /*\n * Instance method to close sweetAlert\n */\n\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n removeKeydownHandler(globalState);\n }\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n // workaround for #2088\n // for some reason removing the container in Safari will scroll the document to bottom\n if (isSafari) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n if (isModal()) {\n undoScrollbar();\n undoIOSfix();\n unsetAriaHidden();\n }\n removeBodyClasses();\n }\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n const didClose = triggerClosePopup(this);\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 const triggerClosePopup = instance => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n const innerParams = privateProps.innerParams.get(instance);\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\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 function rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n const handleAwaitingPromise = instance => {\n if (instance.isAwaitingPromise()) {\n privateProps.awaitingPromise.delete(instance);\n // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n 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 return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n const handlePopupAnimation = (instance, popup, innerParams) => {\n const container = getContainer();\n // If animation is supported, animate\n const animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\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 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 const triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n instance._destroy();\n });\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {string[]} buttons\n * @param {boolean} disabled\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 /**\n * @param {HTMLInputElement} input\n * @param {boolean} disabled\n */\n function setInputDisabled(input, disabled) {\n if (!input) {\n return;\n }\n if (input.type === 'radio') {\n const radiosContainer = input.parentNode.parentNode;\n const radios = radiosContainer.querySelectorAll('input');\n for (let i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n }\n 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 setInputDisabled(this.getInput(), false);\n }\n function disableInput() {\n setInputDisabled(this.getInput(), true);\n }\n\n /**\n * Show block with validation message\n *\n * @param {string} error\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 if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n show(domCache.validationMessage);\n const input = this.getInput();\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 }\n\n /**\n * Hide block with validation message\n */\n function resetValidationMessage() {\n const domCache = privateProps.domCache.get(this);\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n const input = this.getInput();\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n }\n\n const defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoFocus: true,\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 /**\n * Is valid parameter\n *\n * @param {string} paramName\n * @returns {boolean}\n */\n const isValidParameter = paramName => {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n };\n\n /**\n * Is valid parameter for Swal.update() method\n *\n * @param {string} paramName\n * @returns {boolean}\n */\n const isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n };\n\n /**\n * Is deprecated parameter\n *\n * @param {string} paramName\n * @returns {string | undefined}\n */\n const isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n };\n\n /**\n * @param {string} param\n */\n const checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(`Unknown parameter \"${param}\"`);\n }\n };\n\n /**\n * @param {string} param\n */\n const checkIfToastParamIsValid = param => {\n if (toastIncompatibleParams.includes(param)) {\n warn(`The parameter \"${param}\" is incompatible with toasts`);\n }\n };\n\n /**\n * @param {string} param\n */\n const checkIfParamIsDeprecated = param => {\n if (isDeprecatedParameter(param)) {\n warnAboutDeprecation(param, isDeprecatedParameter(param));\n }\n };\n\n /**\n * Show relevant warnings for given params\n *\n * @param {SweetAlertOptions} params\n */\n const showWarningsForParams = params => {\n if (params.backdrop === false && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n for (const param in params) {\n checkIfParamIsValid(param);\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n checkIfParamIsDeprecated(param);\n }\n };\n\n /**\n * Updates popup parameters.\n *\n * @param {SweetAlertOptions} params\n */\n function update(params) {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(this);\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n 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 return;\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 /**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\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: ${param}`);\n }\n });\n return validUpdatableParams;\n };\n\n /**\n * Dispose the current SweetAlert2 instance\n */\n function _destroy() {\n const domCache = privateProps.domCache.get(this);\n const innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n return; // This instance has already been destroyed\n }\n\n // Check if there is another Swal closing\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n disposeSwal(this);\n }\n\n /**\n * @param {SweetAlert2} instance\n */\n const disposeSwal = instance => {\n disposeWeakMaps(instance);\n // Unset this.params so GC will dispose it (#1569)\n // @ts-ignore\n delete instance.params;\n // Unset globalState props so GC will dispose globalState (#1569)\n delete globalState.keydownHandler;\n delete globalState.keydownTarget;\n // Unset currentInstance\n delete globalState.currentInstance;\n };\n\n /**\n * @param {SweetAlert2} instance\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 /**\n * @param {object} obj\n * @param {SweetAlert2} instance\n */\n const unsetWeakMaps = (obj, instance) => {\n for (const i in obj) {\n obj[i].delete(instance);\n }\n };\n\n var instanceMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hideLoading: hideLoading,\n disableLoading: hideLoading,\n getInput: getInput,\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,\n update: update,\n _destroy: _destroy\n });\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n */\n const showLoading = buttonToReplace => {\n let popup = getPopup();\n if (!popup) {\n new Swal(); // eslint-disable-line no-new\n }\n\n popup = getPopup();\n const loader = getLoader();\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n const replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n if (!buttonToReplace && isVisible$1(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n show(actions);\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n }\n loader.parentNode.insertBefore(loader, buttonToReplace);\n addClass([popup, actions], swalClasses.loading);\n };\n\n /**\n * @typedef { string | number | boolean } InputValue\n */\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\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\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} innerParams\n * @returns {string | number | File | FileList | null}\n */\n const getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n if (!input) {\n return null;\n }\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n case 'radio':\n return getRadioValue(input);\n case 'file':\n return getFileValue(input);\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n /**\n * @param {HTMLInputElement} input\n * @returns {number}\n */\n const getCheckboxValue = input => input.checked ? 1 : 0;\n\n /**\n * @param {HTMLInputElement} input\n * @returns {string | null}\n */\n const getRadioValue = input => input.checked ? input.value : null;\n\n /**\n * @param {HTMLInputElement} input\n * @returns {FileList | File | null}\n */\n const getFileValue = input => input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n const handleInputOptions = (instance, params) => {\n const popup = getPopup();\n /**\n * @param {Record} inputOptions\n */\n const processInputOptions = inputOptions => {\n 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 ${typeof params.inputOptions}`);\n }\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\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}` : `${inputValue}`;\n show(input);\n input.focus();\n instance.hideLoading();\n }).catch(err => {\n error(`Error in inputValue promise: ${err}`);\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n const populateInputOptions = {\n /**\n * @param {HTMLElement} popup\n * @param {Record} inputOptions\n * @param {SweetAlertOptions} params\n */\n select: (popup, inputOptions, params) => {\n const select = getDirectChildByClass(popup, swalClasses.select);\n /**\n * @param {HTMLElement} parent\n * @param {string} optionLabel\n * @param {string} optionValue\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 inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1];\n // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n const optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n select.appendChild(optgroup);\n optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n } else {\n // case of