{"version":3,"sources":["webpack:///./src/components/DeleteButton.vue","webpack:///./src/components/DeleteButton.vue?44f1","webpack:///./node_modules/infinite-loading-vue3/dist/infinite-scroll-vue3.esm.js","webpack:///./src/components/BtnLoading.vue","webpack:///./src/components/BtnLoading.vue?98ef","webpack:///./src/assets/img/icons/no_data.svg"],"names":["type","class","deleteProductosGrupos","disabled","loadingTrash","text","icon","faTrash","props","components","FontAwesomeIcon","BtnLoading","data","methods","vm","this","$","confirm","title","content","theme","buttons","Confirmar","$store","dispatch","url","id","codigo","then","response","$toast","info","catch","error","console","log","Cancelar","__exports__","render","infiniteScroll","noResult","emit","scrollRef","loading","handleScroll","element","value","getBoundingClientRect","bottom","window","innerHeight","consolePrefix","uniqueArray","arr","result","i","length","indexOf","push","capitalizeFirstLetter","str","charAt","toUpperCase","slice","objectValues","obj","Object","keys","map","key","toArray","nodeList","Array","prototype","call","warn","message","join","previousWarnOnceMessages","warnOnce","includes","warnAboutDeprecation","deprecatedParam","useInstead","callIfFunction","arg","hasToPromiseFn","toPromise","asPromise","Promise","resolve","isPromise","DismissReason","freeze","cancel","backdrop","close","esc","timer","isJqueryElement","elem","jquery","isElement","Element","argsToParams","args","params","forEach","name","index","undefined","assign","swalPrefix","prefix","items","swalClasses","iconTypes","getContainer","document","body","querySelector","container","elementBySelector","selectorString","elementByClass","className","getPopup","popup","getIcon","getTitle","getContent","getHtmlContainer","getImage","image","getProgressSteps$1","getValidationMessage","getConfirmButton","actions","getDenyButton","deny","getInputLabel","getLoader","loader","getCancelButton","getActions","getHeader","header","getFooter","footer","getTimerProgressBar","getCloseButton","focusable","getFocusableElements","focusableElementsWithTabindex","querySelectorAll","sort","a","b","parseInt","getAttribute","otherFocusableElements","filter","el","concat","isVisible$1","isModal","isToast","classList","contains","isLoading","hasAttribute","states","previousBodyPadding","setInnerHtml","html","textContent","parser","DOMParser","parsed","parseFromString","childNodes","child","appendChild","hasClass","split","removeCustomClasses","showClass","remove","applyCustomClass","customClass","addClass","getInput$1","inputType","getChildByClass","checkbox","radio","range","input","focusInput","focus","val","toggleClass","target","condition","Boolean","add","removeClass","applyNumericalStyle","property","style","removeProperty","show","display","hide","setStyle","parent","selector","toggle","offsetWidth","offsetHeight","getClientRects","allButtonsAreHidden","isScrollable","scrollHeight","clientHeight","hasCssAnimation","getComputedStyle","animDuration","parseFloat","getPropertyValue","transDuration","haystack","needle","animateTimerProgressBar","reset","timerProgressBar","transition","width","setTimeout","stopTimerProgressBar","timerProgressBarWidth","timerProgressBarFullWidth","timerProgressBarPercent","isNodeEnv","sweetHTML","file","select","label","textarea","replace","resetOldContainer","oldContainer","parentNode","removeChild","documentElement","oldInputVal","resetValidationMessage$1","e","Swal","isVisible","resetValidationMessage","addInputChangeListeners","rangeOutput","oninput","onchange","nextSibling","getTarget","setupAccessibility","setAttribute","toast","setupRTL","targetElement","direction","rtl","init","oldContainerExisted","createElement","parseHtmlToContainer","param","HTMLElement","handleObject","handleJqueryElem","toString","cloneNode","animationEndEvent","testEl","transEndEventNames","WebkitAnimation","OAnimation","animation","hasOwnProperty","measureScrollbar","scrollDiv","scrollbarWidth","clientWidth","renderActions","instance","confirmButton","denyButton","cancelButton","showConfirmButton","showDenyButton","showCancelButton","renderButton","handleButtonsStyling","reverseButtons","insertBefore","loaderHtml","buttonsStyling","styled","confirmButtonColor","backgroundColor","denyButtonColor","cancelButtonColor","button","buttonType","handleBackdropParam","background","handlePositionParam","position","center","handleGrowParam","grow","growClass","renderContainer","allowOutsideClick","queueStep","removeAttribute","privateProps","promise","WeakMap","innerParams","domCache","inputTypes","renderInput","get","rerender","inputClass","inputContainer","setAttributes","inputAttributes","showInput","setCustomClass","renderInputType","getInputContainer","removeAttributes","attributes","attrName","attr","setInputPlaceholder","placeholder","inputPlaceholder","setInputLabel","prependTo","inputLabel","labelClass","innerText","insertAdjacentElement","email","password","number","tel","inputValue","rangeInput","selected","checkboxContainer","checked","getPadding","paddingLeft","paddingRight","initialPopupWidth","outputsize","contentWidth","MutationObserver","observe","attributeFilter","renderContent","htmlContainer","renderFooter","renderCloseButton","closeButton","closeButtonHtml","showCloseButton","closeButtonAriaLabel","renderIcon","setContent","applyStyles","iconHtml","iconType","setColor","adjustSuccessIconBackgoundColor","popupBackgroundColor","successIconParts","iconContent","defaultIconHtml","question","warning","iconColor","color","borderColor","sel","renderImage","imageUrl","imageAlt","imageWidth","imageHeight","currentSteps","queue","steps","resetAndResolve","queueResult","step","callback","fire","dismiss","getQueueStep","insertQueueStep","splice","deleteQueueStep","createStepElement","stepEl","createLineElement","lineEl","progressStepsDistance","renderProgressSteps","progressStepsContainer","progressSteps","currentProgressStep","renderTitle","titleText","renderHeader","renderPopup","padding","addClasses$1","modal","render$1","didRender","onRender","clickConfirm","click","clickDeny","clickCancel","mixin","mixinParams","MixinSwal","priorityMixinParams","super","_main","showLoading","buttonToReplace","RESTORE_FOCUS_TIMEOUT","globalState","focusPreviousActiveElement","previousActiveElement","restoreActiveElement","x","scrollX","y","scrollY","restoreFocusTimeout","scrollTo","getTimerLeft","timeout","stopTimer","stop","resumeTimer","remaining","start","toggleTimer","running","increaseTimer","n","increase","isTimerRunning","isRunning","bodyClickListenerAdded","clickHandlers","bindClickHandler","addEventListener","bodyClickListener","event","template","defaultParams","hideClass","heightAuto","allowEscapeKey","allowEnterKey","stopKeydownPropagation","keydownListenerCapture","preConfirm","preDeny","confirmButtonText","confirmButtonAriaLabel","denyButtonText","denyButtonAriaLabel","cancelButtonText","cancelButtonAriaLabel","focusConfirm","focusDeny","focusCancel","showLoaderOnConfirm","showLoaderOnDeny","inputOptions","inputAutoTrim","inputValidator","returnInputValueOnDeny","validationMessage","onBeforeOpen","onOpen","willOpen","didOpen","onClose","onAfterClose","willClose","didClose","onDestroy","didDestroy","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","showWarningsForParams","staticMethods","__proto__","enableLoading","hideLoading","getElementsByClassName","getInput","fixScrollbar","undoScrollbar","iOSfix","iOS","test","navigator","userAgent","MSStream","platform","maxTouchPoints","iosfix","offset","scrollTop","top","lockBodyScroll","addBottomPaddingForTallPopups","safari","match","bottomPanelHeight","paddingBottom","preventTouchMove","ontouchstart","shouldPreventTouchMove","ontouchmove","preventDefault","stopPropagation","isStylys","isZoom","tagName","touches","touchType","undoIOSfix","isIE11","MSInputMethodContext","documentMode","fixVerticalPositionIE","offsetTop","alignItems","IEfix","undoIEfix","removeEventListener","setAriaHidden","bodyChildren","children","unsetAriaHidden","privateMethods","swalPromiseResolve","removePopupAndResetState","triggerDidCloseAndDispose","keydownTarget","keydownHandler","capture","keydownHandlerAdded","removeBodyClasses","shown","resolveValue","prepareResolveValue","handlePopupAnimation","isConfirmed","isDenied","isDismissed","animationIsSupported","runDidClose","animatePopup","swalCloseEventFinishedCallback","bind","_destroy","setButtonsDisabled","setInputDisabled","radiosContainer","radios","enableButtons","disableButtons","enableInput","disableInput","showValidationMessage","inputerror","getProgressSteps","Timer","delay","started","Date","clearTimeout","defaultInputValidators","string","setDefaultInputValidators","validateCustomTargetElement","setParameters","swalStringParams","getTemplateParams","templateContent","showWarningsForElements","getSwalParams","getSwalButtons","getSwalImage","getSwalIcon","getSwalInput","getSwalStringParams","showWarningsForAttributes","JSON","parse","innerHTML","option","optionValue","optionName","paramNames","tag","allowedElements","toLowerCase","allowedAttributes","attribute","SHOW_CLASS_TIMEOUT","openPopup","bodyStyles","initialBodyOverflow","overflowY","addClasses","setScrollingVisibility","fixScrollContainer","activeElement","runDidOpen","swalOpenAnimationFinished","setProperty","handleInputOptionsAndValue","handleInputOptions","handleInputValue","getInputValue","getCheckboxValue","getRadioValue","getFileValue","trim","files","processInputOptions","populateInputOptions","formatInputOptions","err","renderOption","optionLabel","isSelected","inputOption","isArray","optgroup","o","radioValue","radioLabel","radioInput","radioLabelElement","Map","valueFormatted","handleConfirmButtonClick","handleConfirmOrDenyWithInput","handleDenyButtonClick","handleCancelButtonClick","dismissWith","handleInputValidator","checkValidity","validationPromise","preDenyPromise","preDenyValue","closePopup","succeedWith","preConfirmPromise","preConfirmValue","addKeydownHandler","setFocus","increment","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","escKeys","handleEnter","handleTab","handleArrows","handleEsc","isComposing","outerHTML","btnIndex","shiftKey","sibling","buttonToFocus","handlePopupClick","handleToastClick","handleModalMousedown","handleContainerMousedown","handleModalClick","onclick","ignoreOutsideClick","onmousedown","onmouseup","userParams","currentInstance","prepareParams","populateDomCache","set","swalPromise","templateParams","setupTimer","initFocus","focusButton","blurActiveElement","blur","update","validUpdatableParams","updatedParams","defineProperties","writable","enumerable","deferDisposalTimer","runDidDestroy","disposeSwal","unsetWeakMaps","instanceMethods","disableLoading","closeModal","closeToast","SweetAlert","outerParams","constructor","configurable","onFulfilled","onFinally","finally","version","errorHandler","noResultErrMsg","newValue","default","script","String","_withId","_hoisted_1","ref","_hoisted_2","_hoisted_3","_ctx","_cache","$props","$setup","$data","$options","$slots","styleInject","css","insertAt","head","getElementsByTagName","firstChild","styleSheet","cssText","createTextNode","css_248z","__scopeId","entry_esm","installable","install","app","component","role","aria-hidden","textDF","computed","module","exports"],"mappings":"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","file":"js/chunk-de0c913e.edd60a9c.js","sourcesContent":["\r\n","import { render } from \"./DeleteButton.vue?vue&type=template&id=122ed509\"\nimport script from \"./DeleteButton.vue?vue&type=script&lang=js\"\nexport * from \"./DeleteButton.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\soluciones\\\\mesa-regalo\\\\web-2\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { ref, watch, toRefs, onMounted, onUnmounted, pushScopeId, popScopeId, openBlock, createBlock, renderSlot, createCommentVNode, withScopeId, createVNode } from 'vue';\n\nfunction infiniteScroll(noResult, emit) {\n const scrollRef = ref(null);\n let loading = ref(false);\n\n const handleScroll = () => {\n let element = scrollRef.value;\n\n if (element.getBoundingClientRect().bottom < window.innerHeight) {\n emit('infinite-scroll');\n\n if (noResult.value) {\n loading.value = false;\n } else {\n loading.value = true;\n }\n }\n };\n\n return {\n handleScroll,\n scrollRef,\n loading\n };\n}\n\nconst consolePrefix = 'SweetAlert2:';\n/**\n * Filter the unique values into a new array\n * @param arr\n */\n\nconst 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 str\n */\n\nconst capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n/**\n * Returns the array of object values (Object.values isn't supported in IE11)\n * @param obj\n */\n\nconst objectValues = obj => Object.keys(obj).map(key => obj[key]);\n/**\n * Convert NodeList to Array\n * @param nodeList\n */\n\nconst toArray = nodeList => Array.prototype.slice.call(nodeList);\n/**\n * Standardise console warnings\n * @param message\n */\n\nconst warn = message => {\n console.warn(`${consolePrefix} ${typeof message === 'object' ? message.join(' ') : message}`);\n};\n/**\n * Standardise console errors\n * @param message\n */\n\nconst error = message => {\n console.error(`${consolePrefix} ${message}`);\n};\n/**\n * Private global state for `warnOnce`\n * @type {Array}\n * @private\n */\n\nconst previousWarnOnceMessages = [];\n/**\n * Show a console warning, but only if it hasn't already been shown\n * @param message\n */\n\nconst 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\nconst warnAboutDeprecation = (deprecatedParam, useInstead) => {\n warnOnce(`\"${deprecatedParam}\" is deprecated and will be removed in the next major release. Please use \"${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\nconst callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\nconst hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\nconst asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\nconst isPromise = arg => arg && Promise.resolve(arg) === arg;\n\nconst DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n});\n\nconst isJqueryElement = elem => typeof elem === 'object' && elem.jquery;\n\nconst isElement = elem => elem instanceof Element || isJqueryElement(elem);\n\nconst 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 ${name}! Expected \"string\" or \"Element\", got ${typeof arg}`);\n }\n });\n }\n\n return params;\n};\n\nconst swalPrefix = 'swal2-';\nconst 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};\nconst swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'toast-column', 'show', 'hide', 'close', 'title', 'header', 'content', 'html-container', 'actions', 'confirm', 'deny', 'cancel', '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']);\nconst iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);\n\nconst getContainer = () => document.body.querySelector(`.${swalClasses.container}`);\nconst elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n};\n\nconst elementByClass = className => {\n return elementBySelector(`.${className}`);\n};\n\nconst getPopup = () => elementByClass(swalClasses.popup);\nconst getIcon = () => elementByClass(swalClasses.icon);\nconst getTitle = () => elementByClass(swalClasses.title);\nconst getContent = () => elementByClass(swalClasses.content);\nconst getHtmlContainer = () => elementByClass(swalClasses['html-container']);\nconst getImage = () => elementByClass(swalClasses.image);\nconst getProgressSteps$1 = () => elementByClass(swalClasses['progress-steps']);\nconst getValidationMessage = () => elementByClass(swalClasses['validation-message']);\nconst getConfirmButton = () => elementBySelector(`.${swalClasses.actions} .${swalClasses.confirm}`);\nconst getDenyButton = () => elementBySelector(`.${swalClasses.actions} .${swalClasses.deny}`);\nconst getInputLabel = () => elementByClass(swalClasses['input-label']);\nconst getLoader = () => elementBySelector(`.${swalClasses.loader}`);\nconst getCancelButton = () => elementBySelector(`.${swalClasses.actions} .${swalClasses.cancel}`);\nconst getActions = () => elementByClass(swalClasses.actions);\nconst getHeader = () => elementByClass(swalClasses.header);\nconst getFooter = () => elementByClass(swalClasses.footer);\nconst getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\nconst getCloseButton = () => elementByClass(swalClasses.close); // https://github.com/jkup/focusable/blob/master/index.js\n\nconst focusable = `\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n`;\nconst getFocusableElements = () => {\n const focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])')) // sort according to tabindex\n .sort((a, b) => {\n a = parseInt(a.getAttribute('tabindex'));\n b = parseInt(b.getAttribute('tabindex'));\n\n if (a > b) {\n return 1;\n } else if (a < b) {\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$1(el));\n};\nconst isModal = () => {\n return !isToast() && !document.body.classList.contains(swalClasses['no-backdrop']);\n};\nconst isToast = () => {\n return document.body.classList.contains(swalClasses['toast-shown']);\n};\nconst isLoading = () => {\n return getPopup().hasAttribute('data-loading');\n};\n\nconst states = {\n previousBodyPadding: null\n};\nconst setInnerHtml = (elem, html) => {\n // #1926\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};\nconst 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\nconst removeCustomClasses = (elem, params) => {\n toArray(elem.classList).forEach(className => {\n if (!objectValues(swalClasses).includes(className) && !objectValues(iconTypes).includes(className) && !objectValues(params.showClass).includes(className)) {\n elem.classList.remove(className);\n }\n });\n};\n\nconst 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.${className}! Expected string or iterable object, got \"${typeof params.customClass[className]}\"`);\n }\n\n addClass(elem, params.customClass[className]);\n }\n};\nfunction getInput$1(content, inputType) {\n if (!inputType) {\n return null;\n }\n\n switch (inputType) {\n case 'select':\n case 'textarea':\n case 'file':\n return getChildByClass(content, swalClasses[inputType]);\n\n case 'checkbox':\n return content.querySelector(`.${swalClasses.checkbox} input`);\n\n case 'radio':\n return content.querySelector(`.${swalClasses.radio} input:checked`) || content.querySelector(`.${swalClasses.radio} input:first-child`);\n\n case 'range':\n return content.querySelector(`.${swalClasses.range} input`);\n\n default:\n return getChildByClass(content, swalClasses.input);\n }\n}\nconst 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};\nconst 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 (target.forEach) {\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};\nconst addClass = (target, classList) => {\n toggleClass(target, classList, true);\n};\nconst removeClass = (target, classList) => {\n toggleClass(target, classList, false);\n};\nconst getChildByClass = (elem, className) => {\n for (let i = 0; i < elem.childNodes.length; i++) {\n if (hasClass(elem.childNodes[i], className)) {\n return elem.childNodes[i];\n }\n }\n};\nconst applyNumericalStyle = (elem, property, value) => {\n if (value === `${parseInt(value)}`) {\n value = parseInt(value);\n }\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};\nconst show = (elem, display = 'flex') => {\n elem.style.display = display;\n};\nconst hide = elem => {\n elem.style.display = 'none';\n};\nconst setStyle = (parent, selector, property, value) => {\n const el = parent.querySelector(selector);\n\n if (el) {\n el.style[property] = value;\n }\n};\nconst toggle = (elem, condition, display) => {\n condition ? show(elem, display) : hide(elem);\n}; // borrowed from jquery $(elem).is(':visible') implementation\n\nconst isVisible$1 = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\nconst allButtonsAreHidden = () => !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\nconst isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight); // borrowed from https://stackoverflow.com/a/46352119\n\nconst 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};\nconst contains = (haystack, needle) => {\n if (typeof haystack.contains === 'function') {\n return haystack.contains(needle);\n }\n};\nconst animateTimerProgressBar = (timer, reset = false) => {\n const timerProgressBar = getTimerProgressBar();\n\n if (isVisible$1(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n\n setTimeout(() => {\n timerProgressBar.style.transition = `width ${timer / 1000}s linear`;\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n};\nconst 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 = parseInt(timerProgressBarWidth / timerProgressBarFullWidth * 100);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = `${timerProgressBarPercent}%`;\n};\n\n// Detect Node env\nconst isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\nconst sweetHTML = `\n
\n
\n \n
\n \n

\n \n
\n
\n
\n \n \n
\n \n \n
\n \n
\n \n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n`.replace(/(^|\\n)\\s*/g, '');\n\nconst resetOldContainer = () => {\n const oldContainer = getContainer();\n\n if (!oldContainer) {\n return false;\n }\n\n oldContainer.parentNode.removeChild(oldContainer);\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n};\n\nlet oldInputVal; // IE11 workaround, see #1109 for details\n\nconst resetValidationMessage$1 = e => {\n if (Swal.isVisible() && oldInputVal !== e.target.value) {\n Swal.resetValidationMessage();\n }\n\n oldInputVal = e.target.value;\n};\n\nconst addInputChangeListeners = () => {\n const content = getContent();\n const input = getChildByClass(content, swalClasses.input);\n const file = getChildByClass(content, swalClasses.file);\n const range = content.querySelector(`.${swalClasses.range} input`);\n const rangeOutput = content.querySelector(`.${swalClasses.range} output`);\n const select = getChildByClass(content, swalClasses.select);\n const checkbox = content.querySelector(`.${swalClasses.checkbox} input`);\n const textarea = getChildByClass(content, 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\n range.oninput = e => {\n resetValidationMessage$1(e);\n rangeOutput.value = range.value;\n };\n\n range.onchange = e => {\n resetValidationMessage$1(e);\n range.nextSibling.value = range.value;\n };\n};\n\nconst getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n\nconst setupAccessibility = params => {\n const popup = getPopup();\n 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\nconst setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n};\n/*\n * Add modal + backdrop to DOM\n */\n\n\nconst init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n /* istanbul ignore if */\n\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n\n const container = document.createElement('div');\n container.className = swalClasses.container;\n\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n\n setInnerHtml(container, sweetHTML);\n const targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n};\n\nconst parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param); // Object\n } else if (typeof param === 'object') {\n handleObject(param, target); // Plain string\n } else if (param) {\n setInnerHtml(target, param);\n }\n};\n\nconst handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param); // For other objects use their string representation\n } else {\n setInnerHtml(target, param.toString());\n }\n};\n\nconst handleJqueryElem = (target, elem) => {\n target.textContent = '';\n\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\nconst 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 OAnimation: 'oAnimationEnd oanimationend',\n animation: 'animationend'\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// https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n\nconst 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\nconst renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader();\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton(); // Actions (buttons) wrapper\n\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } // Custom class\n\n\n applyCustomClass(actions, params, 'actions'); // 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 actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n } // Loader\n\n\n setInnerHtml(loader, params.loaderHtml);\n applyCustomClass(loader, params, 'loader');\n};\n\nfunction 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 }\n\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n }\n\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n }\n}\n\nfunction renderButton(button, buttonType, params) {\n toggle(button, params[`show${capitalizeFirstLetter(buttonType)}Button`], 'inline-block');\n setInnerHtml(button, params[`${buttonType}ButtonText`]); // Set caption text\n\n button.setAttribute('aria-label', params[`${buttonType}ButtonAriaLabel`]); // ARIA label\n // Add buttons custom classes\n\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, `${buttonType}Button`);\n addClass(button, params[`${buttonType}ButtonClass`]);\n}\n\nfunction 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\nfunction 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\nfunction handleGrowParam(container, grow) {\n if (grow && typeof grow === 'string') {\n const growClass = `grow-${grow}`;\n\n if (growClass in swalClasses) {\n addClass(container, swalClasses[growClass]);\n }\n }\n}\n\nconst renderContainer = (instance, params) => {\n const container = getContainer();\n\n if (!container) {\n return;\n }\n\n handleBackdropParam(container, params.backdrop);\n\n if (!params.backdrop && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow); // Custom class\n\n applyCustomClass(container, params, 'container'); // Set queue step attribute for getQueueStep() method\n\n const queueStep = document.body.getAttribute('data-swal2-queue-step');\n\n if (queueStep) {\n container.setAttribute('data-queue-step', queueStep);\n document.body.removeAttribute('data-swal2-queue-step');\n }\n};\n\n/**\n * This module containts `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 */\nvar privateProps = {\n promise: new WeakMap(),\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n};\n\nconst inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\nconst renderInput = (instance, params) => {\n const content = getContent();\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputTypes.forEach(inputType => {\n const inputClass = swalClasses[inputType];\n const inputContainer = getChildByClass(content, inputClass); // set attributes\n\n setAttributes(inputType, params.inputAttributes); // set class\n\n inputContainer.className = 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\nconst 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 \"${params.input}\"`);\n }\n\n const inputContainer = getInputContainer(params.input);\n const input = renderInputType[params.input](inputContainer, params);\n show(input); // input autofocus\n\n setTimeout(() => {\n focusInput(input);\n });\n};\n\nconst 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\nconst setAttributes = (inputType, inputAttributes) => {\n const input = getInput$1(getContent(), inputType);\n\n if (!input) {\n return;\n }\n\n removeAttributes(input);\n\n for (const attr in inputAttributes) {\n // Do not set a placeholder for \n // it'll crash Edge, #1298\n if (inputType === 'range' && attr === 'placeholder') {\n continue;\n }\n\n input.setAttribute(attr, inputAttributes[attr]);\n }\n};\n\nconst setCustomClass = params => {\n const inputContainer = getInputContainer(params.input);\n\n if (params.customClass) {\n addClass(inputContainer, params.customClass.input);\n }\n};\n\nconst setInputPlaceholder = (input, params) => {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n};\n\nconst setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n input.id = swalClasses.input;\n const label = document.createElement('label');\n const labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n addClass(label, params.customClass.inputLabel);\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n};\n\nconst getInputContainer = inputType => {\n const inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input;\n return getChildByClass(getContent(), inputClass);\n};\n\nconst renderInputType = {};\n\nrenderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => {\n if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') {\n input.value = params.inputValue;\n } else if (!isPromise(params.inputValue)) {\n warn(`Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"${typeof params.inputValue}\"`);\n }\n\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n};\n\nrenderInputType.file = (input, params) => {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n};\n\nrenderInputType.range = (range, params) => {\n const rangeInput = range.querySelector('input');\n const rangeOutput = range.querySelector('output');\n rangeInput.value = params.inputValue;\n rangeInput.type = params.input;\n rangeOutput.value = params.inputValue;\n setInputLabel(rangeInput, range, params);\n return range;\n};\n\nrenderInputType.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\nrenderInputType.radio = radio => {\n radio.textContent = '';\n return radio;\n};\n\nrenderInputType.checkbox = (checkboxContainer, params) => {\n const checkbox = getInput$1(getContent(), '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 checkboxContainer;\n};\n\nrenderInputType.textarea = (textarea, params) => {\n textarea.value = params.inputValue;\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n const getPadding = el => parseInt(window.getComputedStyle(el).paddingLeft) + parseInt(window.getComputedStyle(el).paddingRight);\n\n if ('MutationObserver' in window) {\n // #1699\n const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n\n const outputsize = () => {\n const contentWidth = textarea.offsetWidth + getPadding(getPopup()) + getPadding(getContent());\n\n if (contentWidth > initialPopupWidth) {\n getPopup().style.width = `${contentWidth}px`;\n } else {\n getPopup().style.width = null;\n }\n };\n\n new MutationObserver(outputsize).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n\n return textarea;\n};\n\nconst 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'); // Content as plain text\n } else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block'); // No content\n } else {\n hide(htmlContainer);\n }\n\n renderInput(instance, params); // Custom class\n\n applyCustomClass(getContent(), params, 'content');\n};\n\nconst 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\nconst 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\nconst 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 return hide(icon);\n }\n\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(`Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"${params.icon}\"`);\n return hide(icon);\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\nconst 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 adjustSuccessIconBackgoundColor(); // Custom class\n\n applyCustomClass(icon, params, 'icon');\n}; // Adjust success icon background color to match the popup background color\n\n\nconst adjustSuccessIconBackgoundColor = () => {\n const popup = getPopup();\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\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\nconst setContent = (icon, params) => {\n icon.textContent = '';\n\n if (params.iconHtml) {\n setInnerHtml(icon, iconContent(params.iconHtml));\n } else if (params.icon === 'success') {\n setInnerHtml(icon, `\n
\n \n
\n
\n `);\n } else if (params.icon === 'error') {\n setInnerHtml(icon, `\n \n \n \n \n `);\n } else {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n setInnerHtml(icon, iconContent(defaultIconHtml[params.icon]));\n }\n};\n\nconst 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\nconst iconContent = content => `
${content}
`;\n\nconst 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\nlet currentSteps = [];\n/*\n * Global function for chaining sweetAlert popups\n */\n\nconst queue = function (steps) {\n const Swal = this;\n currentSteps = steps;\n\n const resetAndResolve = (resolve, value) => {\n currentSteps = [];\n resolve(value);\n };\n\n const queueResult = [];\n return new Promise(resolve => {\n (function step(i, callback) {\n if (i < currentSteps.length) {\n document.body.setAttribute('data-swal2-queue-step', i);\n Swal.fire(currentSteps[i]).then(result => {\n if (typeof result.value !== 'undefined') {\n queueResult.push(result.value);\n step(i + 1);\n } else {\n resetAndResolve(resolve, {\n dismiss: result.dismiss\n });\n }\n });\n } else {\n resetAndResolve(resolve, {\n value: queueResult\n });\n }\n })(0);\n });\n};\n/*\n * Global function for getting the index of current popup in queue\n */\n\nconst getQueueStep = () => getContainer() && getContainer().getAttribute('data-queue-step');\n/*\n * Global function for inserting a popup to the queue\n */\n\nconst insertQueueStep = (step, index) => {\n if (index && index < currentSteps.length) {\n return currentSteps.splice(index, 0, step);\n }\n\n return currentSteps.push(step);\n};\n/*\n * Global function for deleting a popup from the queue\n */\n\nconst deleteQueueStep = index => {\n if (typeof currentSteps[index] !== 'undefined') {\n currentSteps.splice(index, 1);\n }\n};\n\nconst createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n};\n\nconst createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n\n if (params.progressStepsDistance) {\n lineEl.style.width = params.progressStepsDistance;\n }\n\n return lineEl;\n};\n\nconst renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps$1();\n\n if (!params.progressSteps || params.progressSteps.length === 0) {\n return hide(progressStepsContainer);\n }\n\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n const currentProgressStep = parseInt(params.currentProgressStep === undefined ? getQueueStep() : params.currentProgressStep);\n\n if (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 === 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\nconst renderTitle = (instance, params) => {\n const title = getTitle();\n toggle(title, params.title || params.titleText);\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\nconst renderHeader = (instance, params) => {\n const header = getHeader(); // Custom class\n\n applyCustomClass(header, params, 'header'); // Progress steps\n\n renderProgressSteps(instance, params); // Icon\n\n renderIcon(instance, params); // Image\n\n renderImage(instance, params); // Title\n\n renderTitle(instance, params); // Close button\n\n renderCloseButton(instance, params);\n};\n\nconst renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup(); // Width\n\n if (params.toast) {\n // #2170\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n } // Padding\n\n\n applyNumericalStyle(popup, 'padding', params.padding); // Background\n\n if (params.background) {\n popup.style.background = params.background;\n }\n\n hide(getValidationMessage()); // Classes\n\n addClasses$1(popup, params);\n};\n\nconst addClasses$1 = (popup, params) => {\n // Default Class + showClass when updating Swal.update({})\n popup.className = `${swalClasses.popup} ${isVisible$1(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-${params.icon}`]);\n }\n};\n\nconst render$1 = (instance, params) => {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderHeader(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 } else if (typeof params.onRender === 'function') {\n params.onRender(getPopup()); // @deprecated\n }\n};\n\n/*\n * Global function to determine if SweetAlert2 popup is shown\n */\n\nconst isVisible = () => {\n return isVisible$1(getPopup());\n};\n/*\n * Global function to click 'Confirm' button\n */\n\nconst clickConfirm = () => getConfirmButton() && getConfirmButton().click();\n/*\n * Global function to click 'Deny' button\n */\n\nconst clickDeny = () => getDenyButton() && getDenyButton().click();\n/*\n * Global function to click 'Cancel' button\n */\n\nconst clickCancel = () => getCancelButton() && getCancelButton().click();\n\nfunction fire(...args) {\n const Swal = this;\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 */\nfunction 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 * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n */\n\nconst showLoading = buttonToReplace => {\n let popup = getPopup();\n\n if (!popup) {\n Swal.fire();\n }\n\n popup = getPopup();\n const actions = getActions();\n const loader = getLoader();\n\n if (!buttonToReplace && isVisible$1(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 show(loader);\n popup.setAttribute('data-loading', true);\n popup.setAttribute('aria-busy', true);\n popup.focus();\n};\n\nconst RESTORE_FOCUS_TIMEOUT = 100;\n\nconst globalState = {};\n\nconst focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement && globalState.previousActiveElement.focus) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n}; // Restore previous active (focused) element\n\n\nconst restoreActiveElement = () => {\n return new Promise(resolve => {\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 /* istanbul ignore if */\n\n if (typeof x !== 'undefined' && typeof y !== 'undefined') {\n // IE doesn't have scrollX/scrollY support\n window.scrollTo(x, y);\n }\n });\n};\n\n/**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n */\n\nconst 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\nconst 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\nconst 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\nconst 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\nconst 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\nconst isTimerRunning = () => {\n return globalState.timeout && globalState.timeout.isRunning();\n};\n\nlet bodyClickListenerAdded = false;\nconst clickHandlers = {};\nfunction bindClickHandler(attr = 'data-swal-template') {\n clickHandlers[attr] = this;\n\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n}\n\nconst bodyClickListener = event => {\n // 1. using .parentNode instead of event.path because of better support by old browsers https://stackoverflow.com/a/39245638\n // 2. using .parentNode instead of .parentElement because of IE11 + SVG https://stackoverflow.com/a/36270354\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\nconst 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 animation: true,\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 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 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 onBeforeOpen: undefined,\n onOpen: undefined,\n willOpen: undefined,\n didOpen: undefined,\n onRender: undefined,\n didRender: undefined,\n onClose: undefined,\n onAfterClose: undefined,\n willClose: undefined,\n didClose: undefined,\n onDestroy: undefined,\n didDestroy: undefined,\n scrollbarPadding: true\n};\nconst updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'onAfterClose', 'onClose', 'onDestroy', 'progressSteps', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\nconst deprecatedParams = {\n animation: 'showClass\" and \"hideClass',\n onBeforeOpen: 'willOpen',\n onOpen: 'didOpen',\n onRender: 'didRender',\n onClose: 'willClose',\n onAfterClose: 'didClose',\n onDestroy: 'didDestroy'\n};\nconst toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'heightAuto', 'keydownListenerCapture'];\n/**\n * Is valid parameter\n * @param {String} paramName\n */\n\nconst 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\nconst isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n};\n/**\n * Is deprecated parameter\n * @param {String} paramName\n */\n\nconst isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n};\n\nconst checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(`Unknown parameter \"${param}\"`);\n }\n};\n\nconst checkIfToastParamIsValid = param => {\n if (toastIncompatibleParams.includes(param)) {\n warn(`The parameter \"${param}\" is incompatible with toasts`);\n }\n};\n\nconst checkIfParamIsDeprecated = param => {\n if (isDeprecatedParameter(param)) {\n warnAboutDeprecation(param, isDeprecatedParameter(param));\n }\n};\n/**\n * Show relevant warnings for given params\n *\n * @param params\n */\n\n\nconst showWarningsForParams = params => {\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\nvar staticMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isValidParameter: isValidParameter,\n isUpdatableParameter: isUpdatableParameter,\n isDeprecatedParameter: isDeprecatedParameter,\n argsToParams: argsToParams,\n getContainer: getContainer,\n getPopup: getPopup,\n getTitle: getTitle,\n getContent: getContent,\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 getHeader: getHeader,\n getFooter: getFooter,\n getTimerProgressBar: getTimerProgressBar,\n getFocusableElements: getFocusableElements,\n getValidationMessage: getValidationMessage,\n isLoading: isLoading,\n isVisible: isVisible,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n clickCancel: clickCancel,\n fire: fire,\n mixin: mixin,\n queue: queue,\n getQueueStep: getQueueStep,\n insertQueueStep: insertQueueStep,\n deleteQueueStep: deleteQueueStep,\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/**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n\nfunction 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 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 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\nfunction getInput(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$1(domCache.content, innerParams.input);\n}\n\nconst 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 = `${states.previousBodyPadding + measureScrollbar()}px`;\n }\n};\nconst undoScrollbar = () => {\n if (states.previousBodyPadding !== null) {\n document.body.style.paddingRight = `${states.previousBodyPadding}px`;\n states.previousBodyPadding = null;\n }\n};\n\n/* istanbul ignore file */\n\nconst iOSfix = () => {\n const iOS = /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 = `${offset * -1}px`;\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n addBottomPaddingForTallPopups(); // #1948\n }\n};\n\nconst addBottomPaddingForTallPopups = () => {\n const safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i);\n\n if (safari) {\n const bottomPanelHeight = 44;\n\n if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {\n getContainer().style.paddingBottom = `${bottomPanelHeight}px`;\n }\n }\n};\n\nconst lockBodyScroll = () => {\n // #1246\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\nconst shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n\n if (isStylys(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 !(isScrollable(getContent()) && // #1944\n getContent().contains(target))) {\n return true;\n }\n\n return false;\n};\n\nconst isStylys = event => {\n // #1786\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n};\n\nconst isZoom = event => {\n // #1891\n return event.touches && event.touches.length > 1;\n};\n\nconst 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/* istanbul ignore file */\n\nconst isIE11 = () => !!window.MSInputMethodContext && !!document.documentMode; // Fix IE11 centering sweetalert2/issues/933\n\n\nconst fixVerticalPositionIE = () => {\n const container = getContainer();\n const popup = getPopup();\n container.style.removeProperty('align-items');\n\n if (popup.offsetTop < 0) {\n container.style.alignItems = 'flex-start';\n }\n};\n\nconst IEfix = () => {\n if (typeof window !== 'undefined' && isIE11()) {\n fixVerticalPositionIE();\n window.addEventListener('resize', fixVerticalPositionIE);\n }\n};\nconst undoIEfix = () => {\n if (typeof window !== 'undefined' && isIE11()) {\n window.removeEventListener('resize', fixVerticalPositionIE);\n }\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\nconst setAriaHidden = () => {\n const bodyChildren = toArray(document.body.children);\n bodyChildren.forEach(el => {\n if (el === getContainer() || contains(el, 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};\nconst 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/**\n * This module containts `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 */\nvar privateMethods = {\n swalPromiseResolve: new WeakMap()\n};\n\n/*\n * Instance method to close sweetAlert\n */\n\nfunction removePopupAndResetState(instance, container, isToast, didClose) {\n if (isToast) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement().then(() => triggerDidCloseAndDispose(instance, didClose));\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n\n if (container.parentNode && !document.body.getAttribute('data-swal2-queue-step')) {\n container.parentNode.removeChild(container);\n }\n\n if (isModal()) {\n undoScrollbar();\n undoIOSfix();\n undoIEfix();\n unsetAriaHidden();\n }\n\n removeBodyClasses();\n}\n\nfunction removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['toast-column']]);\n}\n\nfunction close(resolveValue) {\n const popup = getPopup();\n\n if (!popup) {\n return;\n }\n\n resolveValue = prepareResolveValue(resolveValue);\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return;\n }\n\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\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(this, popup, innerParams); // Resolve Swal promise\n\n swalPromiseResolve(resolveValue);\n}\n\nconst prepareResolveValue = resolveValue => {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n};\n\nconst handlePopupAnimation = (instance, popup, innerParams) => {\n const container = getContainer(); // If animation is supported, animate\n\n const animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n const {\n onClose,\n onAfterClose,\n // @deprecated\n willClose,\n didClose\n } = innerParams;\n runDidClose(popup, willClose, onClose);\n\n if (animationIsSupported) {\n animatePopup(instance, popup, container, didClose || onAfterClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, isToast(), didClose || onAfterClose);\n }\n};\n\nconst runDidClose = (popup, willClose, onClose) => {\n if (willClose !== null && typeof willClose === 'function') {\n willClose(popup);\n } else if (onClose !== null && typeof onClose === 'function') {\n onClose(popup); // @deprecated\n }\n};\n\nconst animatePopup = (instance, popup, container, didClose) => {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, isToast(), didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n};\n\nconst triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n if (typeof didClose === 'function') {\n didClose();\n }\n\n instance._destroy();\n });\n};\n\nfunction setButtonsDisabled(instance, buttons, disabled) {\n const domCache = privateProps.domCache.get(instance);\n buttons.forEach(button => {\n domCache[button].disabled = disabled;\n });\n}\n\nfunction setInputDisabled(input, disabled) {\n if (!input) {\n return false;\n }\n\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\nfunction enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n}\nfunction disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n}\nfunction enableInput() {\n return setInputDisabled(this.getInput(), false);\n}\nfunction disableInput() {\n return setInputDisabled(this.getInput(), true);\n}\n\nfunction 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\nfunction resetValidationMessage() {\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\nfunction getProgressSteps() {\n const domCache = privateProps.domCache.get(this);\n return domCache.progressSteps;\n}\n\nclass 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() - this.started;\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\nvar defaultInputValidators = {\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 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\nfunction setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (!params.inputValidator) {\n Object.keys(defaultInputValidators).forEach(key => {\n if (params.input === key) {\n params.inputValidator = defaultInputValidators[key];\n }\n });\n }\n}\n\nfunction validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!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 params\n * @returns {boolean}\n */\n\n\nfunction 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 } // params.animation will be actually used in renderPopup.js\n // but in case when params.animation is a function, we need to call that function\n // before popup (re)initialization, so it'll be possible to check Swal.isVisible()\n // inside the params.animation function\n\n\n params.animation = callIfFunction(params.animation);\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\nconst swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\nconst getTemplateParams = params => {\n const template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;\n\n if (!template) {\n return {};\n }\n\n const templateContent = template.content || template; // IE11\n\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\nconst getSwalParams = templateContent => {\n const result = {};\n toArray(templateContent.querySelectorAll('swal-param')).forEach(param => {\n showWarningsForAttributes(param, ['name', 'value']);\n const paramName = param.getAttribute('name');\n let value = param.getAttribute('value');\n\n if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {\n value = false;\n }\n\n if (typeof defaultParams[paramName] === 'object') {\n value = JSON.parse(value);\n }\n\n result[paramName] = value;\n });\n return result;\n};\n\nconst getSwalButtons = templateContent => {\n const result = {};\n toArray(templateContent.querySelectorAll('swal-button')).forEach(button => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n const type = button.getAttribute('type');\n result[`${type}ButtonText`] = button.innerHTML;\n result[`show${capitalizeFirstLetter(type)}Button`] = true;\n\n if (button.hasAttribute('color')) {\n result[`${type}ButtonColor`] = button.getAttribute('color');\n }\n\n if (button.hasAttribute('aria-label')) {\n result[`${type}ButtonAriaLabel`] = button.getAttribute('aria-label');\n }\n });\n return result;\n};\n\nconst getSwalImage = templateContent => {\n const result = {};\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\nconst getSwalIcon = templateContent => {\n const result = {};\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\nconst getSwalInput = templateContent => {\n const result = {};\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\nconst getSwalStringParams = (templateContent, paramNames) => {\n const result = {};\n\n for (const i in paramNames) {\n const paramName = paramNames[i];\n const tag = templateContent.querySelector(paramName);\n\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML;\n }\n }\n\n return result;\n};\n\nconst showWarningsForElements = template => {\n const allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n toArray(template.querySelectorAll('*')).forEach(el => {\n if (el.parentNode !== template) {\n // can't use template.children because of IE11\n return;\n }\n\n const tagName = el.tagName.toLowerCase();\n\n if (allowedElements.indexOf(tagName) === -1) {\n warn(`Unrecognized element <${tagName}>`);\n }\n });\n};\n\nconst showWarningsForAttributes = (el, allowedAttributes) => {\n toArray(el.attributes).forEach(attribute => {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([`Unrecognized attribute \"${attribute.name}\" on <${el.tagName.toLowerCase()}>.`, `${allowedAttributes.length ? `Allowed attributes are: ${allowedAttributes.join(', ')}` : 'To set the value, use HTML within the element.'}`]);\n }\n });\n};\n\nconst SHOW_CLASS_TIMEOUT = 10;\n/**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param params\n */\n\nconst openPopup = params => {\n const container = getContainer();\n const popup = getPopup();\n\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n } else if (typeof params.onBeforeOpen === 'function') {\n params.onBeforeOpen(popup); // @deprecated\n }\n\n const bodyStyles = window.getComputedStyle(document.body);\n const initialBodyOverflow = bodyStyles.overflowY;\n addClasses(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 runDidOpen(popup, params);\n removeClass(container, swalClasses['no-transition']);\n};\n\nconst runDidOpen = (popup, params) => {\n if (typeof params.didOpen === 'function') {\n setTimeout(() => params.didOpen(popup));\n } else if (typeof params.onOpen === 'function') {\n setTimeout(() => params.onOpen(popup)); // @deprecated\n }\n};\n\nconst 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\nconst 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\nconst fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n iOSfix();\n IEfix();\n\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n fixScrollbar();\n } // sweetalert2/issues/1247\n\n\n setTimeout(() => {\n container.scrollTop = 0;\n });\n};\n\nconst addClasses = (container, popup, params) => {\n addClass(container, params.showClass.backdrop); // the workaround with setting/unsetting opacity is needed for #2019 and 2059\n\n popup.style.setProperty('opacity', '0', 'important');\n show(popup);\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\nconst 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 handleInputValue(instance, params);\n }\n};\nconst 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\nconst getCheckboxValue = input => input.checked ? 1 : 0;\n\nconst getRadioValue = input => input.checked ? input.value : null;\n\nconst getFileValue = input => input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\nconst handleInputOptions = (instance, params) => {\n const content = getContent();\n\n const processInputOptions = inputOptions => populateInputOptions[params.input](content, 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\nconst 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\nconst populateInputOptions = {\n select: (content, inputOptions, params) => {\n const select = getChildByClass(content, 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\nconst isSelected = (optionValue, inputValue) => {\n return inputValue && inputValue.toString() === optionValue.toString();\n};\n\nconst handleConfirmButtonClick = (instance, innerParams) => {\n instance.disableButtons();\n\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, innerParams, 'confirm');\n } else {\n confirm(instance, innerParams, true);\n }\n};\nconst handleDenyButtonClick = (instance, innerParams) => {\n instance.disableButtons();\n\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, innerParams, 'deny');\n } else {\n deny(instance, innerParams, false);\n }\n};\nconst handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n};\n\nconst handleConfirmOrDenyWithInput = (instance, innerParams, type\n/* type is either 'confirm' or 'deny' */\n) => {\n const inputValue = getInputValue(instance, innerParams);\n\n if (innerParams.inputValidator) {\n handleInputValidator(instance, innerParams, inputValue);\n } else if (!instance.getInput().checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage);\n } else if (type === 'deny') {\n deny(instance, innerParams, inputValue);\n } else {\n confirm(instance, innerParams, inputValue);\n }\n};\n\nconst handleInputValidator = (instance, innerParams, inputValue) => {\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 {\n confirm(instance, innerParams, inputValue);\n }\n });\n};\n\nconst deny = (instance, innerParams, value) => {\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n\n if (innerParams.preDeny) {\n const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));\n preDenyPromise.then(preDenyValue => {\n if (preDenyValue === false) {\n instance.hideLoading();\n } else {\n instance.closePopup({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n });\n } else {\n instance.closePopup({\n isDenied: true,\n value\n });\n }\n};\n\nconst succeedWith = (instance, value) => {\n instance.closePopup({\n isConfirmed: true,\n value\n });\n};\n\nconst confirm = (instance, innerParams, value) => {\n if (innerParams.showLoaderOnConfirm) {\n showLoading(); // TODO: make showLoading an *instance* method\n }\n\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));\n preConfirmPromise.then(preConfirmValue => {\n if (isVisible$1(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n });\n } else {\n succeedWith(instance, value);\n }\n};\n\nconst addKeydownHandler = (instance, globalState, innerParams, dismissWith) => {\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 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}; // Focus handling\n\nconst 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};\nconst arrowKeysNextButton = ['ArrowRight', 'ArrowDown', 'Right', 'Down' // IE11\n];\nconst arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp', 'Left', 'Up' // IE11\n];\nconst escKeys = ['Escape', 'Esc' // IE11\n];\n\nconst keydownHandler = (instance, e, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n if (innerParams.stopKeydownPropagation) {\n e.stopPropagation();\n } // ENTER\n\n\n if (e.key === 'Enter') {\n handleEnter(instance, e, innerParams); // TAB\n } else if (e.key === 'Tab') {\n handleTab(e, innerParams); // ARROWS - switch focus between buttons\n } else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) {\n handleArrows(e.key); // ESC\n } else if (escKeys.includes(e.key)) {\n handleEsc(e, innerParams, dismissWith);\n }\n};\n\nconst handleEnter = (instance, e, innerParams) => {\n // #720 #721\n if (e.isComposing) {\n return;\n }\n\n if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n\n clickConfirm();\n e.preventDefault();\n }\n};\n\nconst handleTab = (e, innerParams) => {\n const targetElement = e.target;\n 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 }\n\n if (!e.shiftKey) {\n // Cycle to the next button\n setFocus(innerParams, btnIndex, 1);\n } else {\n // Cycle to the prev button\n setFocus(innerParams, btnIndex, -1);\n }\n\n e.stopPropagation();\n e.preventDefault();\n};\n\nconst handleArrows = key => {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n\n if (![confirmButton, denyButton, cancelButton].includes(document.activeElement)) {\n return;\n }\n\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n const buttonToFocus = document.activeElement[sibling];\n\n if (buttonToFocus) {\n buttonToFocus.focus();\n }\n};\n\nconst handleEsc = (e, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n e.preventDefault();\n dismissWith(DismissReason.esc);\n }\n};\n\nconst 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\nconst 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.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton || innerParams.timer || innerParams.input) {\n return;\n }\n\n dismissWith(DismissReason.close);\n };\n};\n\nlet ignoreOutsideClick = false;\n\nconst handleModalMousedown = domCache => {\n domCache.popup.onmousedown = () => {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = undefined; // 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\nconst 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\nconst 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\nfunction _main(userParams, mixinParams = {}) {\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n\n if (globalState.currentInstance) {\n globalState.currentInstance._destroy();\n }\n\n globalState.currentInstance = this;\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(this);\n render$1(this, innerParams);\n privateProps.innerParams.set(this, innerParams);\n return swalPromise(this, domCache, innerParams);\n}\n\nconst prepareParams = (userParams, mixinParams) => {\n const templateParams = getTemplateParams(userParams);\n const showClass = Object.assign({}, defaultParams.showClass, mixinParams.showClass, templateParams.showClass, userParams.showClass);\n const hideClass = Object.assign({}, defaultParams.hideClass, mixinParams.hideClass, templateParams.hideClass, userParams.hideClass);\n const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n\n params.showClass = showClass;\n params.hideClass = hideClass; // @deprecated\n\n if (userParams.animation === false) {\n params.showClass = {\n popup: 'swal2-noanimation',\n backdrop: 'swal2-noanimation'\n };\n params.hideClass = {};\n }\n\n return params;\n};\n\nconst swalPromise = (instance, domCache, innerParams) => {\n return new Promise(resolve => {\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\n domCache.confirmButton.onclick = () => handleConfirmButtonClick(instance, innerParams);\n\n domCache.denyButton.onclick = () => handleDenyButtonClick(instance, innerParams);\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\n if (innerParams.toast && (innerParams.input || innerParams.footer || innerParams.showCloseButton)) {\n addClass(document.body, swalClasses['toast-column']);\n } else {\n removeClass(document.body, swalClasses['toast-column']);\n }\n\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\nconst populateDomCache = instance => {\n const domCache = {\n popup: getPopup(),\n container: getContainer(),\n content: getContent(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps$1()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n};\n\nconst setupTimer = (globalState, innerParams, dismissWith) => {\n const timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n\n if (innerParams.timer) {\n globalState.timeout = new Timer(() => {\n dismissWith('timer');\n delete globalState.timeout;\n }, innerParams.timer);\n\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n setTimeout(() => {\n if (globalState.timeout && globalState.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n};\n\nconst initFocus = (domCache, innerParams) => {\n if (innerParams.toast) {\n return;\n }\n\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return blurActiveElement();\n }\n\n if (!focusButton(domCache, innerParams)) {\n setFocus(innerParams, -1, 1);\n }\n};\n\nconst focusButton = (domCache, innerParams) => {\n if (innerParams.focusDeny && isVisible$1(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n\n if (innerParams.focusCancel && isVisible$1(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n\n if (innerParams.focusConfirm && isVisible$1(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n\n return false;\n};\n\nconst blurActiveElement = () => {\n if (document.activeElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n};\n\n/**\n * Updates popup parameters.\n */\n\nfunction 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 = {}; // assign valid params from `params` to `defaults`\n\n Object.keys(params).forEach(param => {\n if (Swal.isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(`Invalid parameter to update: \"${param}\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\\n\\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md`);\n }\n });\n const updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n render$1(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\nfunction _destroy() {\n const domCache = privateProps.domCache.get(this);\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\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 } // Check if there is a swal disposal defer timer\n\n\n if (globalState.deferDisposalTimer) {\n clearTimeout(globalState.deferDisposalTimer);\n delete globalState.deferDisposalTimer;\n }\n\n runDidDestroy(innerParams);\n disposeSwal(this);\n}\n\nconst runDidDestroy = innerParams => {\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n } else if (typeof innerParams.onDestroy === 'function') {\n innerParams.onDestroy(); // @deprecated\n }\n};\n\nconst disposeSwal = instance => {\n // Unset this.params so GC will dispose it (#1569)\n delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)\n\n delete globalState.keydownHandler;\n delete globalState.keydownTarget; // Unset WeakMaps so GC will be able to dispose them (#1569)\n\n unsetWeakMaps(privateProps);\n unsetWeakMaps(privateMethods);\n};\n\nconst unsetWeakMaps = obj => {\n for (const i in obj) {\n obj[i] = new WeakMap();\n }\n};\n\nvar instanceMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n hideLoading: hideLoading,\n disableLoading: hideLoading,\n getInput: getInput,\n close: close,\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 getProgressSteps: getProgressSteps,\n _main: _main,\n update: update,\n _destroy: _destroy\n});\n\nlet currentInstance;\n\nclass SweetAlert {\n constructor(...args) {\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n } // Check for the existence of Promise\n\n\n if (typeof Promise === 'undefined') {\n error('This package requires a Promise library, please include a shim to enable it in this browser (See: https://github.com/sweetalert2/sweetalert2/wiki/Migration-from-SweetAlert-to-SweetAlert2#1-ie-support)');\n }\n\n currentInstance = this;\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 });\n\n const promise = this._main(this.params);\n\n privateProps.promise.set(this, promise);\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} // Assign instance methods from src/instanceMethods/*.js to prototype\n\n\nObject.assign(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor\n\nObject.assign(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility\n\nObject.keys(instanceMethods).forEach(key => {\n SweetAlert[key] = function (...args) {\n if (currentInstance) {\n return currentInstance[key](...args);\n }\n };\n});\nSweetAlert.DismissReason = DismissReason;\nSweetAlert.version = '10.15.7';\n\nconst Swal = SweetAlert;\nSwal.default = Swal;\n\nfunction errorHandler(noResult, loading, message) {\n const noResultErrMsg = () => {\n loading.value = false;\n Swal.fire({\n text: message.value,\n showConfirmButton: false\n });\n setTimeout(() => {\n Swal.close();\n }, 3000);\n };\n\n watch(noResult, newValue => {\n if (newValue === true) {\n noResultErrMsg();\n }\n });\n}\n\nvar script = {\n props: {\n noResult: {\n type: Boolean,\n default: false\n },\n message: {\n type: String,\n default: \"Failed to load data.\"\n }\n },\n\n setup(props, {\n emit\n }) {\n const {\n noResult,\n message\n } = toRefs(props);\n const {\n handleScroll,\n scrollRef,\n loading\n } = infiniteScroll(noResult, emit);\n errorHandler(noResult, loading, message);\n onMounted(() => {\n window.addEventListener(\"scroll\", handleScroll);\n });\n onUnmounted(() => {\n window.removeEventListener(\"scroll\", handleScroll);\n });\n return {\n scrollRef,\n loading\n };\n }\n\n};\n\nconst _withId = /*#__PURE__*/withScopeId(\"data-v-eaa4925a\");\n\npushScopeId(\"data-v-eaa4925a\");\n\nconst _hoisted_1 = {\n ref: \"scrollRef\"\n};\nconst _hoisted_2 = {\n key: 0,\n style: {\n \"text-align\": \"center\"\n }\n};\n\nconst _hoisted_3 = /*#__PURE__*/createVNode(\"div\", {\n class: \"spinner\"\n}, null, -1);\n\npopScopeId();\n\nconst render = /*#__PURE__*/_withId((_ctx, _cache, $props, $setup, $data, $options) => {\n return openBlock(), createBlock(\"div\", _hoisted_1, [renderSlot(_ctx.$slots, \"default\"), $setup.loading ? (openBlock(), createBlock(\"div\", _hoisted_2, [_hoisted_3])) : createCommentVNode(\"\", true)], 512);\n});\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \"\\n.spinner[data-v-eaa4925a] {\\n display: inline-block; /* Setting display to inline-block prevents the custom event from being fired multiple times at once */\\n margin: 5px auto;\\n height: 2rem;\\n width: 2rem;\\n border-radius: 50%;\\n border: 2px dashed black;\\n position: relative;\\n animation: spin-eaa4925a 2s ease infinite;\\n}\\n.spinner[data-v-eaa4925a]::before {\\n position: absolute;\\n content: \\\"\\\";\\n top: 0;\\n left: -7px;\\n width: 40%;\\n height: 70%;\\n background: white;\\n}\\n@keyframes spin-eaa4925a {\\nfrom {\\n transform: rotate(0deg);\\n}\\nto {\\n transform: rotate(360deg);\\n}\\n}\\n\";\nstyleInject(css_248z);\n\nscript.render = render;\nscript.__scopeId = \"data-v-eaa4925a\";\n\n// Import vue component\n// IIFE injects install function into component, allowing component\n// to be registered via Vue.use() as well as Vue.component(),\n\nvar entry_esm = /*#__PURE__*/(() => {\n // Get component instance\n const installable = script; // Attach install function executed by Vue.use()\n\n installable.install = app => {\n app.component('InfiniteScrollVue3', installable);\n };\n\n return installable;\n})(); // It's possible to expose named exports when writing components that can\n// also be used as directives, etc. - eg. import { RollupDemoDirective } from 'rollup-demo';\n// export const RollupDemoDirective = directive;\n\nexport default entry_esm;\n","\r\n","import { render } from \"./BtnLoading.vue?vue&type=template&id=5d812980\"\nimport script from \"./BtnLoading.vue?vue&type=script&lang=js\"\nexport * from \"./BtnLoading.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"D:\\\\soluciones\\\\mesa-regalo\\\\web-2\\\\node_modules\\\\vue-loader-v16\\\\dist\\\\exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","module.exports = __webpack_public_path__ + \"img/no_data.43a5ce47.svg\";"],"sourceRoot":""}