{"version":3,"file":"fire-swal-BnNJom-D.js","sources":["../../../node_modules/alpinejs/dist/module.esm.js","../../../app/frontend/scripts/locales/translations.js","../../../node_modules/image-blob-reduce/dist/image-blob-reduce.esm.mjs","../../../node_modules/sweetalert2/dist/sweetalert2.esm.all.js","../../../app/frontend/scripts/fire-swal.js"],"sourcesContent":["// packages/alpinejs/src/scheduler.js\nvar flushPending = false;\nvar flushing = false;\nvar queue = [];\nvar lastFlushedIndex = -1;\nfunction scheduler(callback) {\n queueJob(callback);\n}\nfunction queueJob(job) {\n if (!queue.includes(job))\n queue.push(job);\n queueFlush();\n}\nfunction dequeueJob(job) {\n let index = queue.indexOf(job);\n if (index !== -1 && index > lastFlushedIndex)\n queue.splice(index, 1);\n}\nfunction queueFlush() {\n if (!flushing && !flushPending) {\n flushPending = true;\n queueMicrotask(flushJobs);\n }\n}\nfunction flushJobs() {\n flushPending = false;\n flushing = true;\n for (let i = 0; i < queue.length; i++) {\n queue[i]();\n lastFlushedIndex = i;\n }\n queue.length = 0;\n lastFlushedIndex = -1;\n flushing = false;\n}\n\n// packages/alpinejs/src/reactivity.js\nvar reactive;\nvar effect;\nvar release;\nvar raw;\nvar shouldSchedule = true;\nfunction disableEffectScheduling(callback) {\n shouldSchedule = false;\n callback();\n shouldSchedule = true;\n}\nfunction setReactivityEngine(engine) {\n reactive = engine.reactive;\n release = engine.release;\n effect = (callback) => engine.effect(callback, { scheduler: (task) => {\n if (shouldSchedule) {\n scheduler(task);\n } else {\n task();\n }\n } });\n raw = engine.raw;\n}\nfunction overrideEffect(override) {\n effect = override;\n}\nfunction elementBoundEffect(el) {\n let cleanup2 = () => {\n };\n let wrappedEffect = (callback) => {\n let effectReference = effect(callback);\n if (!el._x_effects) {\n el._x_effects = /* @__PURE__ */ new Set();\n el._x_runEffects = () => {\n el._x_effects.forEach((i) => i());\n };\n }\n el._x_effects.add(effectReference);\n cleanup2 = () => {\n if (effectReference === void 0)\n return;\n el._x_effects.delete(effectReference);\n release(effectReference);\n };\n return effectReference;\n };\n return [wrappedEffect, () => {\n cleanup2();\n }];\n}\nfunction watch(getter, callback) {\n let firstTime = true;\n let oldValue;\n let effectReference = effect(() => {\n let value = getter();\n JSON.stringify(value);\n if (!firstTime) {\n queueMicrotask(() => {\n callback(value, oldValue);\n oldValue = value;\n });\n } else {\n oldValue = value;\n }\n firstTime = false;\n });\n return () => release(effectReference);\n}\n\n// packages/alpinejs/src/mutation.js\nvar onAttributeAddeds = [];\nvar onElRemoveds = [];\nvar onElAddeds = [];\nfunction onElAdded(callback) {\n onElAddeds.push(callback);\n}\nfunction onElRemoved(el, callback) {\n if (typeof callback === \"function\") {\n if (!el._x_cleanups)\n el._x_cleanups = [];\n el._x_cleanups.push(callback);\n } else {\n callback = el;\n onElRemoveds.push(callback);\n }\n}\nfunction onAttributesAdded(callback) {\n onAttributeAddeds.push(callback);\n}\nfunction onAttributeRemoved(el, name, callback) {\n if (!el._x_attributeCleanups)\n el._x_attributeCleanups = {};\n if (!el._x_attributeCleanups[name])\n el._x_attributeCleanups[name] = [];\n el._x_attributeCleanups[name].push(callback);\n}\nfunction cleanupAttributes(el, names) {\n if (!el._x_attributeCleanups)\n return;\n Object.entries(el._x_attributeCleanups).forEach(([name, value]) => {\n if (names === void 0 || names.includes(name)) {\n value.forEach((i) => i());\n delete el._x_attributeCleanups[name];\n }\n });\n}\nfunction cleanupElement(el) {\n el._x_effects?.forEach(dequeueJob);\n while (el._x_cleanups?.length)\n el._x_cleanups.pop()();\n}\nvar observer = new MutationObserver(onMutate);\nvar currentlyObserving = false;\nfunction startObservingMutations() {\n observer.observe(document, { subtree: true, childList: true, attributes: true, attributeOldValue: true });\n currentlyObserving = true;\n}\nfunction stopObservingMutations() {\n flushObserver();\n observer.disconnect();\n currentlyObserving = false;\n}\nvar queuedMutations = [];\nfunction flushObserver() {\n let records = observer.takeRecords();\n queuedMutations.push(() => records.length > 0 && onMutate(records));\n let queueLengthWhenTriggered = queuedMutations.length;\n queueMicrotask(() => {\n if (queuedMutations.length === queueLengthWhenTriggered) {\n while (queuedMutations.length > 0)\n queuedMutations.shift()();\n }\n });\n}\nfunction mutateDom(callback) {\n if (!currentlyObserving)\n return callback();\n stopObservingMutations();\n let result = callback();\n startObservingMutations();\n return result;\n}\nvar isCollecting = false;\nvar deferredMutations = [];\nfunction deferMutations() {\n isCollecting = true;\n}\nfunction flushAndStopDeferringMutations() {\n isCollecting = false;\n onMutate(deferredMutations);\n deferredMutations = [];\n}\nfunction onMutate(mutations) {\n if (isCollecting) {\n deferredMutations = deferredMutations.concat(mutations);\n return;\n }\n let addedNodes = [];\n let removedNodes = /* @__PURE__ */ new Set();\n let addedAttributes = /* @__PURE__ */ new Map();\n let removedAttributes = /* @__PURE__ */ new Map();\n for (let i = 0; i < mutations.length; i++) {\n if (mutations[i].target._x_ignoreMutationObserver)\n continue;\n if (mutations[i].type === \"childList\") {\n mutations[i].removedNodes.forEach((node) => {\n if (node.nodeType !== 1)\n return;\n if (!node._x_marker)\n return;\n removedNodes.add(node);\n });\n mutations[i].addedNodes.forEach((node) => {\n if (node.nodeType !== 1)\n return;\n if (removedNodes.has(node)) {\n removedNodes.delete(node);\n return;\n }\n if (node._x_marker)\n return;\n addedNodes.push(node);\n });\n }\n if (mutations[i].type === \"attributes\") {\n let el = mutations[i].target;\n let name = mutations[i].attributeName;\n let oldValue = mutations[i].oldValue;\n let add2 = () => {\n if (!addedAttributes.has(el))\n addedAttributes.set(el, []);\n addedAttributes.get(el).push({ name, value: el.getAttribute(name) });\n };\n let remove = () => {\n if (!removedAttributes.has(el))\n removedAttributes.set(el, []);\n removedAttributes.get(el).push(name);\n };\n if (el.hasAttribute(name) && oldValue === null) {\n add2();\n } else if (el.hasAttribute(name)) {\n remove();\n add2();\n } else {\n remove();\n }\n }\n }\n removedAttributes.forEach((attrs, el) => {\n cleanupAttributes(el, attrs);\n });\n addedAttributes.forEach((attrs, el) => {\n onAttributeAddeds.forEach((i) => i(el, attrs));\n });\n for (let node of removedNodes) {\n if (addedNodes.some((i) => i.contains(node)))\n continue;\n onElRemoveds.forEach((i) => i(node));\n }\n for (let node of addedNodes) {\n if (!node.isConnected)\n continue;\n onElAddeds.forEach((i) => i(node));\n }\n addedNodes = null;\n removedNodes = null;\n addedAttributes = null;\n removedAttributes = null;\n}\n\n// packages/alpinejs/src/scope.js\nfunction scope(node) {\n return mergeProxies(closestDataStack(node));\n}\nfunction addScopeToNode(node, data2, referenceNode) {\n node._x_dataStack = [data2, ...closestDataStack(referenceNode || node)];\n return () => {\n node._x_dataStack = node._x_dataStack.filter((i) => i !== data2);\n };\n}\nfunction closestDataStack(node) {\n if (node._x_dataStack)\n return node._x_dataStack;\n if (typeof ShadowRoot === \"function\" && node instanceof ShadowRoot) {\n return closestDataStack(node.host);\n }\n if (!node.parentNode) {\n return [];\n }\n return closestDataStack(node.parentNode);\n}\nfunction mergeProxies(objects) {\n return new Proxy({ objects }, mergeProxyTrap);\n}\nvar mergeProxyTrap = {\n ownKeys({ objects }) {\n return Array.from(\n new Set(objects.flatMap((i) => Object.keys(i)))\n );\n },\n has({ objects }, name) {\n if (name == Symbol.unscopables)\n return false;\n return objects.some(\n (obj) => Object.prototype.hasOwnProperty.call(obj, name) || Reflect.has(obj, name)\n );\n },\n get({ objects }, name, thisProxy) {\n if (name == \"toJSON\")\n return collapseProxies;\n return Reflect.get(\n objects.find(\n (obj) => Reflect.has(obj, name)\n ) || {},\n name,\n thisProxy\n );\n },\n set({ objects }, name, value, thisProxy) {\n const target = objects.find(\n (obj) => Object.prototype.hasOwnProperty.call(obj, name)\n ) || objects[objects.length - 1];\n const descriptor = Object.getOwnPropertyDescriptor(target, name);\n if (descriptor?.set && descriptor?.get)\n return descriptor.set.call(thisProxy, value) || true;\n return Reflect.set(target, name, value);\n }\n};\nfunction collapseProxies() {\n let keys = Reflect.ownKeys(this);\n return keys.reduce((acc, key) => {\n acc[key] = Reflect.get(this, key);\n return acc;\n }, {});\n}\n\n// packages/alpinejs/src/interceptor.js\nfunction initInterceptors(data2) {\n let isObject2 = (val) => typeof val === \"object\" && !Array.isArray(val) && val !== null;\n let recurse = (obj, basePath = \"\") => {\n Object.entries(Object.getOwnPropertyDescriptors(obj)).forEach(([key, { value, enumerable }]) => {\n if (enumerable === false || value === void 0)\n return;\n if (typeof value === \"object\" && value !== null && value.__v_skip)\n return;\n let path = basePath === \"\" ? key : `${basePath}.${key}`;\n if (typeof value === \"object\" && value !== null && value._x_interceptor) {\n obj[key] = value.initialize(data2, path, key);\n } else {\n if (isObject2(value) && value !== obj && !(value instanceof Element)) {\n recurse(value, path);\n }\n }\n });\n };\n return recurse(data2);\n}\nfunction interceptor(callback, mutateObj = () => {\n}) {\n let obj = {\n initialValue: void 0,\n _x_interceptor: true,\n initialize(data2, path, key) {\n return callback(this.initialValue, () => get(data2, path), (value) => set(data2, path, value), path, key);\n }\n };\n mutateObj(obj);\n return (initialValue) => {\n if (typeof initialValue === \"object\" && initialValue !== null && initialValue._x_interceptor) {\n let initialize = obj.initialize.bind(obj);\n obj.initialize = (data2, path, key) => {\n let innerValue = initialValue.initialize(data2, path, key);\n obj.initialValue = innerValue;\n return initialize(data2, path, key);\n };\n } else {\n obj.initialValue = initialValue;\n }\n return obj;\n };\n}\nfunction get(obj, path) {\n return path.split(\".\").reduce((carry, segment) => carry[segment], obj);\n}\nfunction set(obj, path, value) {\n if (typeof path === \"string\")\n path = path.split(\".\");\n if (path.length === 1)\n obj[path[0]] = value;\n else if (path.length === 0)\n throw error;\n else {\n if (obj[path[0]])\n return set(obj[path[0]], path.slice(1), value);\n else {\n obj[path[0]] = {};\n return set(obj[path[0]], path.slice(1), value);\n }\n }\n}\n\n// packages/alpinejs/src/magics.js\nvar magics = {};\nfunction magic(name, callback) {\n magics[name] = callback;\n}\nfunction injectMagics(obj, el) {\n let memoizedUtilities = getUtilities(el);\n Object.entries(magics).forEach(([name, callback]) => {\n Object.defineProperty(obj, `$${name}`, {\n get() {\n return callback(el, memoizedUtilities);\n },\n enumerable: false\n });\n });\n return obj;\n}\nfunction getUtilities(el) {\n let [utilities, cleanup2] = getElementBoundUtilities(el);\n let utils = { interceptor, ...utilities };\n onElRemoved(el, cleanup2);\n return utils;\n}\n\n// packages/alpinejs/src/utils/error.js\nfunction tryCatch(el, expression, callback, ...args) {\n try {\n return callback(...args);\n } catch (e) {\n handleError(e, el, expression);\n }\n}\nfunction handleError(error2, el, expression = void 0) {\n error2 = Object.assign(\n error2 ?? { message: \"No error message given.\" },\n { el, expression }\n );\n console.warn(`Alpine Expression Error: ${error2.message}\n\n${expression ? 'Expression: \"' + expression + '\"\\n\\n' : \"\"}`, el);\n setTimeout(() => {\n throw error2;\n }, 0);\n}\n\n// packages/alpinejs/src/evaluator.js\nvar shouldAutoEvaluateFunctions = true;\nfunction dontAutoEvaluateFunctions(callback) {\n let cache = shouldAutoEvaluateFunctions;\n shouldAutoEvaluateFunctions = false;\n let result = callback();\n shouldAutoEvaluateFunctions = cache;\n return result;\n}\nfunction evaluate(el, expression, extras = {}) {\n let result;\n evaluateLater(el, expression)((value) => result = value, extras);\n return result;\n}\nfunction evaluateLater(...args) {\n return theEvaluatorFunction(...args);\n}\nvar theEvaluatorFunction = normalEvaluator;\nfunction setEvaluator(newEvaluator) {\n theEvaluatorFunction = newEvaluator;\n}\nfunction normalEvaluator(el, expression) {\n let overriddenMagics = {};\n injectMagics(overriddenMagics, el);\n let dataStack = [overriddenMagics, ...closestDataStack(el)];\n let evaluator = typeof expression === \"function\" ? generateEvaluatorFromFunction(dataStack, expression) : generateEvaluatorFromString(dataStack, expression, el);\n return tryCatch.bind(null, el, expression, evaluator);\n}\nfunction generateEvaluatorFromFunction(dataStack, func) {\n return (receiver = () => {\n }, { scope: scope2 = {}, params = [] } = {}) => {\n let result = func.apply(mergeProxies([scope2, ...dataStack]), params);\n runIfTypeOfFunction(receiver, result);\n };\n}\nvar evaluatorMemo = {};\nfunction generateFunctionFromString(expression, el) {\n if (evaluatorMemo[expression]) {\n return evaluatorMemo[expression];\n }\n let AsyncFunction = Object.getPrototypeOf(async function() {\n }).constructor;\n let rightSideSafeExpression = /^[\\n\\s]*if.*\\(.*\\)/.test(expression.trim()) || /^(let|const)\\s/.test(expression.trim()) ? `(async()=>{ ${expression} })()` : expression;\n const safeAsyncFunction = () => {\n try {\n let func2 = new AsyncFunction(\n [\"__self\", \"scope\"],\n `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`\n );\n Object.defineProperty(func2, \"name\", {\n value: `[Alpine] ${expression}`\n });\n return func2;\n } catch (error2) {\n handleError(error2, el, expression);\n return Promise.resolve();\n }\n };\n let func = safeAsyncFunction();\n evaluatorMemo[expression] = func;\n return func;\n}\nfunction generateEvaluatorFromString(dataStack, expression, el) {\n let func = generateFunctionFromString(expression, el);\n return (receiver = () => {\n }, { scope: scope2 = {}, params = [] } = {}) => {\n func.result = void 0;\n func.finished = false;\n let completeScope = mergeProxies([scope2, ...dataStack]);\n if (typeof func === \"function\") {\n let promise = func(func, completeScope).catch((error2) => handleError(error2, el, expression));\n if (func.finished) {\n runIfTypeOfFunction(receiver, func.result, completeScope, params, el);\n func.result = void 0;\n } else {\n promise.then((result) => {\n runIfTypeOfFunction(receiver, result, completeScope, params, el);\n }).catch((error2) => handleError(error2, el, expression)).finally(() => func.result = void 0);\n }\n }\n };\n}\nfunction runIfTypeOfFunction(receiver, value, scope2, params, el) {\n if (shouldAutoEvaluateFunctions && typeof value === \"function\") {\n let result = value.apply(scope2, params);\n if (result instanceof Promise) {\n result.then((i) => runIfTypeOfFunction(receiver, i, scope2, params)).catch((error2) => handleError(error2, el, value));\n } else {\n receiver(result);\n }\n } else if (typeof value === \"object\" && value instanceof Promise) {\n value.then((i) => receiver(i));\n } else {\n receiver(value);\n }\n}\n\n// packages/alpinejs/src/directives.js\nvar prefixAsString = \"x-\";\nfunction prefix(subject = \"\") {\n return prefixAsString + subject;\n}\nfunction setPrefix(newPrefix) {\n prefixAsString = newPrefix;\n}\nvar directiveHandlers = {};\nfunction directive(name, callback) {\n directiveHandlers[name] = callback;\n return {\n before(directive2) {\n if (!directiveHandlers[directive2]) {\n console.warn(String.raw`Cannot find directive \\`${directive2}\\`. \\`${name}\\` will use the default order of execution`);\n return;\n }\n const pos = directiveOrder.indexOf(directive2);\n directiveOrder.splice(pos >= 0 ? pos : directiveOrder.indexOf(\"DEFAULT\"), 0, name);\n }\n };\n}\nfunction directiveExists(name) {\n return Object.keys(directiveHandlers).includes(name);\n}\nfunction directives(el, attributes, originalAttributeOverride) {\n attributes = Array.from(attributes);\n if (el._x_virtualDirectives) {\n let vAttributes = Object.entries(el._x_virtualDirectives).map(([name, value]) => ({ name, value }));\n let staticAttributes = attributesOnly(vAttributes);\n vAttributes = vAttributes.map((attribute) => {\n if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n return {\n name: `x-bind:${attribute.name}`,\n value: `\"${attribute.value}\"`\n };\n }\n return attribute;\n });\n attributes = attributes.concat(vAttributes);\n }\n let transformedAttributeMap = {};\n let directives2 = attributes.map(toTransformedAttributes((newName, oldName) => transformedAttributeMap[newName] = oldName)).filter(outNonAlpineAttributes).map(toParsedDirectives(transformedAttributeMap, originalAttributeOverride)).sort(byPriority);\n return directives2.map((directive2) => {\n return getDirectiveHandler(el, directive2);\n });\n}\nfunction attributesOnly(attributes) {\n return Array.from(attributes).map(toTransformedAttributes()).filter((attr) => !outNonAlpineAttributes(attr));\n}\nvar isDeferringHandlers = false;\nvar directiveHandlerStacks = /* @__PURE__ */ new Map();\nvar currentHandlerStackKey = Symbol();\nfunction deferHandlingDirectives(callback) {\n isDeferringHandlers = true;\n let key = Symbol();\n currentHandlerStackKey = key;\n directiveHandlerStacks.set(key, []);\n let flushHandlers = () => {\n while (directiveHandlerStacks.get(key).length)\n directiveHandlerStacks.get(key).shift()();\n directiveHandlerStacks.delete(key);\n };\n let stopDeferring = () => {\n isDeferringHandlers = false;\n flushHandlers();\n };\n callback(flushHandlers);\n stopDeferring();\n}\nfunction getElementBoundUtilities(el) {\n let cleanups = [];\n let cleanup2 = (callback) => cleanups.push(callback);\n let [effect3, cleanupEffect] = elementBoundEffect(el);\n cleanups.push(cleanupEffect);\n let utilities = {\n Alpine: alpine_default,\n effect: effect3,\n cleanup: cleanup2,\n evaluateLater: evaluateLater.bind(evaluateLater, el),\n evaluate: evaluate.bind(evaluate, el)\n };\n let doCleanup = () => cleanups.forEach((i) => i());\n return [utilities, doCleanup];\n}\nfunction getDirectiveHandler(el, directive2) {\n let noop = () => {\n };\n let handler4 = directiveHandlers[directive2.type] || noop;\n let [utilities, cleanup2] = getElementBoundUtilities(el);\n onAttributeRemoved(el, directive2.original, cleanup2);\n let fullHandler = () => {\n if (el._x_ignore || el._x_ignoreSelf)\n return;\n handler4.inline && handler4.inline(el, directive2, utilities);\n handler4 = handler4.bind(handler4, el, directive2, utilities);\n isDeferringHandlers ? directiveHandlerStacks.get(currentHandlerStackKey).push(handler4) : handler4();\n };\n fullHandler.runCleanups = cleanup2;\n return fullHandler;\n}\nvar startingWith = (subject, replacement) => ({ name, value }) => {\n if (name.startsWith(subject))\n name = name.replace(subject, replacement);\n return { name, value };\n};\nvar into = (i) => i;\nfunction toTransformedAttributes(callback = () => {\n}) {\n return ({ name, value }) => {\n let { name: newName, value: newValue } = attributeTransformers.reduce((carry, transform) => {\n return transform(carry);\n }, { name, value });\n if (newName !== name)\n callback(newName, name);\n return { name: newName, value: newValue };\n };\n}\nvar attributeTransformers = [];\nfunction mapAttributes(callback) {\n attributeTransformers.push(callback);\n}\nfunction outNonAlpineAttributes({ name }) {\n return alpineAttributeRegex().test(name);\n}\nvar alpineAttributeRegex = () => new RegExp(`^${prefixAsString}([^:^.]+)\\\\b`);\nfunction toParsedDirectives(transformedAttributeMap, originalAttributeOverride) {\n return ({ name, value }) => {\n let typeMatch = name.match(alpineAttributeRegex());\n let valueMatch = name.match(/:([a-zA-Z0-9\\-_:]+)/);\n let modifiers = name.match(/\\.[^.\\]]+(?=[^\\]]*$)/g) || [];\n let original = originalAttributeOverride || transformedAttributeMap[name] || name;\n return {\n type: typeMatch ? typeMatch[1] : null,\n value: valueMatch ? valueMatch[1] : null,\n modifiers: modifiers.map((i) => i.replace(\".\", \"\")),\n expression: value,\n original\n };\n };\n}\nvar DEFAULT = \"DEFAULT\";\nvar directiveOrder = [\n \"ignore\",\n \"ref\",\n \"data\",\n \"id\",\n \"anchor\",\n \"bind\",\n \"init\",\n \"for\",\n \"model\",\n \"modelable\",\n \"transition\",\n \"show\",\n \"if\",\n DEFAULT,\n \"teleport\"\n];\nfunction byPriority(a, b) {\n let typeA = directiveOrder.indexOf(a.type) === -1 ? DEFAULT : a.type;\n let typeB = directiveOrder.indexOf(b.type) === -1 ? DEFAULT : b.type;\n return directiveOrder.indexOf(typeA) - directiveOrder.indexOf(typeB);\n}\n\n// packages/alpinejs/src/utils/dispatch.js\nfunction dispatch(el, name, detail = {}) {\n el.dispatchEvent(\n new CustomEvent(name, {\n detail,\n bubbles: true,\n // Allows events to pass the shadow DOM barrier.\n composed: true,\n cancelable: true\n })\n );\n}\n\n// packages/alpinejs/src/utils/walk.js\nfunction walk(el, callback) {\n if (typeof ShadowRoot === \"function\" && el instanceof ShadowRoot) {\n Array.from(el.children).forEach((el2) => walk(el2, callback));\n return;\n }\n let skip = false;\n callback(el, () => skip = true);\n if (skip)\n return;\n let node = el.firstElementChild;\n while (node) {\n walk(node, callback, false);\n node = node.nextElementSibling;\n }\n}\n\n// packages/alpinejs/src/utils/warn.js\nfunction warn(message, ...args) {\n console.warn(`Alpine Warning: ${message}`, ...args);\n}\n\n// packages/alpinejs/src/lifecycle.js\nvar started = false;\nfunction start() {\n if (started)\n warn(\"Alpine has already been initialized on this page. Calling Alpine.start() more than once can cause problems.\");\n started = true;\n if (!document.body)\n warn(\"Unable to initialize. Trying to load Alpine before `<body>` is available. Did you forget to add `defer` in Alpine's `<script>` tag?\");\n dispatch(document, \"alpine:init\");\n dispatch(document, \"alpine:initializing\");\n startObservingMutations();\n onElAdded((el) => initTree(el, walk));\n onElRemoved((el) => destroyTree(el));\n onAttributesAdded((el, attrs) => {\n directives(el, attrs).forEach((handle) => handle());\n });\n let outNestedComponents = (el) => !closestRoot(el.parentElement, true);\n Array.from(document.querySelectorAll(allSelectors().join(\",\"))).filter(outNestedComponents).forEach((el) => {\n initTree(el);\n });\n dispatch(document, \"alpine:initialized\");\n setTimeout(() => {\n warnAboutMissingPlugins();\n });\n}\nvar rootSelectorCallbacks = [];\nvar initSelectorCallbacks = [];\nfunction rootSelectors() {\n return rootSelectorCallbacks.map((fn) => fn());\n}\nfunction allSelectors() {\n return rootSelectorCallbacks.concat(initSelectorCallbacks).map((fn) => fn());\n}\nfunction addRootSelector(selectorCallback) {\n rootSelectorCallbacks.push(selectorCallback);\n}\nfunction addInitSelector(selectorCallback) {\n initSelectorCallbacks.push(selectorCallback);\n}\nfunction closestRoot(el, includeInitSelectors = false) {\n return findClosest(el, (element) => {\n const selectors = includeInitSelectors ? allSelectors() : rootSelectors();\n if (selectors.some((selector) => element.matches(selector)))\n return true;\n });\n}\nfunction findClosest(el, callback) {\n if (!el)\n return;\n if (callback(el))\n return el;\n if (el._x_teleportBack)\n el = el._x_teleportBack;\n if (!el.parentElement)\n return;\n return findClosest(el.parentElement, callback);\n}\nfunction isRoot(el) {\n return rootSelectors().some((selector) => el.matches(selector));\n}\nvar initInterceptors2 = [];\nfunction interceptInit(callback) {\n initInterceptors2.push(callback);\n}\nvar markerDispenser = 1;\nfunction initTree(el, walker = walk, intercept = () => {\n}) {\n if (findClosest(el, (i) => i._x_ignore))\n return;\n deferHandlingDirectives(() => {\n walker(el, (el2, skip) => {\n if (el2._x_marker)\n return;\n intercept(el2, skip);\n initInterceptors2.forEach((i) => i(el2, skip));\n directives(el2, el2.attributes).forEach((handle) => handle());\n if (!el2._x_ignore)\n el2._x_marker = markerDispenser++;\n el2._x_ignore && skip();\n });\n });\n}\nfunction destroyTree(root, walker = walk) {\n walker(root, (el) => {\n cleanupElement(el);\n cleanupAttributes(el);\n delete el._x_marker;\n });\n}\nfunction warnAboutMissingPlugins() {\n let pluginDirectives = [\n [\"ui\", \"dialog\", [\"[x-dialog], [x-popover]\"]],\n [\"anchor\", \"anchor\", [\"[x-anchor]\"]],\n [\"sort\", \"sort\", [\"[x-sort]\"]]\n ];\n pluginDirectives.forEach(([plugin2, directive2, selectors]) => {\n if (directiveExists(directive2))\n return;\n selectors.some((selector) => {\n if (document.querySelector(selector)) {\n warn(`found \"${selector}\", but missing ${plugin2} plugin`);\n return true;\n }\n });\n });\n}\n\n// packages/alpinejs/src/nextTick.js\nvar tickStack = [];\nvar isHolding = false;\nfunction nextTick(callback = () => {\n}) {\n queueMicrotask(() => {\n isHolding || setTimeout(() => {\n releaseNextTicks();\n });\n });\n return new Promise((res) => {\n tickStack.push(() => {\n callback();\n res();\n });\n });\n}\nfunction releaseNextTicks() {\n isHolding = false;\n while (tickStack.length)\n tickStack.shift()();\n}\nfunction holdNextTicks() {\n isHolding = true;\n}\n\n// packages/alpinejs/src/utils/classes.js\nfunction setClasses(el, value) {\n if (Array.isArray(value)) {\n return setClassesFromString(el, value.join(\" \"));\n } else if (typeof value === \"object\" && value !== null) {\n return setClassesFromObject(el, value);\n } else if (typeof value === \"function\") {\n return setClasses(el, value());\n }\n return setClassesFromString(el, value);\n}\nfunction setClassesFromString(el, classString) {\n let split = (classString2) => classString2.split(\" \").filter(Boolean);\n let missingClasses = (classString2) => classString2.split(\" \").filter((i) => !el.classList.contains(i)).filter(Boolean);\n let addClassesAndReturnUndo = (classes) => {\n el.classList.add(...classes);\n return () => {\n el.classList.remove(...classes);\n };\n };\n classString = classString === true ? classString = \"\" : classString || \"\";\n return addClassesAndReturnUndo(missingClasses(classString));\n}\nfunction setClassesFromObject(el, classObject) {\n let split = (classString) => classString.split(\" \").filter(Boolean);\n let forAdd = Object.entries(classObject).flatMap(([classString, bool]) => bool ? split(classString) : false).filter(Boolean);\n let forRemove = Object.entries(classObject).flatMap(([classString, bool]) => !bool ? split(classString) : false).filter(Boolean);\n let added = [];\n let removed = [];\n forRemove.forEach((i) => {\n if (el.classList.contains(i)) {\n el.classList.remove(i);\n removed.push(i);\n }\n });\n forAdd.forEach((i) => {\n if (!el.classList.contains(i)) {\n el.classList.add(i);\n added.push(i);\n }\n });\n return () => {\n removed.forEach((i) => el.classList.add(i));\n added.forEach((i) => el.classList.remove(i));\n };\n}\n\n// packages/alpinejs/src/utils/styles.js\nfunction setStyles(el, value) {\n if (typeof value === \"object\" && value !== null) {\n return setStylesFromObject(el, value);\n }\n return setStylesFromString(el, value);\n}\nfunction setStylesFromObject(el, value) {\n let previousStyles = {};\n Object.entries(value).forEach(([key, value2]) => {\n previousStyles[key] = el.style[key];\n if (!key.startsWith(\"--\")) {\n key = kebabCase(key);\n }\n el.style.setProperty(key, value2);\n });\n setTimeout(() => {\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n });\n return () => {\n setStyles(el, previousStyles);\n };\n}\nfunction setStylesFromString(el, value) {\n let cache = el.getAttribute(\"style\", value);\n el.setAttribute(\"style\", value);\n return () => {\n el.setAttribute(\"style\", cache || \"\");\n };\n}\nfunction kebabCase(subject) {\n return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\n\n// packages/alpinejs/src/utils/once.js\nfunction once(callback, fallback = () => {\n}) {\n let called = false;\n return function() {\n if (!called) {\n called = true;\n callback.apply(this, arguments);\n } else {\n fallback.apply(this, arguments);\n }\n };\n}\n\n// packages/alpinejs/src/directives/x-transition.js\ndirective(\"transition\", (el, { value, modifiers, expression }, { evaluate: evaluate2 }) => {\n if (typeof expression === \"function\")\n expression = evaluate2(expression);\n if (expression === false)\n return;\n if (!expression || typeof expression === \"boolean\") {\n registerTransitionsFromHelper(el, modifiers, value);\n } else {\n registerTransitionsFromClassString(el, expression, value);\n }\n});\nfunction registerTransitionsFromClassString(el, classString, stage) {\n registerTransitionObject(el, setClasses, \"\");\n let directiveStorageMap = {\n \"enter\": (classes) => {\n el._x_transition.enter.during = classes;\n },\n \"enter-start\": (classes) => {\n el._x_transition.enter.start = classes;\n },\n \"enter-end\": (classes) => {\n el._x_transition.enter.end = classes;\n },\n \"leave\": (classes) => {\n el._x_transition.leave.during = classes;\n },\n \"leave-start\": (classes) => {\n el._x_transition.leave.start = classes;\n },\n \"leave-end\": (classes) => {\n el._x_transition.leave.end = classes;\n }\n };\n directiveStorageMap[stage](classString);\n}\nfunction registerTransitionsFromHelper(el, modifiers, stage) {\n registerTransitionObject(el, setStyles);\n let doesntSpecify = !modifiers.includes(\"in\") && !modifiers.includes(\"out\") && !stage;\n let transitioningIn = doesntSpecify || modifiers.includes(\"in\") || [\"enter\"].includes(stage);\n let transitioningOut = doesntSpecify || modifiers.includes(\"out\") || [\"leave\"].includes(stage);\n if (modifiers.includes(\"in\") && !doesntSpecify) {\n modifiers = modifiers.filter((i, index) => index < modifiers.indexOf(\"out\"));\n }\n if (modifiers.includes(\"out\") && !doesntSpecify) {\n modifiers = modifiers.filter((i, index) => index > modifiers.indexOf(\"out\"));\n }\n let wantsAll = !modifiers.includes(\"opacity\") && !modifiers.includes(\"scale\");\n let wantsOpacity = wantsAll || modifiers.includes(\"opacity\");\n let wantsScale = wantsAll || modifiers.includes(\"scale\");\n let opacityValue = wantsOpacity ? 0 : 1;\n let scaleValue = wantsScale ? modifierValue(modifiers, \"scale\", 95) / 100 : 1;\n let delay = modifierValue(modifiers, \"delay\", 0) / 1e3;\n let origin = modifierValue(modifiers, \"origin\", \"center\");\n let property = \"opacity, transform\";\n let durationIn = modifierValue(modifiers, \"duration\", 150) / 1e3;\n let durationOut = modifierValue(modifiers, \"duration\", 75) / 1e3;\n let easing = `cubic-bezier(0.4, 0.0, 0.2, 1)`;\n if (transitioningIn) {\n el._x_transition.enter.during = {\n transformOrigin: origin,\n transitionDelay: `${delay}s`,\n transitionProperty: property,\n transitionDuration: `${durationIn}s`,\n transitionTimingFunction: easing\n };\n el._x_transition.enter.start = {\n opacity: opacityValue,\n transform: `scale(${scaleValue})`\n };\n el._x_transition.enter.end = {\n opacity: 1,\n transform: `scale(1)`\n };\n }\n if (transitioningOut) {\n el._x_transition.leave.during = {\n transformOrigin: origin,\n transitionDelay: `${delay}s`,\n transitionProperty: property,\n transitionDuration: `${durationOut}s`,\n transitionTimingFunction: easing\n };\n el._x_transition.leave.start = {\n opacity: 1,\n transform: `scale(1)`\n };\n el._x_transition.leave.end = {\n opacity: opacityValue,\n transform: `scale(${scaleValue})`\n };\n }\n}\nfunction registerTransitionObject(el, setFunction, defaultValue = {}) {\n if (!el._x_transition)\n el._x_transition = {\n enter: { during: defaultValue, start: defaultValue, end: defaultValue },\n leave: { during: defaultValue, start: defaultValue, end: defaultValue },\n in(before = () => {\n }, after = () => {\n }) {\n transition(el, setFunction, {\n during: this.enter.during,\n start: this.enter.start,\n end: this.enter.end\n }, before, after);\n },\n out(before = () => {\n }, after = () => {\n }) {\n transition(el, setFunction, {\n during: this.leave.during,\n start: this.leave.start,\n end: this.leave.end\n }, before, after);\n }\n };\n}\nwindow.Element.prototype._x_toggleAndCascadeWithTransitions = function(el, value, show, hide) {\n const nextTick2 = document.visibilityState === \"visible\" ? requestAnimationFrame : setTimeout;\n let clickAwayCompatibleShow = () => nextTick2(show);\n if (value) {\n if (el._x_transition && (el._x_transition.enter || el._x_transition.leave)) {\n el._x_transition.enter && (Object.entries(el._x_transition.enter.during).length || Object.entries(el._x_transition.enter.start).length || Object.entries(el._x_transition.enter.end).length) ? el._x_transition.in(show) : clickAwayCompatibleShow();\n } else {\n el._x_transition ? el._x_transition.in(show) : clickAwayCompatibleShow();\n }\n return;\n }\n el._x_hidePromise = el._x_transition ? new Promise((resolve, reject) => {\n el._x_transition.out(() => {\n }, () => resolve(hide));\n el._x_transitioning && el._x_transitioning.beforeCancel(() => reject({ isFromCancelledTransition: true }));\n }) : Promise.resolve(hide);\n queueMicrotask(() => {\n let closest = closestHide(el);\n if (closest) {\n if (!closest._x_hideChildren)\n closest._x_hideChildren = [];\n closest._x_hideChildren.push(el);\n } else {\n nextTick2(() => {\n let hideAfterChildren = (el2) => {\n let carry = Promise.all([\n el2._x_hidePromise,\n ...(el2._x_hideChildren || []).map(hideAfterChildren)\n ]).then(([i]) => i?.());\n delete el2._x_hidePromise;\n delete el2._x_hideChildren;\n return carry;\n };\n hideAfterChildren(el).catch((e) => {\n if (!e.isFromCancelledTransition)\n throw e;\n });\n });\n }\n });\n};\nfunction closestHide(el) {\n let parent = el.parentNode;\n if (!parent)\n return;\n return parent._x_hidePromise ? parent : closestHide(parent);\n}\nfunction transition(el, setFunction, { during, start: start2, end } = {}, before = () => {\n}, after = () => {\n}) {\n if (el._x_transitioning)\n el._x_transitioning.cancel();\n if (Object.keys(during).length === 0 && Object.keys(start2).length === 0 && Object.keys(end).length === 0) {\n before();\n after();\n return;\n }\n let undoStart, undoDuring, undoEnd;\n performTransition(el, {\n start() {\n undoStart = setFunction(el, start2);\n },\n during() {\n undoDuring = setFunction(el, during);\n },\n before,\n end() {\n undoStart();\n undoEnd = setFunction(el, end);\n },\n after,\n cleanup() {\n undoDuring();\n undoEnd();\n }\n });\n}\nfunction performTransition(el, stages) {\n let interrupted, reachedBefore, reachedEnd;\n let finish = once(() => {\n mutateDom(() => {\n interrupted = true;\n if (!reachedBefore)\n stages.before();\n if (!reachedEnd) {\n stages.end();\n releaseNextTicks();\n }\n stages.after();\n if (el.isConnected)\n stages.cleanup();\n delete el._x_transitioning;\n });\n });\n el._x_transitioning = {\n beforeCancels: [],\n beforeCancel(callback) {\n this.beforeCancels.push(callback);\n },\n cancel: once(function() {\n while (this.beforeCancels.length) {\n this.beforeCancels.shift()();\n }\n ;\n finish();\n }),\n finish\n };\n mutateDom(() => {\n stages.start();\n stages.during();\n });\n holdNextTicks();\n requestAnimationFrame(() => {\n if (interrupted)\n return;\n let duration = Number(getComputedStyle(el).transitionDuration.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n let delay = Number(getComputedStyle(el).transitionDelay.replace(/,.*/, \"\").replace(\"s\", \"\")) * 1e3;\n if (duration === 0)\n duration = Number(getComputedStyle(el).animationDuration.replace(\"s\", \"\")) * 1e3;\n mutateDom(() => {\n stages.before();\n });\n reachedBefore = true;\n requestAnimationFrame(() => {\n if (interrupted)\n return;\n mutateDom(() => {\n stages.end();\n });\n releaseNextTicks();\n setTimeout(el._x_transitioning.finish, duration + delay);\n reachedEnd = true;\n });\n });\n}\nfunction modifierValue(modifiers, key, fallback) {\n if (modifiers.indexOf(key) === -1)\n return fallback;\n const rawValue = modifiers[modifiers.indexOf(key) + 1];\n if (!rawValue)\n return fallback;\n if (key === \"scale\") {\n if (isNaN(rawValue))\n return fallback;\n }\n if (key === \"duration\" || key === \"delay\") {\n let match = rawValue.match(/([0-9]+)ms/);\n if (match)\n return match[1];\n }\n if (key === \"origin\") {\n if ([\"top\", \"right\", \"left\", \"center\", \"bottom\"].includes(modifiers[modifiers.indexOf(key) + 2])) {\n return [rawValue, modifiers[modifiers.indexOf(key) + 2]].join(\" \");\n }\n }\n return rawValue;\n}\n\n// packages/alpinejs/src/clone.js\nvar isCloning = false;\nfunction skipDuringClone(callback, fallback = () => {\n}) {\n return (...args) => isCloning ? fallback(...args) : callback(...args);\n}\nfunction onlyDuringClone(callback) {\n return (...args) => isCloning && callback(...args);\n}\nvar interceptors = [];\nfunction interceptClone(callback) {\n interceptors.push(callback);\n}\nfunction cloneNode(from, to) {\n interceptors.forEach((i) => i(from, to));\n isCloning = true;\n dontRegisterReactiveSideEffects(() => {\n initTree(to, (el, callback) => {\n callback(el, () => {\n });\n });\n });\n isCloning = false;\n}\nvar isCloningLegacy = false;\nfunction clone(oldEl, newEl) {\n if (!newEl._x_dataStack)\n newEl._x_dataStack = oldEl._x_dataStack;\n isCloning = true;\n isCloningLegacy = true;\n dontRegisterReactiveSideEffects(() => {\n cloneTree(newEl);\n });\n isCloning = false;\n isCloningLegacy = false;\n}\nfunction cloneTree(el) {\n let hasRunThroughFirstEl = false;\n let shallowWalker = (el2, callback) => {\n walk(el2, (el3, skip) => {\n if (hasRunThroughFirstEl && isRoot(el3))\n return skip();\n hasRunThroughFirstEl = true;\n callback(el3, skip);\n });\n };\n initTree(el, shallowWalker);\n}\nfunction dontRegisterReactiveSideEffects(callback) {\n let cache = effect;\n overrideEffect((callback2, el) => {\n let storedEffect = cache(callback2);\n release(storedEffect);\n return () => {\n };\n });\n callback();\n overrideEffect(cache);\n}\n\n// packages/alpinejs/src/utils/bind.js\nfunction bind(el, name, value, modifiers = []) {\n if (!el._x_bindings)\n el._x_bindings = reactive({});\n el._x_bindings[name] = value;\n name = modifiers.includes(\"camel\") ? camelCase(name) : name;\n switch (name) {\n case \"value\":\n bindInputValue(el, value);\n break;\n case \"style\":\n bindStyles(el, value);\n break;\n case \"class\":\n bindClasses(el, value);\n break;\n case \"selected\":\n case \"checked\":\n bindAttributeAndProperty(el, name, value);\n break;\n default:\n bindAttribute(el, name, value);\n break;\n }\n}\nfunction bindInputValue(el, value) {\n if (isRadio(el)) {\n if (el.attributes.value === void 0) {\n el.value = value;\n }\n if (window.fromModel) {\n if (typeof value === \"boolean\") {\n el.checked = safeParseBoolean(el.value) === value;\n } else {\n el.checked = checkedAttrLooseCompare(el.value, value);\n }\n }\n } else if (isCheckbox(el)) {\n if (Number.isInteger(value)) {\n el.value = value;\n } else if (!Array.isArray(value) && typeof value !== \"boolean\" && ![null, void 0].includes(value)) {\n el.value = String(value);\n } else {\n if (Array.isArray(value)) {\n el.checked = value.some((val) => checkedAttrLooseCompare(val, el.value));\n } else {\n el.checked = !!value;\n }\n }\n } else if (el.tagName === \"SELECT\") {\n updateSelect(el, value);\n } else {\n if (el.value === value)\n return;\n el.value = value === void 0 ? \"\" : value;\n }\n}\nfunction bindClasses(el, value) {\n if (el._x_undoAddedClasses)\n el._x_undoAddedClasses();\n el._x_undoAddedClasses = setClasses(el, value);\n}\nfunction bindStyles(el, value) {\n if (el._x_undoAddedStyles)\n el._x_undoAddedStyles();\n el._x_undoAddedStyles = setStyles(el, value);\n}\nfunction bindAttributeAndProperty(el, name, value) {\n bindAttribute(el, name, value);\n setPropertyIfChanged(el, name, value);\n}\nfunction bindAttribute(el, name, value) {\n if ([null, void 0, false].includes(value) && attributeShouldntBePreservedIfFalsy(name)) {\n el.removeAttribute(name);\n } else {\n if (isBooleanAttr(name))\n value = name;\n setIfChanged(el, name, value);\n }\n}\nfunction setIfChanged(el, attrName, value) {\n if (el.getAttribute(attrName) != value) {\n el.setAttribute(attrName, value);\n }\n}\nfunction setPropertyIfChanged(el, propName, value) {\n if (el[propName] !== value) {\n el[propName] = value;\n }\n}\nfunction updateSelect(el, value) {\n const arrayWrappedValue = [].concat(value).map((value2) => {\n return value2 + \"\";\n });\n Array.from(el.options).forEach((option) => {\n option.selected = arrayWrappedValue.includes(option.value);\n });\n}\nfunction camelCase(subject) {\n return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction checkedAttrLooseCompare(valueA, valueB) {\n return valueA == valueB;\n}\nfunction safeParseBoolean(rawValue) {\n if ([1, \"1\", \"true\", \"on\", \"yes\", true].includes(rawValue)) {\n return true;\n }\n if ([0, \"0\", \"false\", \"off\", \"no\", false].includes(rawValue)) {\n return false;\n }\n return rawValue ? Boolean(rawValue) : null;\n}\nvar booleanAttributes = /* @__PURE__ */ new Set([\n \"allowfullscreen\",\n \"async\",\n \"autofocus\",\n \"autoplay\",\n \"checked\",\n \"controls\",\n \"default\",\n \"defer\",\n \"disabled\",\n \"formnovalidate\",\n \"inert\",\n \"ismap\",\n \"itemscope\",\n \"loop\",\n \"multiple\",\n \"muted\",\n \"nomodule\",\n \"novalidate\",\n \"open\",\n \"playsinline\",\n \"readonly\",\n \"required\",\n \"reversed\",\n \"selected\",\n \"shadowrootclonable\",\n \"shadowrootdelegatesfocus\",\n \"shadowrootserializable\"\n]);\nfunction isBooleanAttr(attrName) {\n return booleanAttributes.has(attrName);\n}\nfunction attributeShouldntBePreservedIfFalsy(name) {\n return ![\"aria-pressed\", \"aria-checked\", \"aria-expanded\", \"aria-selected\"].includes(name);\n}\nfunction getBinding(el, name, fallback) {\n if (el._x_bindings && el._x_bindings[name] !== void 0)\n return el._x_bindings[name];\n return getAttributeBinding(el, name, fallback);\n}\nfunction extractProp(el, name, fallback, extract = true) {\n if (el._x_bindings && el._x_bindings[name] !== void 0)\n return el._x_bindings[name];\n if (el._x_inlineBindings && el._x_inlineBindings[name] !== void 0) {\n let binding = el._x_inlineBindings[name];\n binding.extract = extract;\n return dontAutoEvaluateFunctions(() => {\n return evaluate(el, binding.expression);\n });\n }\n return getAttributeBinding(el, name, fallback);\n}\nfunction getAttributeBinding(el, name, fallback) {\n let attr = el.getAttribute(name);\n if (attr === null)\n return typeof fallback === \"function\" ? fallback() : fallback;\n if (attr === \"\")\n return true;\n if (isBooleanAttr(name)) {\n return !![name, \"true\"].includes(attr);\n }\n return attr;\n}\nfunction isCheckbox(el) {\n return el.type === \"checkbox\" || el.localName === \"ui-checkbox\" || el.localName === \"ui-switch\";\n}\nfunction isRadio(el) {\n return el.type === \"radio\" || el.localName === \"ui-radio\";\n}\n\n// packages/alpinejs/src/utils/debounce.js\nfunction debounce(func, wait) {\n var timeout;\n return function() {\n var context = this, args = arguments;\n var later = function() {\n timeout = null;\n func.apply(context, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n\n// packages/alpinejs/src/utils/throttle.js\nfunction throttle(func, limit) {\n let inThrottle;\n return function() {\n let context = this, args = arguments;\n if (!inThrottle) {\n func.apply(context, args);\n inThrottle = true;\n setTimeout(() => inThrottle = false, limit);\n }\n };\n}\n\n// packages/alpinejs/src/entangle.js\nfunction entangle({ get: outerGet, set: outerSet }, { get: innerGet, set: innerSet }) {\n let firstRun = true;\n let outerHash;\n let innerHash;\n let reference = effect(() => {\n let outer = outerGet();\n let inner = innerGet();\n if (firstRun) {\n innerSet(cloneIfObject(outer));\n firstRun = false;\n } else {\n let outerHashLatest = JSON.stringify(outer);\n let innerHashLatest = JSON.stringify(inner);\n if (outerHashLatest !== outerHash) {\n innerSet(cloneIfObject(outer));\n } else if (outerHashLatest !== innerHashLatest) {\n outerSet(cloneIfObject(inner));\n } else {\n }\n }\n outerHash = JSON.stringify(outerGet());\n innerHash = JSON.stringify(innerGet());\n });\n return () => {\n release(reference);\n };\n}\nfunction cloneIfObject(value) {\n return typeof value === \"object\" ? JSON.parse(JSON.stringify(value)) : value;\n}\n\n// packages/alpinejs/src/plugin.js\nfunction plugin(callback) {\n let callbacks = Array.isArray(callback) ? callback : [callback];\n callbacks.forEach((i) => i(alpine_default));\n}\n\n// packages/alpinejs/src/store.js\nvar stores = {};\nvar isReactive = false;\nfunction store(name, value) {\n if (!isReactive) {\n stores = reactive(stores);\n isReactive = true;\n }\n if (value === void 0) {\n return stores[name];\n }\n stores[name] = value;\n initInterceptors(stores[name]);\n if (typeof value === \"object\" && value !== null && value.hasOwnProperty(\"init\") && typeof value.init === \"function\") {\n stores[name].init();\n }\n}\nfunction getStores() {\n return stores;\n}\n\n// packages/alpinejs/src/binds.js\nvar binds = {};\nfunction bind2(name, bindings) {\n let getBindings = typeof bindings !== \"function\" ? () => bindings : bindings;\n if (name instanceof Element) {\n return applyBindingsObject(name, getBindings());\n } else {\n binds[name] = getBindings;\n }\n return () => {\n };\n}\nfunction injectBindingProviders(obj) {\n Object.entries(binds).forEach(([name, callback]) => {\n Object.defineProperty(obj, name, {\n get() {\n return (...args) => {\n return callback(...args);\n };\n }\n });\n });\n return obj;\n}\nfunction applyBindingsObject(el, obj, original) {\n let cleanupRunners = [];\n while (cleanupRunners.length)\n cleanupRunners.pop()();\n let attributes = Object.entries(obj).map(([name, value]) => ({ name, value }));\n let staticAttributes = attributesOnly(attributes);\n attributes = attributes.map((attribute) => {\n if (staticAttributes.find((attr) => attr.name === attribute.name)) {\n return {\n name: `x-bind:${attribute.name}`,\n value: `\"${attribute.value}\"`\n };\n }\n return attribute;\n });\n directives(el, attributes, original).map((handle) => {\n cleanupRunners.push(handle.runCleanups);\n handle();\n });\n return () => {\n while (cleanupRunners.length)\n cleanupRunners.pop()();\n };\n}\n\n// packages/alpinejs/src/datas.js\nvar datas = {};\nfunction data(name, callback) {\n datas[name] = callback;\n}\nfunction injectDataProviders(obj, context) {\n Object.entries(datas).forEach(([name, callback]) => {\n Object.defineProperty(obj, name, {\n get() {\n return (...args) => {\n return callback.bind(context)(...args);\n };\n },\n enumerable: false\n });\n });\n return obj;\n}\n\n// packages/alpinejs/src/alpine.js\nvar Alpine = {\n get reactive() {\n return reactive;\n },\n get release() {\n return release;\n },\n get effect() {\n return effect;\n },\n get raw() {\n return raw;\n },\n version: \"3.14.8\",\n flushAndStopDeferringMutations,\n dontAutoEvaluateFunctions,\n disableEffectScheduling,\n startObservingMutations,\n stopObservingMutations,\n setReactivityEngine,\n onAttributeRemoved,\n onAttributesAdded,\n closestDataStack,\n skipDuringClone,\n onlyDuringClone,\n addRootSelector,\n addInitSelector,\n interceptClone,\n addScopeToNode,\n deferMutations,\n mapAttributes,\n evaluateLater,\n interceptInit,\n setEvaluator,\n mergeProxies,\n extractProp,\n findClosest,\n onElRemoved,\n closestRoot,\n destroyTree,\n interceptor,\n // INTERNAL: not public API and is subject to change without major release.\n transition,\n // INTERNAL\n setStyles,\n // INTERNAL\n mutateDom,\n directive,\n entangle,\n throttle,\n debounce,\n evaluate,\n initTree,\n nextTick,\n prefixed: prefix,\n prefix: setPrefix,\n plugin,\n magic,\n store,\n start,\n clone,\n // INTERNAL\n cloneNode,\n // INTERNAL\n bound: getBinding,\n $data: scope,\n watch,\n walk,\n data,\n bind: bind2\n};\nvar alpine_default = Alpine;\n\n// node_modules/@vue/shared/dist/shared.esm-bundler.js\nfunction makeMap(str, expectsLowerCase) {\n const map = /* @__PURE__ */ Object.create(null);\n const list = str.split(\",\");\n for (let i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];\n}\nvar specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nvar isBooleanAttr2 = /* @__PURE__ */ makeMap(specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`);\nvar EMPTY_OBJ = true ? Object.freeze({}) : {};\nvar EMPTY_ARR = true ? Object.freeze([]) : [];\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar hasOwn = (val, key) => hasOwnProperty.call(val, key);\nvar isArray = Array.isArray;\nvar isMap = (val) => toTypeString(val) === \"[object Map]\";\nvar isString = (val) => typeof val === \"string\";\nvar isSymbol = (val) => typeof val === \"symbol\";\nvar isObject = (val) => val !== null && typeof val === \"object\";\nvar objectToString = Object.prototype.toString;\nvar toTypeString = (value) => objectToString.call(value);\nvar toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nvar isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nvar cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nvar capitalize = cacheStringFunction((str) => str.charAt(0).toUpperCase() + str.slice(1));\nvar toHandlerKey = cacheStringFunction((str) => str ? `on${capitalize(str)}` : ``);\nvar hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue);\n\n// node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js\nvar targetMap = /* @__PURE__ */ new WeakMap();\nvar effectStack = [];\nvar activeEffect;\nvar ITERATE_KEY = Symbol(true ? \"iterate\" : \"\");\nvar MAP_KEY_ITERATE_KEY = Symbol(true ? \"Map key iterate\" : \"\");\nfunction isEffect(fn) {\n return fn && fn._isEffect === true;\n}\nfunction effect2(fn, options = EMPTY_OBJ) {\n if (isEffect(fn)) {\n fn = fn.raw;\n }\n const effect3 = createReactiveEffect(fn, options);\n if (!options.lazy) {\n effect3();\n }\n return effect3;\n}\nfunction stop(effect3) {\n if (effect3.active) {\n cleanup(effect3);\n if (effect3.options.onStop) {\n effect3.options.onStop();\n }\n effect3.active = false;\n }\n}\nvar uid = 0;\nfunction createReactiveEffect(fn, options) {\n const effect3 = function reactiveEffect() {\n if (!effect3.active) {\n return fn();\n }\n if (!effectStack.includes(effect3)) {\n cleanup(effect3);\n try {\n enableTracking();\n effectStack.push(effect3);\n activeEffect = effect3;\n return fn();\n } finally {\n effectStack.pop();\n resetTracking();\n activeEffect = effectStack[effectStack.length - 1];\n }\n }\n };\n effect3.id = uid++;\n effect3.allowRecurse = !!options.allowRecurse;\n effect3._isEffect = true;\n effect3.active = true;\n effect3.raw = fn;\n effect3.deps = [];\n effect3.options = options;\n return effect3;\n}\nfunction cleanup(effect3) {\n const { deps } = effect3;\n if (deps.length) {\n for (let i = 0; i < deps.length; i++) {\n deps[i].delete(effect3);\n }\n deps.length = 0;\n }\n}\nvar shouldTrack = true;\nvar trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction track(target, type, key) {\n if (!shouldTrack || activeEffect === void 0) {\n return;\n }\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = /* @__PURE__ */ new Set());\n }\n if (!dep.has(activeEffect)) {\n dep.add(activeEffect);\n activeEffect.deps.push(dep);\n if (activeEffect.options.onTrack) {\n activeEffect.options.onTrack({\n effect: activeEffect,\n target,\n type,\n key\n });\n }\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n const effects = /* @__PURE__ */ new Set();\n const add2 = (effectsToAdd) => {\n if (effectsToAdd) {\n effectsToAdd.forEach((effect3) => {\n if (effect3 !== activeEffect || effect3.allowRecurse) {\n effects.add(effect3);\n }\n });\n }\n };\n if (type === \"clear\") {\n depsMap.forEach(add2);\n } else if (key === \"length\" && isArray(target)) {\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || key2 >= newValue) {\n add2(dep);\n }\n });\n } else {\n if (key !== void 0) {\n add2(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n add2(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n add2(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n add2(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n add2(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n add2(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n const run = (effect3) => {\n if (effect3.options.onTrigger) {\n effect3.options.onTrigger({\n effect: effect3,\n target,\n key,\n type,\n newValue,\n oldValue,\n oldTarget\n });\n }\n if (effect3.options.scheduler) {\n effect3.options.scheduler(effect3);\n } else {\n effect3();\n }\n };\n effects.forEach(run);\n}\nvar isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nvar builtInSymbols = new Set(Object.getOwnPropertyNames(Symbol).map((key) => Symbol[key]).filter(isSymbol));\nvar get2 = /* @__PURE__ */ createGetter();\nvar readonlyGet = /* @__PURE__ */ createGetter(true);\nvar arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n const res = toRaw(this)[key].apply(this, args);\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction createGetter(isReadonly = false, shallow = false) {\n return function get3(target, key, receiver) {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\" && receiver === (isReadonly ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {\n return target;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly) {\n track(target, \"get\", key);\n }\n if (shallow) {\n return res;\n }\n if (isRef(res)) {\n const shouldUnwrap = !targetIsArray || !isIntegerKey(key);\n return shouldUnwrap ? res.value : res;\n }\n if (isObject(res)) {\n return isReadonly ? readonly(res) : reactive2(res);\n }\n return res;\n };\n}\nvar set2 = /* @__PURE__ */ createSetter();\nfunction createSetter(shallow = false) {\n return function set3(target, key, value, receiver) {\n let oldValue = target[key];\n if (!shallow) {\n value = toRaw(value);\n oldValue = toRaw(oldValue);\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n };\n}\nfunction deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n}\nfunction ownKeys(target) {\n track(target, \"iterate\", isArray(target) ? \"length\" : ITERATE_KEY);\n return Reflect.ownKeys(target);\n}\nvar mutableHandlers = {\n get: get2,\n set: set2,\n deleteProperty,\n has,\n ownKeys\n};\nvar readonlyHandlers = {\n get: readonlyGet,\n set(target, key) {\n if (true) {\n console.warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n },\n deleteProperty(target, key) {\n if (true) {\n console.warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\n }\n return true;\n }\n};\nvar toReactive = (value) => isObject(value) ? reactive2(value) : value;\nvar toReadonly = (value) => isObject(value) ? readonly(value) : value;\nvar toShallow = (value) => value;\nvar getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\n target = target[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (key !== rawKey) {\n !isReadonly && track(rawTarget, \"get\", key);\n }\n !isReadonly && track(rawTarget, \"get\", rawKey);\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has$1(key, isReadonly = false) {\n const target = this[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (key !== rawKey) {\n !isReadonly && track(rawTarget, \"has\", key);\n }\n !isReadonly && track(rawTarget, \"has\", rawKey);\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\n \"__v_raw\"\n /* RAW */\n ];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set$1(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (true) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get3.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get3 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (true) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get3 ? get3.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = true ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\n \"__v_raw\"\n /* RAW */\n ];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (true) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\n }\n return type === \"delete\" ? false : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get$1(this, key);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get$1(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has: has$1,\n add,\n set: set$1,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\n \"add\"\n /* ADD */\n ),\n set: createReadonlyMethod(\n \"set\"\n /* SET */\n ),\n delete: createReadonlyMethod(\n \"delete\"\n /* DELETE */\n ),\n clear: createReadonlyMethod(\n \"clear\"\n /* CLEAR */\n ),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get$1(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has$1.call(this, key, true);\n },\n add: createReadonlyMethod(\n \"add\"\n /* ADD */\n ),\n set: createReadonlyMethod(\n \"set\"\n /* SET */\n ),\n delete: createReadonlyMethod(\n \"delete\"\n /* DELETE */\n ),\n clear: createReadonlyMethod(\n \"clear\"\n /* CLEAR */\n ),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(method, false, false);\n readonlyInstrumentations2[method] = createIterableMethod(method, true, false);\n shallowInstrumentations2[method] = createIterableMethod(method, false, true);\n shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nvar [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);\n };\n}\nvar mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nvar readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n console.warn(`Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`);\n }\n}\nvar reactiveMap = /* @__PURE__ */ new WeakMap();\nvar shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nvar readonlyMap = /* @__PURE__ */ new WeakMap();\nvar shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2;\n default:\n return 0;\n }\n}\nfunction getTargetType(value) {\n return value[\n \"__v_skip\"\n /* SKIP */\n ] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));\n}\nfunction reactive2(target) {\n if (target && target[\n \"__v_isReadonly\"\n /* IS_READONLY */\n ]) {\n return target;\n }\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\n}\nfunction readonly(target) {\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\n}\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (true) {\n console.warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\n \"__v_raw\"\n /* RAW */\n ] && !(isReadonly && target[\n \"__v_isReactive\"\n /* IS_REACTIVE */\n ])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0) {\n return target;\n }\n const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction toRaw(observed) {\n return observed && toRaw(observed[\n \"__v_raw\"\n /* RAW */\n ]) || observed;\n}\nfunction isRef(r) {\n return Boolean(r && r.__v_isRef === true);\n}\n\n// packages/alpinejs/src/magics/$nextTick.js\nmagic(\"nextTick\", () => nextTick);\n\n// packages/alpinejs/src/magics/$dispatch.js\nmagic(\"dispatch\", (el) => dispatch.bind(dispatch, el));\n\n// packages/alpinejs/src/magics/$watch.js\nmagic(\"watch\", (el, { evaluateLater: evaluateLater2, cleanup: cleanup2 }) => (key, callback) => {\n let evaluate2 = evaluateLater2(key);\n let getter = () => {\n let value;\n evaluate2((i) => value = i);\n return value;\n };\n let unwatch = watch(getter, callback);\n cleanup2(unwatch);\n});\n\n// packages/alpinejs/src/magics/$store.js\nmagic(\"store\", getStores);\n\n// packages/alpinejs/src/magics/$data.js\nmagic(\"data\", (el) => scope(el));\n\n// packages/alpinejs/src/magics/$root.js\nmagic(\"root\", (el) => closestRoot(el));\n\n// packages/alpinejs/src/magics/$refs.js\nmagic(\"refs\", (el) => {\n if (el._x_refs_proxy)\n return el._x_refs_proxy;\n el._x_refs_proxy = mergeProxies(getArrayOfRefObject(el));\n return el._x_refs_proxy;\n});\nfunction getArrayOfRefObject(el) {\n let refObjects = [];\n findClosest(el, (i) => {\n if (i._x_refs)\n refObjects.push(i._x_refs);\n });\n return refObjects;\n}\n\n// packages/alpinejs/src/ids.js\nvar globalIdMemo = {};\nfunction findAndIncrementId(name) {\n if (!globalIdMemo[name])\n globalIdMemo[name] = 0;\n return ++globalIdMemo[name];\n}\nfunction closestIdRoot(el, name) {\n return findClosest(el, (element) => {\n if (element._x_ids && element._x_ids[name])\n return true;\n });\n}\nfunction setIdRoot(el, name) {\n if (!el._x_ids)\n el._x_ids = {};\n if (!el._x_ids[name])\n el._x_ids[name] = findAndIncrementId(name);\n}\n\n// packages/alpinejs/src/magics/$id.js\nmagic(\"id\", (el, { cleanup: cleanup2 }) => (name, key = null) => {\n let cacheKey = `${name}${key ? `-${key}` : \"\"}`;\n return cacheIdByNameOnElement(el, cacheKey, cleanup2, () => {\n let root = closestIdRoot(el, name);\n let id = root ? root._x_ids[name] : findAndIncrementId(name);\n return key ? `${name}-${id}-${key}` : `${name}-${id}`;\n });\n});\ninterceptClone((from, to) => {\n if (from._x_id) {\n to._x_id = from._x_id;\n }\n});\nfunction cacheIdByNameOnElement(el, cacheKey, cleanup2, callback) {\n if (!el._x_id)\n el._x_id = {};\n if (el._x_id[cacheKey])\n return el._x_id[cacheKey];\n let output = callback();\n el._x_id[cacheKey] = output;\n cleanup2(() => {\n delete el._x_id[cacheKey];\n });\n return output;\n}\n\n// packages/alpinejs/src/magics/$el.js\nmagic(\"el\", (el) => el);\n\n// packages/alpinejs/src/magics/index.js\nwarnMissingPluginMagic(\"Focus\", \"focus\", \"focus\");\nwarnMissingPluginMagic(\"Persist\", \"persist\", \"persist\");\nfunction warnMissingPluginMagic(name, magicName, slug) {\n magic(magicName, (el) => warn(`You can't use [$${magicName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/alpinejs/src/directives/x-modelable.js\ndirective(\"modelable\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2, cleanup: cleanup2 }) => {\n let func = evaluateLater2(expression);\n let innerGet = () => {\n let result;\n func((i) => result = i);\n return result;\n };\n let evaluateInnerSet = evaluateLater2(`${expression} = __placeholder`);\n let innerSet = (val) => evaluateInnerSet(() => {\n }, { scope: { \"__placeholder\": val } });\n let initialValue = innerGet();\n innerSet(initialValue);\n queueMicrotask(() => {\n if (!el._x_model)\n return;\n el._x_removeModelListeners[\"default\"]();\n let outerGet = el._x_model.get;\n let outerSet = el._x_model.set;\n let releaseEntanglement = entangle(\n {\n get() {\n return outerGet();\n },\n set(value) {\n outerSet(value);\n }\n },\n {\n get() {\n return innerGet();\n },\n set(value) {\n innerSet(value);\n }\n }\n );\n cleanup2(releaseEntanglement);\n });\n});\n\n// packages/alpinejs/src/directives/x-teleport.js\ndirective(\"teleport\", (el, { modifiers, expression }, { cleanup: cleanup2 }) => {\n if (el.tagName.toLowerCase() !== \"template\")\n warn(\"x-teleport can only be used on a <template> tag\", el);\n let target = getTarget(expression);\n let clone2 = el.content.cloneNode(true).firstElementChild;\n el._x_teleport = clone2;\n clone2._x_teleportBack = el;\n el.setAttribute(\"data-teleport-template\", true);\n clone2.setAttribute(\"data-teleport-target\", true);\n if (el._x_forwardEvents) {\n el._x_forwardEvents.forEach((eventName) => {\n clone2.addEventListener(eventName, (e) => {\n e.stopPropagation();\n el.dispatchEvent(new e.constructor(e.type, e));\n });\n });\n }\n addScopeToNode(clone2, {}, el);\n let placeInDom = (clone3, target2, modifiers2) => {\n if (modifiers2.includes(\"prepend\")) {\n target2.parentNode.insertBefore(clone3, target2);\n } else if (modifiers2.includes(\"append\")) {\n target2.parentNode.insertBefore(clone3, target2.nextSibling);\n } else {\n target2.appendChild(clone3);\n }\n };\n mutateDom(() => {\n placeInDom(clone2, target, modifiers);\n skipDuringClone(() => {\n initTree(clone2);\n })();\n });\n el._x_teleportPutBack = () => {\n let target2 = getTarget(expression);\n mutateDom(() => {\n placeInDom(el._x_teleport, target2, modifiers);\n });\n };\n cleanup2(\n () => mutateDom(() => {\n clone2.remove();\n destroyTree(clone2);\n })\n );\n});\nvar teleportContainerDuringClone = document.createElement(\"div\");\nfunction getTarget(expression) {\n let target = skipDuringClone(() => {\n return document.querySelector(expression);\n }, () => {\n return teleportContainerDuringClone;\n })();\n if (!target)\n warn(`Cannot find x-teleport element for selector: \"${expression}\"`);\n return target;\n}\n\n// packages/alpinejs/src/directives/x-ignore.js\nvar handler = () => {\n};\nhandler.inline = (el, { modifiers }, { cleanup: cleanup2 }) => {\n modifiers.includes(\"self\") ? el._x_ignoreSelf = true : el._x_ignore = true;\n cleanup2(() => {\n modifiers.includes(\"self\") ? delete el._x_ignoreSelf : delete el._x_ignore;\n });\n};\ndirective(\"ignore\", handler);\n\n// packages/alpinejs/src/directives/x-effect.js\ndirective(\"effect\", skipDuringClone((el, { expression }, { effect: effect3 }) => {\n effect3(evaluateLater(el, expression));\n}));\n\n// packages/alpinejs/src/utils/on.js\nfunction on(el, event, modifiers, callback) {\n let listenerTarget = el;\n let handler4 = (e) => callback(e);\n let options = {};\n let wrapHandler = (callback2, wrapper) => (e) => wrapper(callback2, e);\n if (modifiers.includes(\"dot\"))\n event = dotSyntax(event);\n if (modifiers.includes(\"camel\"))\n event = camelCase2(event);\n if (modifiers.includes(\"passive\"))\n options.passive = true;\n if (modifiers.includes(\"capture\"))\n options.capture = true;\n if (modifiers.includes(\"window\"))\n listenerTarget = window;\n if (modifiers.includes(\"document\"))\n listenerTarget = document;\n if (modifiers.includes(\"debounce\")) {\n let nextModifier = modifiers[modifiers.indexOf(\"debounce\") + 1] || \"invalid-wait\";\n let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n handler4 = debounce(handler4, wait);\n }\n if (modifiers.includes(\"throttle\")) {\n let nextModifier = modifiers[modifiers.indexOf(\"throttle\") + 1] || \"invalid-wait\";\n let wait = isNumeric(nextModifier.split(\"ms\")[0]) ? Number(nextModifier.split(\"ms\")[0]) : 250;\n handler4 = throttle(handler4, wait);\n }\n if (modifiers.includes(\"prevent\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.preventDefault();\n next(e);\n });\n if (modifiers.includes(\"stop\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.stopPropagation();\n next(e);\n });\n if (modifiers.includes(\"once\")) {\n handler4 = wrapHandler(handler4, (next, e) => {\n next(e);\n listenerTarget.removeEventListener(event, handler4, options);\n });\n }\n if (modifiers.includes(\"away\") || modifiers.includes(\"outside\")) {\n listenerTarget = document;\n handler4 = wrapHandler(handler4, (next, e) => {\n if (el.contains(e.target))\n return;\n if (e.target.isConnected === false)\n return;\n if (el.offsetWidth < 1 && el.offsetHeight < 1)\n return;\n if (el._x_isShown === false)\n return;\n next(e);\n });\n }\n if (modifiers.includes(\"self\"))\n handler4 = wrapHandler(handler4, (next, e) => {\n e.target === el && next(e);\n });\n if (isKeyEvent(event) || isClickEvent(event)) {\n handler4 = wrapHandler(handler4, (next, e) => {\n if (isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers)) {\n return;\n }\n next(e);\n });\n }\n listenerTarget.addEventListener(event, handler4, options);\n return () => {\n listenerTarget.removeEventListener(event, handler4, options);\n };\n}\nfunction dotSyntax(subject) {\n return subject.replace(/-/g, \".\");\n}\nfunction camelCase2(subject) {\n return subject.toLowerCase().replace(/-(\\w)/g, (match, char) => char.toUpperCase());\n}\nfunction isNumeric(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction kebabCase2(subject) {\n if ([\" \", \"_\"].includes(\n subject\n ))\n return subject;\n return subject.replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[_\\s]/, \"-\").toLowerCase();\n}\nfunction isKeyEvent(event) {\n return [\"keydown\", \"keyup\"].includes(event);\n}\nfunction isClickEvent(event) {\n return [\"contextmenu\", \"click\", \"mouse\"].some((i) => event.includes(i));\n}\nfunction isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) {\n let keyModifiers = modifiers.filter((i) => {\n return ![\"window\", \"document\", \"prevent\", \"stop\", \"once\", \"capture\", \"self\", \"away\", \"outside\", \"passive\"].includes(i);\n });\n if (keyModifiers.includes(\"debounce\")) {\n let debounceIndex = keyModifiers.indexOf(\"debounce\");\n keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n }\n if (keyModifiers.includes(\"throttle\")) {\n let debounceIndex = keyModifiers.indexOf(\"throttle\");\n keyModifiers.splice(debounceIndex, isNumeric((keyModifiers[debounceIndex + 1] || \"invalid-wait\").split(\"ms\")[0]) ? 2 : 1);\n }\n if (keyModifiers.length === 0)\n return false;\n if (keyModifiers.length === 1 && keyToModifiers(e.key).includes(keyModifiers[0]))\n return false;\n const systemKeyModifiers = [\"ctrl\", \"shift\", \"alt\", \"meta\", \"cmd\", \"super\"];\n const selectedSystemKeyModifiers = systemKeyModifiers.filter((modifier) => keyModifiers.includes(modifier));\n keyModifiers = keyModifiers.filter((i) => !selectedSystemKeyModifiers.includes(i));\n if (selectedSystemKeyModifiers.length > 0) {\n const activelyPressedKeyModifiers = selectedSystemKeyModifiers.filter((modifier) => {\n if (modifier === \"cmd\" || modifier === \"super\")\n modifier = \"meta\";\n return e[`${modifier}Key`];\n });\n if (activelyPressedKeyModifiers.length === selectedSystemKeyModifiers.length) {\n if (isClickEvent(e.type))\n return false;\n if (keyToModifiers(e.key).includes(keyModifiers[0]))\n return false;\n }\n }\n return true;\n}\nfunction keyToModifiers(key) {\n if (!key)\n return [];\n key = kebabCase2(key);\n let modifierToKeyMap = {\n \"ctrl\": \"control\",\n \"slash\": \"/\",\n \"space\": \" \",\n \"spacebar\": \" \",\n \"cmd\": \"meta\",\n \"esc\": \"escape\",\n \"up\": \"arrow-up\",\n \"down\": \"arrow-down\",\n \"left\": \"arrow-left\",\n \"right\": \"arrow-right\",\n \"period\": \".\",\n \"comma\": \",\",\n \"equal\": \"=\",\n \"minus\": \"-\",\n \"underscore\": \"_\"\n };\n modifierToKeyMap[key] = key;\n return Object.keys(modifierToKeyMap).map((modifier) => {\n if (modifierToKeyMap[modifier] === key)\n return modifier;\n }).filter((modifier) => modifier);\n}\n\n// packages/alpinejs/src/directives/x-model.js\ndirective(\"model\", (el, { modifiers, expression }, { effect: effect3, cleanup: cleanup2 }) => {\n let scopeTarget = el;\n if (modifiers.includes(\"parent\")) {\n scopeTarget = el.parentNode;\n }\n let evaluateGet = evaluateLater(scopeTarget, expression);\n let evaluateSet;\n if (typeof expression === \"string\") {\n evaluateSet = evaluateLater(scopeTarget, `${expression} = __placeholder`);\n } else if (typeof expression === \"function\" && typeof expression() === \"string\") {\n evaluateSet = evaluateLater(scopeTarget, `${expression()} = __placeholder`);\n } else {\n evaluateSet = () => {\n };\n }\n let getValue = () => {\n let result;\n evaluateGet((value) => result = value);\n return isGetterSetter(result) ? result.get() : result;\n };\n let setValue = (value) => {\n let result;\n evaluateGet((value2) => result = value2);\n if (isGetterSetter(result)) {\n result.set(value);\n } else {\n evaluateSet(() => {\n }, {\n scope: { \"__placeholder\": value }\n });\n }\n };\n if (typeof expression === \"string\" && el.type === \"radio\") {\n mutateDom(() => {\n if (!el.hasAttribute(\"name\"))\n el.setAttribute(\"name\", expression);\n });\n }\n var event = el.tagName.toLowerCase() === \"select\" || [\"checkbox\", \"radio\"].includes(el.type) || modifiers.includes(\"lazy\") ? \"change\" : \"input\";\n let removeListener = isCloning ? () => {\n } : on(el, event, modifiers, (e) => {\n setValue(getInputValue(el, modifiers, e, getValue()));\n });\n if (modifiers.includes(\"fill\")) {\n if ([void 0, null, \"\"].includes(getValue()) || isCheckbox(el) && Array.isArray(getValue()) || el.tagName.toLowerCase() === \"select\" && el.multiple) {\n setValue(\n getInputValue(el, modifiers, { target: el }, getValue())\n );\n }\n }\n if (!el._x_removeModelListeners)\n el._x_removeModelListeners = {};\n el._x_removeModelListeners[\"default\"] = removeListener;\n cleanup2(() => el._x_removeModelListeners[\"default\"]());\n if (el.form) {\n let removeResetListener = on(el.form, \"reset\", [], (e) => {\n nextTick(() => el._x_model && el._x_model.set(getInputValue(el, modifiers, { target: el }, getValue())));\n });\n cleanup2(() => removeResetListener());\n }\n el._x_model = {\n get() {\n return getValue();\n },\n set(value) {\n setValue(value);\n }\n };\n el._x_forceModelUpdate = (value) => {\n if (value === void 0 && typeof expression === \"string\" && expression.match(/\\./))\n value = \"\";\n window.fromModel = true;\n mutateDom(() => bind(el, \"value\", value));\n delete window.fromModel;\n };\n effect3(() => {\n let value = getValue();\n if (modifiers.includes(\"unintrusive\") && document.activeElement.isSameNode(el))\n return;\n el._x_forceModelUpdate(value);\n });\n});\nfunction getInputValue(el, modifiers, event, currentValue) {\n return mutateDom(() => {\n if (event instanceof CustomEvent && event.detail !== void 0)\n return event.detail !== null && event.detail !== void 0 ? event.detail : event.target.value;\n else if (isCheckbox(el)) {\n if (Array.isArray(currentValue)) {\n let newValue = null;\n if (modifiers.includes(\"number\")) {\n newValue = safeParseNumber(event.target.value);\n } else if (modifiers.includes(\"boolean\")) {\n newValue = safeParseBoolean(event.target.value);\n } else {\n newValue = event.target.value;\n }\n return event.target.checked ? currentValue.includes(newValue) ? currentValue : currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue));\n } else {\n return event.target.checked;\n }\n } else if (el.tagName.toLowerCase() === \"select\" && el.multiple) {\n if (modifiers.includes(\"number\")) {\n return Array.from(event.target.selectedOptions).map((option) => {\n let rawValue = option.value || option.text;\n return safeParseNumber(rawValue);\n });\n } else if (modifiers.includes(\"boolean\")) {\n return Array.from(event.target.selectedOptions).map((option) => {\n let rawValue = option.value || option.text;\n return safeParseBoolean(rawValue);\n });\n }\n return Array.from(event.target.selectedOptions).map((option) => {\n return option.value || option.text;\n });\n } else {\n let newValue;\n if (isRadio(el)) {\n if (event.target.checked) {\n newValue = event.target.value;\n } else {\n newValue = currentValue;\n }\n } else {\n newValue = event.target.value;\n }\n if (modifiers.includes(\"number\")) {\n return safeParseNumber(newValue);\n } else if (modifiers.includes(\"boolean\")) {\n return safeParseBoolean(newValue);\n } else if (modifiers.includes(\"trim\")) {\n return newValue.trim();\n } else {\n return newValue;\n }\n }\n });\n}\nfunction safeParseNumber(rawValue) {\n let number = rawValue ? parseFloat(rawValue) : null;\n return isNumeric2(number) ? number : rawValue;\n}\nfunction checkedAttrLooseCompare2(valueA, valueB) {\n return valueA == valueB;\n}\nfunction isNumeric2(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\nfunction isGetterSetter(value) {\n return value !== null && typeof value === \"object\" && typeof value.get === \"function\" && typeof value.set === \"function\";\n}\n\n// packages/alpinejs/src/directives/x-cloak.js\ndirective(\"cloak\", (el) => queueMicrotask(() => mutateDom(() => el.removeAttribute(prefix(\"cloak\")))));\n\n// packages/alpinejs/src/directives/x-init.js\naddInitSelector(() => `[${prefix(\"init\")}]`);\ndirective(\"init\", skipDuringClone((el, { expression }, { evaluate: evaluate2 }) => {\n if (typeof expression === \"string\") {\n return !!expression.trim() && evaluate2(expression, {}, false);\n }\n return evaluate2(expression, {}, false);\n}));\n\n// packages/alpinejs/src/directives/x-text.js\ndirective(\"text\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n let evaluate2 = evaluateLater2(expression);\n effect3(() => {\n evaluate2((value) => {\n mutateDom(() => {\n el.textContent = value;\n });\n });\n });\n});\n\n// packages/alpinejs/src/directives/x-html.js\ndirective(\"html\", (el, { expression }, { effect: effect3, evaluateLater: evaluateLater2 }) => {\n let evaluate2 = evaluateLater2(expression);\n effect3(() => {\n evaluate2((value) => {\n mutateDom(() => {\n el.innerHTML = value;\n el._x_ignoreSelf = true;\n initTree(el);\n delete el._x_ignoreSelf;\n });\n });\n });\n});\n\n// packages/alpinejs/src/directives/x-bind.js\nmapAttributes(startingWith(\":\", into(prefix(\"bind:\"))));\nvar handler2 = (el, { value, modifiers, expression, original }, { effect: effect3, cleanup: cleanup2 }) => {\n if (!value) {\n let bindingProviders = {};\n injectBindingProviders(bindingProviders);\n let getBindings = evaluateLater(el, expression);\n getBindings((bindings) => {\n applyBindingsObject(el, bindings, original);\n }, { scope: bindingProviders });\n return;\n }\n if (value === \"key\")\n return storeKeyForXFor(el, expression);\n if (el._x_inlineBindings && el._x_inlineBindings[value] && el._x_inlineBindings[value].extract) {\n return;\n }\n let evaluate2 = evaluateLater(el, expression);\n effect3(() => evaluate2((result) => {\n if (result === void 0 && typeof expression === \"string\" && expression.match(/\\./)) {\n result = \"\";\n }\n mutateDom(() => bind(el, value, result, modifiers));\n }));\n cleanup2(() => {\n el._x_undoAddedClasses && el._x_undoAddedClasses();\n el._x_undoAddedStyles && el._x_undoAddedStyles();\n });\n};\nhandler2.inline = (el, { value, modifiers, expression }) => {\n if (!value)\n return;\n if (!el._x_inlineBindings)\n el._x_inlineBindings = {};\n el._x_inlineBindings[value] = { expression, extract: false };\n};\ndirective(\"bind\", handler2);\nfunction storeKeyForXFor(el, expression) {\n el._x_keyExpression = expression;\n}\n\n// packages/alpinejs/src/directives/x-data.js\naddRootSelector(() => `[${prefix(\"data\")}]`);\ndirective(\"data\", (el, { expression }, { cleanup: cleanup2 }) => {\n if (shouldSkipRegisteringDataDuringClone(el))\n return;\n expression = expression === \"\" ? \"{}\" : expression;\n let magicContext = {};\n injectMagics(magicContext, el);\n let dataProviderContext = {};\n injectDataProviders(dataProviderContext, magicContext);\n let data2 = evaluate(el, expression, { scope: dataProviderContext });\n if (data2 === void 0 || data2 === true)\n data2 = {};\n injectMagics(data2, el);\n let reactiveData = reactive(data2);\n initInterceptors(reactiveData);\n let undo = addScopeToNode(el, reactiveData);\n reactiveData[\"init\"] && evaluate(el, reactiveData[\"init\"]);\n cleanup2(() => {\n reactiveData[\"destroy\"] && evaluate(el, reactiveData[\"destroy\"]);\n undo();\n });\n});\ninterceptClone((from, to) => {\n if (from._x_dataStack) {\n to._x_dataStack = from._x_dataStack;\n to.setAttribute(\"data-has-alpine-state\", true);\n }\n});\nfunction shouldSkipRegisteringDataDuringClone(el) {\n if (!isCloning)\n return false;\n if (isCloningLegacy)\n return true;\n return el.hasAttribute(\"data-has-alpine-state\");\n}\n\n// packages/alpinejs/src/directives/x-show.js\ndirective(\"show\", (el, { modifiers, expression }, { effect: effect3 }) => {\n let evaluate2 = evaluateLater(el, expression);\n if (!el._x_doHide)\n el._x_doHide = () => {\n mutateDom(() => {\n el.style.setProperty(\"display\", \"none\", modifiers.includes(\"important\") ? \"important\" : void 0);\n });\n };\n if (!el._x_doShow)\n el._x_doShow = () => {\n mutateDom(() => {\n if (el.style.length === 1 && el.style.display === \"none\") {\n el.removeAttribute(\"style\");\n } else {\n el.style.removeProperty(\"display\");\n }\n });\n };\n let hide = () => {\n el._x_doHide();\n el._x_isShown = false;\n };\n let show = () => {\n el._x_doShow();\n el._x_isShown = true;\n };\n let clickAwayCompatibleShow = () => setTimeout(show);\n let toggle = once(\n (value) => value ? show() : hide(),\n (value) => {\n if (typeof el._x_toggleAndCascadeWithTransitions === \"function\") {\n el._x_toggleAndCascadeWithTransitions(el, value, show, hide);\n } else {\n value ? clickAwayCompatibleShow() : hide();\n }\n }\n );\n let oldValue;\n let firstTime = true;\n effect3(() => evaluate2((value) => {\n if (!firstTime && value === oldValue)\n return;\n if (modifiers.includes(\"immediate\"))\n value ? clickAwayCompatibleShow() : hide();\n toggle(value);\n oldValue = value;\n firstTime = false;\n }));\n});\n\n// packages/alpinejs/src/directives/x-for.js\ndirective(\"for\", (el, { expression }, { effect: effect3, cleanup: cleanup2 }) => {\n let iteratorNames = parseForExpression(expression);\n let evaluateItems = evaluateLater(el, iteratorNames.items);\n let evaluateKey = evaluateLater(\n el,\n // the x-bind:key expression is stored for our use instead of evaluated.\n el._x_keyExpression || \"index\"\n );\n el._x_prevKeys = [];\n el._x_lookup = {};\n effect3(() => loop(el, iteratorNames, evaluateItems, evaluateKey));\n cleanup2(() => {\n Object.values(el._x_lookup).forEach((el2) => mutateDom(\n () => {\n destroyTree(el2);\n el2.remove();\n }\n ));\n delete el._x_prevKeys;\n delete el._x_lookup;\n });\n});\nfunction loop(el, iteratorNames, evaluateItems, evaluateKey) {\n let isObject2 = (i) => typeof i === \"object\" && !Array.isArray(i);\n let templateEl = el;\n evaluateItems((items) => {\n if (isNumeric3(items) && items >= 0) {\n items = Array.from(Array(items).keys(), (i) => i + 1);\n }\n if (items === void 0)\n items = [];\n let lookup = el._x_lookup;\n let prevKeys = el._x_prevKeys;\n let scopes = [];\n let keys = [];\n if (isObject2(items)) {\n items = Object.entries(items).map(([key, value]) => {\n let scope2 = getIterationScopeVariables(iteratorNames, value, key, items);\n evaluateKey((value2) => {\n if (keys.includes(value2))\n warn(\"Duplicate key on x-for\", el);\n keys.push(value2);\n }, { scope: { index: key, ...scope2 } });\n scopes.push(scope2);\n });\n } else {\n for (let i = 0; i < items.length; i++) {\n let scope2 = getIterationScopeVariables(iteratorNames, items[i], i, items);\n evaluateKey((value) => {\n if (keys.includes(value))\n warn(\"Duplicate key on x-for\", el);\n keys.push(value);\n }, { scope: { index: i, ...scope2 } });\n scopes.push(scope2);\n }\n }\n let adds = [];\n let moves = [];\n let removes = [];\n let sames = [];\n for (let i = 0; i < prevKeys.length; i++) {\n let key = prevKeys[i];\n if (keys.indexOf(key) === -1)\n removes.push(key);\n }\n prevKeys = prevKeys.filter((key) => !removes.includes(key));\n let lastKey = \"template\";\n for (let i = 0; i < keys.length; i++) {\n let key = keys[i];\n let prevIndex = prevKeys.indexOf(key);\n if (prevIndex === -1) {\n prevKeys.splice(i, 0, key);\n adds.push([lastKey, i]);\n } else if (prevIndex !== i) {\n let keyInSpot = prevKeys.splice(i, 1)[0];\n let keyForSpot = prevKeys.splice(prevIndex - 1, 1)[0];\n prevKeys.splice(i, 0, keyForSpot);\n prevKeys.splice(prevIndex, 0, keyInSpot);\n moves.push([keyInSpot, keyForSpot]);\n } else {\n sames.push(key);\n }\n lastKey = key;\n }\n for (let i = 0; i < removes.length; i++) {\n let key = removes[i];\n if (!(key in lookup))\n continue;\n mutateDom(() => {\n destroyTree(lookup[key]);\n lookup[key].remove();\n });\n delete lookup[key];\n }\n for (let i = 0; i < moves.length; i++) {\n let [keyInSpot, keyForSpot] = moves[i];\n let elInSpot = lookup[keyInSpot];\n let elForSpot = lookup[keyForSpot];\n let marker = document.createElement(\"div\");\n mutateDom(() => {\n if (!elForSpot)\n warn(`x-for \":key\" is undefined or invalid`, templateEl, keyForSpot, lookup);\n elForSpot.after(marker);\n elInSpot.after(elForSpot);\n elForSpot._x_currentIfEl && elForSpot.after(elForSpot._x_currentIfEl);\n marker.before(elInSpot);\n elInSpot._x_currentIfEl && elInSpot.after(elInSpot._x_currentIfEl);\n marker.remove();\n });\n elForSpot._x_refreshXForScope(scopes[keys.indexOf(keyForSpot)]);\n }\n for (let i = 0; i < adds.length; i++) {\n let [lastKey2, index] = adds[i];\n let lastEl = lastKey2 === \"template\" ? templateEl : lookup[lastKey2];\n if (lastEl._x_currentIfEl)\n lastEl = lastEl._x_currentIfEl;\n let scope2 = scopes[index];\n let key = keys[index];\n let clone2 = document.importNode(templateEl.content, true).firstElementChild;\n let reactiveScope = reactive(scope2);\n addScopeToNode(clone2, reactiveScope, templateEl);\n clone2._x_refreshXForScope = (newScope) => {\n Object.entries(newScope).forEach(([key2, value]) => {\n reactiveScope[key2] = value;\n });\n };\n mutateDom(() => {\n lastEl.after(clone2);\n skipDuringClone(() => initTree(clone2))();\n });\n if (typeof key === \"object\") {\n warn(\"x-for key cannot be an object, it must be a string or an integer\", templateEl);\n }\n lookup[key] = clone2;\n }\n for (let i = 0; i < sames.length; i++) {\n lookup[sames[i]]._x_refreshXForScope(scopes[keys.indexOf(sames[i])]);\n }\n templateEl._x_prevKeys = keys;\n });\n}\nfunction parseForExpression(expression) {\n let forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\n let stripParensRE = /^\\s*\\(|\\)\\s*$/g;\n let forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/;\n let inMatch = expression.match(forAliasRE);\n if (!inMatch)\n return;\n let res = {};\n res.items = inMatch[2].trim();\n let item = inMatch[1].replace(stripParensRE, \"\").trim();\n let iteratorMatch = item.match(forIteratorRE);\n if (iteratorMatch) {\n res.item = item.replace(forIteratorRE, \"\").trim();\n res.index = iteratorMatch[1].trim();\n if (iteratorMatch[2]) {\n res.collection = iteratorMatch[2].trim();\n }\n } else {\n res.item = item;\n }\n return res;\n}\nfunction getIterationScopeVariables(iteratorNames, item, index, items) {\n let scopeVariables = {};\n if (/^\\[.*\\]$/.test(iteratorNames.item) && Array.isArray(item)) {\n let names = iteratorNames.item.replace(\"[\", \"\").replace(\"]\", \"\").split(\",\").map((i) => i.trim());\n names.forEach((name, i) => {\n scopeVariables[name] = item[i];\n });\n } else if (/^\\{.*\\}$/.test(iteratorNames.item) && !Array.isArray(item) && typeof item === \"object\") {\n let names = iteratorNames.item.replace(\"{\", \"\").replace(\"}\", \"\").split(\",\").map((i) => i.trim());\n names.forEach((name) => {\n scopeVariables[name] = item[name];\n });\n } else {\n scopeVariables[iteratorNames.item] = item;\n }\n if (iteratorNames.index)\n scopeVariables[iteratorNames.index] = index;\n if (iteratorNames.collection)\n scopeVariables[iteratorNames.collection] = items;\n return scopeVariables;\n}\nfunction isNumeric3(subject) {\n return !Array.isArray(subject) && !isNaN(subject);\n}\n\n// packages/alpinejs/src/directives/x-ref.js\nfunction handler3() {\n}\nhandler3.inline = (el, { expression }, { cleanup: cleanup2 }) => {\n let root = closestRoot(el);\n if (!root._x_refs)\n root._x_refs = {};\n root._x_refs[expression] = el;\n cleanup2(() => delete root._x_refs[expression]);\n};\ndirective(\"ref\", handler3);\n\n// packages/alpinejs/src/directives/x-if.js\ndirective(\"if\", (el, { expression }, { effect: effect3, cleanup: cleanup2 }) => {\n if (el.tagName.toLowerCase() !== \"template\")\n warn(\"x-if can only be used on a <template> tag\", el);\n let evaluate2 = evaluateLater(el, expression);\n let show = () => {\n if (el._x_currentIfEl)\n return el._x_currentIfEl;\n let clone2 = el.content.cloneNode(true).firstElementChild;\n addScopeToNode(clone2, {}, el);\n mutateDom(() => {\n el.after(clone2);\n skipDuringClone(() => initTree(clone2))();\n });\n el._x_currentIfEl = clone2;\n el._x_undoIf = () => {\n mutateDom(() => {\n destroyTree(clone2);\n clone2.remove();\n });\n delete el._x_currentIfEl;\n };\n return clone2;\n };\n let hide = () => {\n if (!el._x_undoIf)\n return;\n el._x_undoIf();\n delete el._x_undoIf;\n };\n effect3(() => evaluate2((value) => {\n value ? show() : hide();\n }));\n cleanup2(() => el._x_undoIf && el._x_undoIf());\n});\n\n// packages/alpinejs/src/directives/x-id.js\ndirective(\"id\", (el, { expression }, { evaluate: evaluate2 }) => {\n let names = evaluate2(expression);\n names.forEach((name) => setIdRoot(el, name));\n});\ninterceptClone((from, to) => {\n if (from._x_ids) {\n to._x_ids = from._x_ids;\n }\n});\n\n// packages/alpinejs/src/directives/x-on.js\nmapAttributes(startingWith(\"@\", into(prefix(\"on:\"))));\ndirective(\"on\", skipDuringClone((el, { value, modifiers, expression }, { cleanup: cleanup2 }) => {\n let evaluate2 = expression ? evaluateLater(el, expression) : () => {\n };\n if (el.tagName.toLowerCase() === \"template\") {\n if (!el._x_forwardEvents)\n el._x_forwardEvents = [];\n if (!el._x_forwardEvents.includes(value))\n el._x_forwardEvents.push(value);\n }\n let removeListener = on(el, value, modifiers, (e) => {\n evaluate2(() => {\n }, { scope: { \"$event\": e }, params: [e] });\n });\n cleanup2(() => removeListener());\n}));\n\n// packages/alpinejs/src/directives/index.js\nwarnMissingPluginDirective(\"Collapse\", \"collapse\", \"collapse\");\nwarnMissingPluginDirective(\"Intersect\", \"intersect\", \"intersect\");\nwarnMissingPluginDirective(\"Focus\", \"trap\", \"focus\");\nwarnMissingPluginDirective(\"Mask\", \"mask\", \"mask\");\nfunction warnMissingPluginDirective(name, directiveName, slug) {\n directive(directiveName, (el) => warn(`You can't use [x-${directiveName}] without first installing the \"${name}\" plugin here: https://alpinejs.dev/plugins/${slug}`, el));\n}\n\n// packages/alpinejs/src/index.js\nalpine_default.setEvaluator(normalEvaluator);\nalpine_default.setReactivityEngine({ reactive: reactive2, effect: effect2, release: stop, raw: toRaw });\nvar src_default = alpine_default;\n\n// packages/alpinejs/builds/module.js\nvar module_default = src_default;\nexport {\n src_default as Alpine,\n module_default as default\n};\n","import EN_translations from './translation_files/EN_translations.json';\nimport NL_translations from './translation_files/NL_translations.json';\nimport FR_translations from './translation_files/FR_translations.json';\nimport DE_translations from './translation_files/DE_translations.json';\nimport IT_translations from './translation_files/IT_translations.json';\n\nexport const translate = (app, label, lang) => {\n switch (lang) {\n case 'en':\n return EN_translations[app][label];\n case 'nl':\n return NL_translations[app][label];\n case 'fr':\n return FR_translations[app][label];\n case 'de':\n return DE_translations[app][label];\n case 'it':\n return IT_translations[app][label];\n default:\n return EN_translations[app][label];\n }\n};\n","\n/*! image-blob-reduce 4.1.0 https://github.com/nodeca/image-blob-reduce @license MIT */\nfunction commonjsRequire (path) {\n\tthrow new Error('Could not dynamically require \"' + path + '\". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');\n}\n\nvar utils$1 = {};\n\nutils$1.assign = function assign(to) {\n var from;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (Object.prototype.hasOwnProperty.call(from, key)) to[key] = from[key];\n }\n }\n\n return to;\n};\n\n\nfunction pick(from, props) {\n var to = {};\n\n props.forEach(function (key) {\n if (Object.prototype.hasOwnProperty.call(from, key)) to[key] = from[key];\n });\n\n return to;\n}\n\n\nfunction pick_pica_resize_options(from) {\n return pick(from, [\n 'alpha',\n 'unsharpAmount',\n 'unsharpRadius',\n 'unsharpThreshold',\n 'cancelToken'\n ]);\n}\n\n\nutils$1.pick = pick;\nutils$1.pick_pica_resize_options = pick_pica_resize_options;\n\nvar pica$1 = {exports: {}};\n\n/*!\n\npica\nhttps://github.com/nodeca/pica\n\n*/\n\n(function (module, exports) {\n(function(f){{module.exports=f();}})(function(){return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof commonjsRequire&&commonjsRequire;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t);}return n[i].exports}for(var u=\"function\"==typeof commonjsRequire&&commonjsRequire,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(_dereq_,module,exports){\n\nvar Multimath = _dereq_('multimath');\n\nvar mm_unsharp_mask = _dereq_('./mm_unsharp_mask');\n\nvar mm_resize = _dereq_('./mm_resize');\n\nfunction MathLib(requested_features) {\n var __requested_features = requested_features || [];\n\n var features = {\n js: __requested_features.indexOf('js') >= 0,\n wasm: __requested_features.indexOf('wasm') >= 0\n };\n Multimath.call(this, features);\n this.features = {\n js: features.js,\n wasm: features.wasm && this.has_wasm()\n };\n this.use(mm_unsharp_mask);\n this.use(mm_resize);\n}\n\nMathLib.prototype = Object.create(Multimath.prototype);\nMathLib.prototype.constructor = MathLib;\n\nMathLib.prototype.resizeAndUnsharp = function resizeAndUnsharp(options, cache) {\n var result = this.resize(options, cache);\n\n if (options.unsharpAmount) {\n this.unsharp_mask(result, options.toWidth, options.toHeight, options.unsharpAmount, options.unsharpRadius, options.unsharpThreshold);\n }\n\n return result;\n};\n\nmodule.exports = MathLib;\n\n},{\"./mm_resize\":4,\"./mm_unsharp_mask\":9,\"multimath\":19}],2:[function(_dereq_,module,exports){\n//var FIXED_FRAC_BITS = 14;\n\nfunction clampTo8(i) {\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clampNegative(i) {\n return i >= 0 ? i : 0;\n} // Convolve image data in horizontal direction. Can be used for:\n//\n// 1. bitmap with premultiplied alpha\n// 2. bitmap without alpha (all values 255)\n//\n// Notes:\n//\n// - output is transposed\n// - output resolution is ~15 bits per channel(for better precision).\n//\n\n\nfunction convolveHor(src, dest, srcW, srcH, destW, filters) {\n var r, g, b, a;\n var filterPtr, filterShift, filterSize;\n var srcPtr, srcY, destX, filterVal;\n var srcOffset = 0,\n destOffset = 0; // For each row\n\n for (srcY = 0; srcY < srcH; srcY++) {\n filterPtr = 0; // Apply precomputed filters to each destination row point\n\n for (destX = 0; destX < destW; destX++) {\n // Get the filter that determines the current output pixel.\n filterShift = filters[filterPtr++];\n filterSize = filters[filterPtr++];\n srcPtr = srcOffset + filterShift * 4 | 0;\n r = g = b = a = 0; // Apply the filter to the row to get the destination pixel r, g, b, a\n\n for (; filterSize > 0; filterSize--) {\n filterVal = filters[filterPtr++]; // Use reverse order to workaround deopts in old v8 (node v.10)\n // Big thanks to @mraleph (Vyacheslav Egorov) for the tip.\n\n a = a + filterVal * src[srcPtr + 3] | 0;\n b = b + filterVal * src[srcPtr + 2] | 0;\n g = g + filterVal * src[srcPtr + 1] | 0;\n r = r + filterVal * src[srcPtr] | 0;\n srcPtr = srcPtr + 4 | 0;\n } // Store 15 bits between passes for better precision\n // Instead of shift to 14 (FIXED_FRAC_BITS), shift to 7 only\n //\n\n\n dest[destOffset + 3] = clampNegative(a >> 7);\n dest[destOffset + 2] = clampNegative(b >> 7);\n dest[destOffset + 1] = clampNegative(g >> 7);\n dest[destOffset] = clampNegative(r >> 7);\n destOffset = destOffset + srcH * 4 | 0;\n }\n\n destOffset = (srcY + 1) * 4 | 0;\n srcOffset = (srcY + 1) * srcW * 4 | 0;\n }\n} // Supplementary method for `convolveHor()`\n//\n\n\nfunction convolveVert(src, dest, srcW, srcH, destW, filters) {\n var r, g, b, a;\n var filterPtr, filterShift, filterSize;\n var srcPtr, srcY, destX, filterVal;\n var srcOffset = 0,\n destOffset = 0; // For each row\n\n for (srcY = 0; srcY < srcH; srcY++) {\n filterPtr = 0; // Apply precomputed filters to each destination row point\n\n for (destX = 0; destX < destW; destX++) {\n // Get the filter that determines the current output pixel.\n filterShift = filters[filterPtr++];\n filterSize = filters[filterPtr++];\n srcPtr = srcOffset + filterShift * 4 | 0;\n r = g = b = a = 0; // Apply the filter to the row to get the destination pixel r, g, b, a\n\n for (; filterSize > 0; filterSize--) {\n filterVal = filters[filterPtr++]; // Use reverse order to workaround deopts in old v8 (node v.10)\n // Big thanks to @mraleph (Vyacheslav Egorov) for the tip.\n\n a = a + filterVal * src[srcPtr + 3] | 0;\n b = b + filterVal * src[srcPtr + 2] | 0;\n g = g + filterVal * src[srcPtr + 1] | 0;\n r = r + filterVal * src[srcPtr] | 0;\n srcPtr = srcPtr + 4 | 0;\n } // Sync with premultiplied version for exact result match\n\n\n r >>= 7;\n g >>= 7;\n b >>= 7;\n a >>= 7; // Bring this value back in range + round result.\n //\n\n dest[destOffset + 3] = clampTo8(a + (1 << 13) >> 14);\n dest[destOffset + 2] = clampTo8(b + (1 << 13) >> 14);\n dest[destOffset + 1] = clampTo8(g + (1 << 13) >> 14);\n dest[destOffset] = clampTo8(r + (1 << 13) >> 14);\n destOffset = destOffset + srcH * 4 | 0;\n }\n\n destOffset = (srcY + 1) * 4 | 0;\n srcOffset = (srcY + 1) * srcW * 4 | 0;\n }\n} // Premultiply & convolve image data in horizontal direction. Can be used for:\n//\n// - Any bitmap data, extracted with `.getImageData()` method (with\n// non-premultiplied alpha)\n//\n// For images without alpha channel this method is slower than `convolveHor()`\n//\n\n\nfunction convolveHorWithPre(src, dest, srcW, srcH, destW, filters) {\n var r, g, b, a, alpha;\n var filterPtr, filterShift, filterSize;\n var srcPtr, srcY, destX, filterVal;\n var srcOffset = 0,\n destOffset = 0; // For each row\n\n for (srcY = 0; srcY < srcH; srcY++) {\n filterPtr = 0; // Apply precomputed filters to each destination row point\n\n for (destX = 0; destX < destW; destX++) {\n // Get the filter that determines the current output pixel.\n filterShift = filters[filterPtr++];\n filterSize = filters[filterPtr++];\n srcPtr = srcOffset + filterShift * 4 | 0;\n r = g = b = a = 0; // Apply the filter to the row to get the destination pixel r, g, b, a\n\n for (; filterSize > 0; filterSize--) {\n filterVal = filters[filterPtr++]; // Use reverse order to workaround deopts in old v8 (node v.10)\n // Big thanks to @mraleph (Vyacheslav Egorov) for the tip.\n\n alpha = src[srcPtr + 3];\n a = a + filterVal * alpha | 0;\n b = b + filterVal * src[srcPtr + 2] * alpha | 0;\n g = g + filterVal * src[srcPtr + 1] * alpha | 0;\n r = r + filterVal * src[srcPtr] * alpha | 0;\n srcPtr = srcPtr + 4 | 0;\n } // Premultiply is (* alpha / 255).\n // Postpone division for better performance\n\n\n b = b / 255 | 0;\n g = g / 255 | 0;\n r = r / 255 | 0; // Store 15 bits between passes for better precision\n // Instead of shift to 14 (FIXED_FRAC_BITS), shift to 7 only\n //\n\n dest[destOffset + 3] = clampNegative(a >> 7);\n dest[destOffset + 2] = clampNegative(b >> 7);\n dest[destOffset + 1] = clampNegative(g >> 7);\n dest[destOffset] = clampNegative(r >> 7);\n destOffset = destOffset + srcH * 4 | 0;\n }\n\n destOffset = (srcY + 1) * 4 | 0;\n srcOffset = (srcY + 1) * srcW * 4 | 0;\n }\n} // Supplementary method for `convolveHorWithPre()`\n//\n\n\nfunction convolveVertWithPre(src, dest, srcW, srcH, destW, filters) {\n var r, g, b, a;\n var filterPtr, filterShift, filterSize;\n var srcPtr, srcY, destX, filterVal;\n var srcOffset = 0,\n destOffset = 0; // For each row\n\n for (srcY = 0; srcY < srcH; srcY++) {\n filterPtr = 0; // Apply precomputed filters to each destination row point\n\n for (destX = 0; destX < destW; destX++) {\n // Get the filter that determines the current output pixel.\n filterShift = filters[filterPtr++];\n filterSize = filters[filterPtr++];\n srcPtr = srcOffset + filterShift * 4 | 0;\n r = g = b = a = 0; // Apply the filter to the row to get the destination pixel r, g, b, a\n\n for (; filterSize > 0; filterSize--) {\n filterVal = filters[filterPtr++]; // Use reverse order to workaround deopts in old v8 (node v.10)\n // Big thanks to @mraleph (Vyacheslav Egorov) for the tip.\n\n a = a + filterVal * src[srcPtr + 3] | 0;\n b = b + filterVal * src[srcPtr + 2] | 0;\n g = g + filterVal * src[srcPtr + 1] | 0;\n r = r + filterVal * src[srcPtr] | 0;\n srcPtr = srcPtr + 4 | 0;\n } // Downscale to leave room for un-premultiply\n\n\n r >>= 7;\n g >>= 7;\n b >>= 7;\n a >>= 7; // Un-premultiply\n\n a = clampTo8(a + (1 << 13) >> 14);\n\n if (a > 0) {\n r = r * 255 / a | 0;\n g = g * 255 / a | 0;\n b = b * 255 / a | 0;\n } // Bring this value back in range + round result.\n // Shift value = FIXED_FRAC_BITS + 7\n //\n\n\n dest[destOffset + 3] = a;\n dest[destOffset + 2] = clampTo8(b + (1 << 13) >> 14);\n dest[destOffset + 1] = clampTo8(g + (1 << 13) >> 14);\n dest[destOffset] = clampTo8(r + (1 << 13) >> 14);\n destOffset = destOffset + srcH * 4 | 0;\n }\n\n destOffset = (srcY + 1) * 4 | 0;\n srcOffset = (srcY + 1) * srcW * 4 | 0;\n }\n}\n\nmodule.exports = {\n convolveHor: convolveHor,\n convolveVert: convolveVert,\n convolveHorWithPre: convolveHorWithPre,\n convolveVertWithPre: convolveVertWithPre\n};\n\n},{}],3:[function(_dereq_,module,exports){\n/* eslint-disable max-len */\n\nmodule.exports = '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';\n\n},{}],4:[function(_dereq_,module,exports){\n\nmodule.exports = {\n name: 'resize',\n fn: _dereq_('./resize'),\n wasm_fn: _dereq_('./resize_wasm'),\n wasm_src: _dereq_('./convolve_wasm_base64')\n};\n\n},{\"./convolve_wasm_base64\":3,\"./resize\":5,\"./resize_wasm\":8}],5:[function(_dereq_,module,exports){\n\nvar createFilters = _dereq_('./resize_filter_gen');\n\nvar _require = _dereq_('./convolve'),\n convolveHor = _require.convolveHor,\n convolveVert = _require.convolveVert,\n convolveHorWithPre = _require.convolveHorWithPre,\n convolveVertWithPre = _require.convolveVertWithPre;\n\nfunction hasAlpha(src, width, height) {\n var ptr = 3,\n len = width * height * 4 | 0;\n\n while (ptr < len) {\n if (src[ptr] !== 255) return true;\n ptr = ptr + 4 | 0;\n }\n\n return false;\n}\n\nfunction resetAlpha(dst, width, height) {\n var ptr = 3,\n len = width * height * 4 | 0;\n\n while (ptr < len) {\n dst[ptr] = 0xFF;\n ptr = ptr + 4 | 0;\n }\n}\n\nmodule.exports = function resize(options) {\n var src = options.src;\n var srcW = options.width;\n var srcH = options.height;\n var destW = options.toWidth;\n var destH = options.toHeight;\n var scaleX = options.scaleX || options.toWidth / options.width;\n var scaleY = options.scaleY || options.toHeight / options.height;\n var offsetX = options.offsetX || 0;\n var offsetY = options.offsetY || 0;\n var dest = options.dest || new Uint8Array(destW * destH * 4);\n var filter = typeof options.filter === 'undefined' ? 'mks2013' : options.filter;\n var filtersX = createFilters(filter, srcW, destW, scaleX, offsetX),\n filtersY = createFilters(filter, srcH, destH, scaleY, offsetY);\n var tmp = new Uint16Array(destW * srcH * 4); // Autodetect if alpha channel exists, and use appropriate method\n\n if (hasAlpha(src, srcW, srcH)) {\n convolveHorWithPre(src, tmp, srcW, srcH, destW, filtersX);\n convolveVertWithPre(tmp, dest, srcH, destW, destH, filtersY);\n } else {\n convolveHor(src, tmp, srcW, srcH, destW, filtersX);\n convolveVert(tmp, dest, srcH, destW, destH, filtersY);\n resetAlpha(dest, destW, destH);\n }\n\n return dest;\n};\n\n},{\"./convolve\":2,\"./resize_filter_gen\":6}],6:[function(_dereq_,module,exports){\n\nvar FILTER_INFO = _dereq_('./resize_filter_info'); // Precision of fixed FP values\n\n\nvar FIXED_FRAC_BITS = 14;\n\nfunction toFixedPoint(num) {\n return Math.round(num * ((1 << FIXED_FRAC_BITS) - 1));\n}\n\nmodule.exports = function resizeFilterGen(filter, srcSize, destSize, scale, offset) {\n var filterFunction = FILTER_INFO.filter[filter].fn;\n var scaleInverted = 1.0 / scale;\n var scaleClamped = Math.min(1.0, scale); // For upscale\n // Filter window (averaging interval), scaled to src image\n\n var srcWindow = FILTER_INFO.filter[filter].win / scaleClamped;\n var destPixel, srcPixel, srcFirst, srcLast, filterElementSize, floatFilter, fxpFilter, total, pxl, idx, floatVal, filterTotal, filterVal;\n var leftNotEmpty, rightNotEmpty, filterShift, filterSize;\n var maxFilterElementSize = Math.floor((srcWindow + 1) * 2);\n var packedFilter = new Int16Array((maxFilterElementSize + 2) * destSize);\n var packedFilterPtr = 0;\n var slowCopy = !packedFilter.subarray || !packedFilter.set; // For each destination pixel calculate source range and built filter values\n\n for (destPixel = 0; destPixel < destSize; destPixel++) {\n // Scaling should be done relative to central pixel point\n srcPixel = (destPixel + 0.5) * scaleInverted + offset;\n srcFirst = Math.max(0, Math.floor(srcPixel - srcWindow));\n srcLast = Math.min(srcSize - 1, Math.ceil(srcPixel + srcWindow));\n filterElementSize = srcLast - srcFirst + 1;\n floatFilter = new Float32Array(filterElementSize);\n fxpFilter = new Int16Array(filterElementSize);\n total = 0.0; // Fill filter values for calculated range\n\n for (pxl = srcFirst, idx = 0; pxl <= srcLast; pxl++, idx++) {\n floatVal = filterFunction((pxl + 0.5 - srcPixel) * scaleClamped);\n total += floatVal;\n floatFilter[idx] = floatVal;\n } // Normalize filter, convert to fixed point and accumulate conversion error\n\n\n filterTotal = 0;\n\n for (idx = 0; idx < floatFilter.length; idx++) {\n filterVal = floatFilter[idx] / total;\n filterTotal += filterVal;\n fxpFilter[idx] = toFixedPoint(filterVal);\n } // Compensate normalization error, to minimize brightness drift\n\n\n fxpFilter[destSize >> 1] += toFixedPoint(1.0 - filterTotal); //\n // Now pack filter to useable form\n //\n // 1. Trim heading and tailing zero values, and compensate shitf/length\n // 2. Put all to single array in this format:\n //\n // [ pos shift, data length, value1, value2, value3, ... ]\n //\n\n leftNotEmpty = 0;\n\n while (leftNotEmpty < fxpFilter.length && fxpFilter[leftNotEmpty] === 0) {\n leftNotEmpty++;\n }\n\n if (leftNotEmpty < fxpFilter.length) {\n rightNotEmpty = fxpFilter.length - 1;\n\n while (rightNotEmpty > 0 && fxpFilter[rightNotEmpty] === 0) {\n rightNotEmpty--;\n }\n\n filterShift = srcFirst + leftNotEmpty;\n filterSize = rightNotEmpty - leftNotEmpty + 1;\n packedFilter[packedFilterPtr++] = filterShift; // shift\n\n packedFilter[packedFilterPtr++] = filterSize; // size\n\n if (!slowCopy) {\n packedFilter.set(fxpFilter.subarray(leftNotEmpty, rightNotEmpty + 1), packedFilterPtr);\n packedFilterPtr += filterSize;\n } else {\n // fallback for old IE < 11, without subarray/set methods\n for (idx = leftNotEmpty; idx <= rightNotEmpty; idx++) {\n packedFilter[packedFilterPtr++] = fxpFilter[idx];\n }\n }\n } else {\n // zero data, write header only\n packedFilter[packedFilterPtr++] = 0; // shift\n\n packedFilter[packedFilterPtr++] = 0; // size\n }\n }\n\n return packedFilter;\n};\n\n},{\"./resize_filter_info\":7}],7:[function(_dereq_,module,exports){\n\nvar filter = {\n // Nearest neibor\n box: {\n win: 0.5,\n fn: function fn(x) {\n if (x < 0) x = -x;\n return x < 0.5 ? 1.0 : 0.0;\n }\n },\n // // Hamming\n hamming: {\n win: 1.0,\n fn: function fn(x) {\n if (x < 0) x = -x;\n\n if (x >= 1.0) {\n return 0.0;\n }\n\n if (x < 1.19209290E-07) {\n return 1.0;\n }\n\n var xpi = x * Math.PI;\n return Math.sin(xpi) / xpi * (0.54 + 0.46 * Math.cos(xpi / 1.0));\n }\n },\n // Lanczos, win = 2\n lanczos2: {\n win: 2.0,\n fn: function fn(x) {\n if (x < 0) x = -x;\n\n if (x >= 2.0) {\n return 0.0;\n }\n\n if (x < 1.19209290E-07) {\n return 1.0;\n }\n\n var xpi = x * Math.PI;\n return Math.sin(xpi) / xpi * Math.sin(xpi / 2.0) / (xpi / 2.0);\n }\n },\n // Lanczos, win = 3\n lanczos3: {\n win: 3.0,\n fn: function fn(x) {\n if (x < 0) x = -x;\n\n if (x >= 3.0) {\n return 0.0;\n }\n\n if (x < 1.19209290E-07) {\n return 1.0;\n }\n\n var xpi = x * Math.PI;\n return Math.sin(xpi) / xpi * Math.sin(xpi / 3.0) / (xpi / 3.0);\n }\n },\n // Magic Kernel Sharp 2013, win = 2.5\n // http://johncostella.com/magic/\n mks2013: {\n win: 2.5,\n fn: function fn(x) {\n if (x < 0) x = -x;\n\n if (x >= 2.5) {\n return 0.0;\n }\n\n if (x >= 1.5) {\n return -0.125 * (x - 2.5) * (x - 2.5);\n }\n\n if (x >= 0.5) {\n return 0.25 * (4 * x * x - 11 * x + 7);\n }\n\n return 1.0625 - 1.75 * x * x;\n }\n }\n};\nmodule.exports = {\n filter: filter,\n // Legacy mapping\n f2q: {\n box: 0,\n hamming: 1,\n lanczos2: 2,\n lanczos3: 3\n },\n q2f: ['box', 'hamming', 'lanczos2', 'lanczos3']\n};\n\n},{}],8:[function(_dereq_,module,exports){\n\nvar createFilters = _dereq_('./resize_filter_gen');\n\nfunction hasAlpha(src, width, height) {\n var ptr = 3,\n len = width * height * 4 | 0;\n\n while (ptr < len) {\n if (src[ptr] !== 255) return true;\n ptr = ptr + 4 | 0;\n }\n\n return false;\n}\n\nfunction resetAlpha(dst, width, height) {\n var ptr = 3,\n len = width * height * 4 | 0;\n\n while (ptr < len) {\n dst[ptr] = 0xFF;\n ptr = ptr + 4 | 0;\n }\n}\n\nfunction asUint8Array(src) {\n return new Uint8Array(src.buffer, 0, src.byteLength);\n}\n\nvar IS_LE = true; // should not crash everything on module load in old browsers\n\ntry {\n IS_LE = new Uint32Array(new Uint8Array([1, 0, 0, 0]).buffer)[0] === 1;\n} catch (__) {}\n\nfunction copyInt16asLE(src, target, target_offset) {\n if (IS_LE) {\n target.set(asUint8Array(src), target_offset);\n return;\n }\n\n for (var ptr = target_offset, i = 0; i < src.length; i++) {\n var data = src[i];\n target[ptr++] = data & 0xFF;\n target[ptr++] = data >> 8 & 0xFF;\n }\n}\n\nmodule.exports = function resize_wasm(options) {\n var src = options.src;\n var srcW = options.width;\n var srcH = options.height;\n var destW = options.toWidth;\n var destH = options.toHeight;\n var scaleX = options.scaleX || options.toWidth / options.width;\n var scaleY = options.scaleY || options.toHeight / options.height;\n var offsetX = options.offsetX || 0.0;\n var offsetY = options.offsetY || 0.0;\n var dest = options.dest || new Uint8Array(destW * destH * 4);\n var filter = typeof options.filter === 'undefined' ? 'mks2013' : options.filter;\n var filtersX = createFilters(filter, srcW, destW, scaleX, offsetX),\n filtersY = createFilters(filter, srcH, destH, scaleY, offsetY); // destination is 0 too.\n\n var src_offset = 0;\n var src_size = Math.max(src.byteLength, dest.byteLength); // buffer between convolve passes\n\n var tmp_offset = this.__align(src_offset + src_size);\n\n var tmp_size = srcH * destW * 4 * 2; // 2 bytes per channel\n\n var filtersX_offset = this.__align(tmp_offset + tmp_size);\n\n var filtersY_offset = this.__align(filtersX_offset + filtersX.byteLength);\n\n var alloc_bytes = filtersY_offset + filtersY.byteLength;\n\n var instance = this.__instance('resize', alloc_bytes); //\n // Fill memory block with data to process\n //\n\n\n var mem = new Uint8Array(this.__memory.buffer);\n var mem32 = new Uint32Array(this.__memory.buffer); // 32-bit copy is much faster in chrome\n\n var src32 = new Uint32Array(src.buffer);\n mem32.set(src32); // We should guarantee LE bytes order. Filters are not big, so\n // speed difference is not significant vs direct .set()\n\n copyInt16asLE(filtersX, mem, filtersX_offset);\n copyInt16asLE(filtersY, mem, filtersY_offset); // Now call webassembly method\n // emsdk does method names with '_'\n\n var fn = instance.exports.convolveHV || instance.exports._convolveHV;\n\n if (hasAlpha(src, srcW, srcH)) {\n fn(filtersX_offset, filtersY_offset, tmp_offset, srcW, srcH, destW, destH, 1);\n } else {\n fn(filtersX_offset, filtersY_offset, tmp_offset, srcW, srcH, destW, destH, 0);\n resetAlpha(dest, destW, destH);\n } //\n // Copy data back to typed array\n //\n // 32-bit copy is much faster in chrome\n\n\n var dest32 = new Uint32Array(dest.buffer);\n dest32.set(new Uint32Array(this.__memory.buffer, 0, destH * destW));\n return dest;\n};\n\n},{\"./resize_filter_gen\":6}],9:[function(_dereq_,module,exports){\n\nmodule.exports = {\n name: 'unsharp_mask',\n fn: _dereq_('./unsharp_mask'),\n wasm_fn: _dereq_('./unsharp_mask_wasm'),\n wasm_src: _dereq_('./unsharp_mask_wasm_base64')\n};\n\n},{\"./unsharp_mask\":10,\"./unsharp_mask_wasm\":11,\"./unsharp_mask_wasm_base64\":12}],10:[function(_dereq_,module,exports){\n\nvar glur_mono16 = _dereq_('glur/mono16');\n\nfunction hsv_v16(img, width, height) {\n var size = width * height;\n var out = new Uint16Array(size);\n var r, g, b, max;\n\n for (var i = 0; i < size; i++) {\n r = img[4 * i];\n g = img[4 * i + 1];\n b = img[4 * i + 2];\n max = r >= g && r >= b ? r : g >= b && g >= r ? g : b;\n out[i] = max << 8;\n }\n\n return out;\n}\n\nmodule.exports = function unsharp(img, width, height, amount, radius, threshold) {\n var v1, v2, vmul;\n var diff, iTimes4;\n\n if (amount === 0 || radius < 0.5) {\n return;\n }\n\n if (radius > 2.0) {\n radius = 2.0;\n }\n\n var brightness = hsv_v16(img, width, height);\n var blured = new Uint16Array(brightness); // copy, because blur modify src\n\n glur_mono16(blured, width, height, radius);\n var amountFp = amount / 100 * 0x1000 + 0.5 | 0;\n var thresholdFp = threshold << 8;\n var size = width * height;\n /* eslint-disable indent */\n\n for (var i = 0; i < size; i++) {\n v1 = brightness[i];\n diff = v1 - blured[i];\n\n if (Math.abs(diff) >= thresholdFp) {\n // add unsharp mask to the brightness channel\n v2 = v1 + (amountFp * diff + 0x800 >> 12); // Both v1 and v2 are within [0.0 .. 255.0] (0000-FF00) range, never going into\n // [255.003 .. 255.996] (FF01-FFFF). This allows to round this value as (x+.5)|0\n // later without overflowing.\n\n v2 = v2 > 0xff00 ? 0xff00 : v2;\n v2 = v2 < 0x0000 ? 0x0000 : v2; // Avoid division by 0. V=0 means rgb(0,0,0), unsharp with unsharpAmount>0 cannot\n // change this value (because diff between colors gets inflated), so no need to verify correctness.\n\n v1 = v1 !== 0 ? v1 : 1; // Multiplying V in HSV model by a constant is equivalent to multiplying each component\n // in RGB by the same constant (same for HSL), see also:\n // https://beesbuzz.biz/code/16-hsv-color-transforms\n\n vmul = (v2 << 12) / v1 | 0; // Result will be in [0..255] range because:\n // - all numbers are positive\n // - r,g,b <= (v1/256)\n // - r,g,b,(v1/256),(v2/256) <= 255\n // So highest this number can get is X*255/X+0.5=255.5 which is < 256 and rounds down.\n\n iTimes4 = i * 4;\n img[iTimes4] = img[iTimes4] * vmul + 0x800 >> 12; // R\n\n img[iTimes4 + 1] = img[iTimes4 + 1] * vmul + 0x800 >> 12; // G\n\n img[iTimes4 + 2] = img[iTimes4 + 2] * vmul + 0x800 >> 12; // B\n }\n }\n};\n\n},{\"glur/mono16\":18}],11:[function(_dereq_,module,exports){\n\nmodule.exports = function unsharp(img, width, height, amount, radius, threshold) {\n if (amount === 0 || radius < 0.5) {\n return;\n }\n\n if (radius > 2.0) {\n radius = 2.0;\n }\n\n var pixels = width * height;\n var img_bytes_cnt = pixels * 4;\n var hsv_bytes_cnt = pixels * 2;\n var blur_bytes_cnt = pixels * 2;\n var blur_line_byte_cnt = Math.max(width, height) * 4; // float32 array\n\n var blur_coeffs_byte_cnt = 8 * 4; // float32 array\n\n var img_offset = 0;\n var hsv_offset = img_bytes_cnt;\n var blur_offset = hsv_offset + hsv_bytes_cnt;\n var blur_tmp_offset = blur_offset + blur_bytes_cnt;\n var blur_line_offset = blur_tmp_offset + blur_bytes_cnt;\n var blur_coeffs_offset = blur_line_offset + blur_line_byte_cnt;\n\n var instance = this.__instance('unsharp_mask', img_bytes_cnt + hsv_bytes_cnt + blur_bytes_cnt * 2 + blur_line_byte_cnt + blur_coeffs_byte_cnt, {\n exp: Math.exp\n }); // 32-bit copy is much faster in chrome\n\n\n var img32 = new Uint32Array(img.buffer);\n var mem32 = new Uint32Array(this.__memory.buffer);\n mem32.set(img32); // HSL\n\n var fn = instance.exports.hsv_v16 || instance.exports._hsv_v16;\n fn(img_offset, hsv_offset, width, height); // BLUR\n\n fn = instance.exports.blurMono16 || instance.exports._blurMono16;\n fn(hsv_offset, blur_offset, blur_tmp_offset, blur_line_offset, blur_coeffs_offset, width, height, radius); // UNSHARP\n\n fn = instance.exports.unsharp || instance.exports._unsharp;\n fn(img_offset, img_offset, hsv_offset, blur_offset, width, height, amount, threshold); // 32-bit copy is much faster in chrome\n\n img32.set(new Uint32Array(this.__memory.buffer, 0, pixels));\n};\n\n},{}],12:[function(_dereq_,module,exports){\n/* eslint-disable max-len */\n\nmodule.exports = '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';\n\n},{}],13:[function(_dereq_,module,exports){\n\nvar GC_INTERVAL = 100;\n\nfunction Pool(create, idle) {\n this.create = create;\n this.available = [];\n this.acquired = {};\n this.lastId = 1;\n this.timeoutId = 0;\n this.idle = idle || 2000;\n}\n\nPool.prototype.acquire = function () {\n var _this = this;\n\n var resource;\n\n if (this.available.length !== 0) {\n resource = this.available.pop();\n } else {\n resource = this.create();\n resource.id = this.lastId++;\n\n resource.release = function () {\n return _this.release(resource);\n };\n }\n\n this.acquired[resource.id] = resource;\n return resource;\n};\n\nPool.prototype.release = function (resource) {\n var _this2 = this;\n\n delete this.acquired[resource.id];\n resource.lastUsed = Date.now();\n this.available.push(resource);\n\n if (this.timeoutId === 0) {\n this.timeoutId = setTimeout(function () {\n return _this2.gc();\n }, GC_INTERVAL);\n }\n};\n\nPool.prototype.gc = function () {\n var _this3 = this;\n\n var now = Date.now();\n this.available = this.available.filter(function (resource) {\n if (now - resource.lastUsed > _this3.idle) {\n resource.destroy();\n return false;\n }\n\n return true;\n });\n\n if (this.available.length !== 0) {\n this.timeoutId = setTimeout(function () {\n return _this3.gc();\n }, GC_INTERVAL);\n } else {\n this.timeoutId = 0;\n }\n};\n\nmodule.exports = Pool;\n\n},{}],14:[function(_dereq_,module,exports){\n// min size = 1 can consume large amount of memory\n\nvar MIN_INNER_TILE_SIZE = 2;\n\nmodule.exports = function createStages(fromWidth, fromHeight, toWidth, toHeight, srcTileSize, destTileBorder) {\n var scaleX = toWidth / fromWidth;\n var scaleY = toHeight / fromHeight; // derived from createRegions equation:\n // innerTileWidth = pixelFloor(srcTileSize * scaleX) - 2 * destTileBorder;\n\n var minScale = (2 * destTileBorder + MIN_INNER_TILE_SIZE + 1) / srcTileSize; // refuse to scale image multiple times by less than twice each time,\n // it could only happen because of invalid options\n\n if (minScale > 0.5) return [[toWidth, toHeight]];\n var stageCount = Math.ceil(Math.log(Math.min(scaleX, scaleY)) / Math.log(minScale)); // no additional resizes are necessary,\n // stageCount can be zero or be negative when enlarging the image\n\n if (stageCount <= 1) return [[toWidth, toHeight]];\n var result = [];\n\n for (var i = 0; i < stageCount; i++) {\n var width = Math.round(Math.pow(Math.pow(fromWidth, stageCount - i - 1) * Math.pow(toWidth, i + 1), 1 / stageCount));\n var height = Math.round(Math.pow(Math.pow(fromHeight, stageCount - i - 1) * Math.pow(toHeight, i + 1), 1 / stageCount));\n result.push([width, height]);\n }\n\n return result;\n};\n\n},{}],15:[function(_dereq_,module,exports){\n/*\n * pixelFloor and pixelCeil are modified versions of Math.floor and Math.ceil\n * functions which take into account floating point arithmetic errors.\n * Those errors can cause undesired increments/decrements of sizes and offsets:\n * Math.ceil(36 / (36 / 500)) = 501\n * pixelCeil(36 / (36 / 500)) = 500\n */\n\nvar PIXEL_EPSILON = 1e-5;\n\nfunction pixelFloor(x) {\n var nearest = Math.round(x);\n\n if (Math.abs(x - nearest) < PIXEL_EPSILON) {\n return nearest;\n }\n\n return Math.floor(x);\n}\n\nfunction pixelCeil(x) {\n var nearest = Math.round(x);\n\n if (Math.abs(x - nearest) < PIXEL_EPSILON) {\n return nearest;\n }\n\n return Math.ceil(x);\n}\n\nmodule.exports = function createRegions(options) {\n var scaleX = options.toWidth / options.width;\n var scaleY = options.toHeight / options.height;\n var innerTileWidth = pixelFloor(options.srcTileSize * scaleX) - 2 * options.destTileBorder;\n var innerTileHeight = pixelFloor(options.srcTileSize * scaleY) - 2 * options.destTileBorder; // prevent infinite loop, this should never happen\n\n if (innerTileWidth < 1 || innerTileHeight < 1) {\n throw new Error('Internal error in pica: target tile width/height is too small.');\n }\n\n var x, y;\n var innerX, innerY, toTileWidth, toTileHeight;\n var tiles = [];\n var tile; // we go top-to-down instead of left-to-right to make image displayed from top to\n // doesn in the browser\n\n for (innerY = 0; innerY < options.toHeight; innerY += innerTileHeight) {\n for (innerX = 0; innerX < options.toWidth; innerX += innerTileWidth) {\n x = innerX - options.destTileBorder;\n\n if (x < 0) {\n x = 0;\n }\n\n toTileWidth = innerX + innerTileWidth + options.destTileBorder - x;\n\n if (x + toTileWidth >= options.toWidth) {\n toTileWidth = options.toWidth - x;\n }\n\n y = innerY - options.destTileBorder;\n\n if (y < 0) {\n y = 0;\n }\n\n toTileHeight = innerY + innerTileHeight + options.destTileBorder - y;\n\n if (y + toTileHeight >= options.toHeight) {\n toTileHeight = options.toHeight - y;\n }\n\n tile = {\n toX: x,\n toY: y,\n toWidth: toTileWidth,\n toHeight: toTileHeight,\n toInnerX: innerX,\n toInnerY: innerY,\n toInnerWidth: innerTileWidth,\n toInnerHeight: innerTileHeight,\n offsetX: x / scaleX - pixelFloor(x / scaleX),\n offsetY: y / scaleY - pixelFloor(y / scaleY),\n scaleX: scaleX,\n scaleY: scaleY,\n x: pixelFloor(x / scaleX),\n y: pixelFloor(y / scaleY),\n width: pixelCeil(toTileWidth / scaleX),\n height: pixelCeil(toTileHeight / scaleY)\n };\n tiles.push(tile);\n }\n }\n\n return tiles;\n};\n\n},{}],16:[function(_dereq_,module,exports){\n\nfunction objClass(obj) {\n return Object.prototype.toString.call(obj);\n}\n\nmodule.exports.isCanvas = function isCanvas(element) {\n var cname = objClass(element);\n return cname === '[object HTMLCanvasElement]'\n /* browser */\n || cname === '[object OffscreenCanvas]' || cname === '[object Canvas]'\n /* node-canvas */\n ;\n};\n\nmodule.exports.isImage = function isImage(element) {\n return objClass(element) === '[object HTMLImageElement]';\n};\n\nmodule.exports.isImageBitmap = function isImageBitmap(element) {\n return objClass(element) === '[object ImageBitmap]';\n};\n\nmodule.exports.limiter = function limiter(concurrency) {\n var active = 0,\n queue = [];\n\n function roll() {\n if (active < concurrency && queue.length) {\n active++;\n queue.shift()();\n }\n }\n\n return function limit(fn) {\n return new Promise(function (resolve, reject) {\n queue.push(function () {\n fn().then(function (result) {\n resolve(result);\n active--;\n roll();\n }, function (err) {\n reject(err);\n active--;\n roll();\n });\n });\n roll();\n });\n };\n};\n\nmodule.exports.cib_quality_name = function cib_quality_name(num) {\n switch (num) {\n case 0:\n return 'pixelated';\n\n case 1:\n return 'low';\n\n case 2:\n return 'medium';\n }\n\n return 'high';\n};\n\nmodule.exports.cib_support = function cib_support(createCanvas) {\n return Promise.resolve().then(function () {\n if (typeof createImageBitmap === 'undefined') {\n return false;\n }\n\n var c = createCanvas(100, 100);\n return createImageBitmap(c, 0, 0, 100, 100, {\n resizeWidth: 10,\n resizeHeight: 10,\n resizeQuality: 'high'\n }).then(function (bitmap) {\n var status = bitmap.width === 10; // Branch below is filtered on upper level. We do not call resize\n // detection for basic ImageBitmap.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap\n // old Crome 51 has ImageBitmap without .close(). Then this code\n // will throw and return 'false' as expected.\n //\n\n bitmap.close();\n c = null;\n return status;\n });\n })[\"catch\"](function () {\n return false;\n });\n};\n\nmodule.exports.worker_offscreen_canvas_support = function worker_offscreen_canvas_support() {\n return new Promise(function (resolve, reject) {\n if (typeof OffscreenCanvas === 'undefined') {\n // if OffscreenCanvas is present, we assume browser supports Worker and built-in Promise as well\n resolve(false);\n return;\n }\n\n function workerPayload(self) {\n if (typeof createImageBitmap === 'undefined') {\n self.postMessage(false);\n return;\n }\n\n Promise.resolve().then(function () {\n var canvas = new OffscreenCanvas(10, 10); // test that 2d context can be used in worker\n\n var ctx = canvas.getContext('2d');\n ctx.rect(0, 0, 1, 1); // test that cib can be used to return image bitmap from worker\n\n return createImageBitmap(canvas, 0, 0, 1, 1);\n }).then(function () {\n return self.postMessage(true);\n }, function () {\n return self.postMessage(false);\n });\n }\n\n var code = btoa(\"(\".concat(workerPayload.toString(), \")(self);\"));\n var w = new Worker(\"data:text/javascript;base64,\".concat(code));\n\n w.onmessage = function (ev) {\n return resolve(ev.data);\n };\n\n w.onerror = reject;\n }).then(function (result) {\n return result;\n }, function () {\n return false;\n });\n}; // Check if canvas.getContext('2d').getImageData can be used,\n// FireFox randomizes the output of that function in `privacy.resistFingerprinting` mode\n\n\nmodule.exports.can_use_canvas = function can_use_canvas(createCanvas) {\n var usable = false;\n\n try {\n var canvas = createCanvas(2, 1);\n var ctx = canvas.getContext('2d');\n var d = ctx.createImageData(2, 1);\n d.data[0] = 12;\n d.data[1] = 23;\n d.data[2] = 34;\n d.data[3] = 255;\n d.data[4] = 45;\n d.data[5] = 56;\n d.data[6] = 67;\n d.data[7] = 255;\n ctx.putImageData(d, 0, 0);\n d = null;\n d = ctx.getImageData(0, 0, 2, 1);\n\n if (d.data[0] === 12 && d.data[1] === 23 && d.data[2] === 34 && d.data[3] === 255 && d.data[4] === 45 && d.data[5] === 56 && d.data[6] === 67 && d.data[7] === 255) {\n usable = true;\n }\n } catch (err) {}\n\n return usable;\n}; // Check if createImageBitmap(img, sx, sy, sw, sh) signature works correctly\n// with JPEG images oriented with Exif;\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1220671\n// TODO: remove after it's fixed in chrome for at least 2 releases\n\n\nmodule.exports.cib_can_use_region = function cib_can_use_region() {\n return new Promise(function (resolve) {\n if (typeof createImageBitmap === 'undefined') {\n resolve(false);\n return;\n }\n\n var image = new Image();\n image.src = 'data:image/jpeg;base64,' + '/9j/4QBiRXhpZgAATU0AKgAAAAgABQESAAMAAAABAAYAAAEaAAUAAAABAAAASgEbAAUAA' + 'AABAAAAUgEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAAAAABIAAAAAQAAAEgAAAAB/9' + 'sAQwAEAwMEAwMEBAMEBQQEBQYKBwYGBgYNCQoICg8NEBAPDQ8OERMYFBESFxIODxUcFRc' + 'ZGRsbGxAUHR8dGh8YGhsa/9sAQwEEBQUGBQYMBwcMGhEPERoaGhoaGhoaGhoaGhoaGhoa' + 'GhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoa/8IAEQgAAQACAwERAAIRAQMRA' + 'f/EABQAAQAAAAAAAAAAAAAAAAAAAAf/xAAUAQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAA' + 'IQAxAAAAF/P//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAQUCf//EABQRAQAAAAA' + 'AAAAAAAAAAAAAAAD/2gAIAQMBAT8Bf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIB' + 'AT8Bf//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEABj8Cf//EABQQAQAAAAAAAAAAA' + 'AAAAAAAAAD/2gAIAQEAAT8hf//aAAwDAQACAAMAAAAQH//EABQRAQAAAAAAAAAAAAAAAA' + 'AAAAD/2gAIAQMBAT8Qf//EABQRAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQIBAT8Qf//EABQ' + 'QAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAT8Qf//Z';\n\n image.onload = function () {\n createImageBitmap(image, 0, 0, image.width, image.height).then(function (bitmap) {\n if (bitmap.width === image.width && bitmap.height === image.height) {\n resolve(true);\n } else {\n resolve(false);\n }\n }, function () {\n return resolve(false);\n });\n };\n\n image.onerror = function () {\n return resolve(false);\n };\n });\n};\n\n},{}],17:[function(_dereq_,module,exports){\n\nmodule.exports = function () {\n var MathLib = _dereq_('./mathlib');\n\n var mathLib;\n /* eslint-disable no-undef */\n\n onmessage = function onmessage(ev) {\n var tileOpts = ev.data.opts;\n\n if (!tileOpts.src && tileOpts.srcBitmap) {\n var canvas = new OffscreenCanvas(tileOpts.width, tileOpts.height);\n var ctx = canvas.getContext('2d');\n ctx.drawImage(tileOpts.srcBitmap, 0, 0);\n tileOpts.src = ctx.getImageData(0, 0, tileOpts.width, tileOpts.height).data;\n canvas.width = canvas.height = 0;\n canvas = null;\n tileOpts.srcBitmap.close();\n tileOpts.srcBitmap = null; // Temporary force out data to typed array, because Chrome have artefacts\n // https://github.com/nodeca/pica/issues/223\n // returnBitmap = true;\n }\n\n if (!mathLib) mathLib = new MathLib(ev.data.features); // Use multimath's sync auto-init. Avoid Promise use in old browsers,\n // because polyfills are not propagated to webworker.\n\n var data = mathLib.resizeAndUnsharp(tileOpts);\n\n {\n postMessage({\n data: data\n }, [data.buffer]);\n }\n };\n};\n\n},{\"./mathlib\":1}],18:[function(_dereq_,module,exports){\n// Calculate Gaussian blur of an image using IIR filter\n// The method is taken from Intel's white paper and code example attached to it:\n// https://software.intel.com/en-us/articles/iir-gaussian-blur-filter\n// -implementation-using-intel-advanced-vector-extensions\n\nvar a0, a1, a2, a3, b1, b2, left_corner, right_corner;\n\nfunction gaussCoef(sigma) {\n if (sigma < 0.5) {\n sigma = 0.5;\n }\n\n var a = Math.exp(0.726 * 0.726) / sigma,\n g1 = Math.exp(-a),\n g2 = Math.exp(-2 * a),\n k = (1 - g1) * (1 - g1) / (1 + 2 * a * g1 - g2);\n\n a0 = k;\n a1 = k * (a - 1) * g1;\n a2 = k * (a + 1) * g1;\n a3 = -k * g2;\n b1 = 2 * g1;\n b2 = -g2;\n left_corner = (a0 + a1) / (1 - b1 - b2);\n right_corner = (a2 + a3) / (1 - b1 - b2);\n\n // Attempt to force type to FP32.\n return new Float32Array([ a0, a1, a2, a3, b1, b2, left_corner, right_corner ]);\n}\n\nfunction convolveMono16(src, out, line, coeff, width, height) {\n // takes src image and writes the blurred and transposed result into out\n\n var prev_src, curr_src, curr_out, prev_out, prev_prev_out;\n var src_index, out_index, line_index;\n var i, j;\n var coeff_a0, coeff_a1, coeff_b1, coeff_b2;\n\n for (i = 0; i < height; i++) {\n src_index = i * width;\n out_index = i;\n line_index = 0;\n\n // left to right\n prev_src = src[src_index];\n prev_prev_out = prev_src * coeff[6];\n prev_out = prev_prev_out;\n\n coeff_a0 = coeff[0];\n coeff_a1 = coeff[1];\n coeff_b1 = coeff[4];\n coeff_b2 = coeff[5];\n\n for (j = 0; j < width; j++) {\n curr_src = src[src_index];\n\n curr_out = curr_src * coeff_a0 +\n prev_src * coeff_a1 +\n prev_out * coeff_b1 +\n prev_prev_out * coeff_b2;\n\n prev_prev_out = prev_out;\n prev_out = curr_out;\n prev_src = curr_src;\n\n line[line_index] = prev_out;\n line_index++;\n src_index++;\n }\n\n src_index--;\n line_index--;\n out_index += height * (width - 1);\n\n // right to left\n prev_src = src[src_index];\n prev_prev_out = prev_src * coeff[7];\n prev_out = prev_prev_out;\n curr_src = prev_src;\n\n coeff_a0 = coeff[2];\n coeff_a1 = coeff[3];\n\n for (j = width - 1; j >= 0; j--) {\n curr_out = curr_src * coeff_a0 +\n prev_src * coeff_a1 +\n prev_out * coeff_b1 +\n prev_prev_out * coeff_b2;\n\n prev_prev_out = prev_out;\n prev_out = curr_out;\n\n prev_src = curr_src;\n curr_src = src[src_index];\n\n out[out_index] = line[line_index] + prev_out;\n\n src_index--;\n line_index--;\n out_index -= height;\n }\n }\n}\n\n\nfunction blurMono16(src, width, height, radius) {\n // Quick exit on zero radius\n if (!radius) { return; }\n\n var out = new Uint16Array(src.length),\n tmp_line = new Float32Array(Math.max(width, height));\n\n var coeff = gaussCoef(radius);\n\n convolveMono16(src, out, tmp_line, coeff, width, height);\n convolveMono16(out, src, tmp_line, coeff, height, width);\n}\n\nmodule.exports = blurMono16;\n\n},{}],19:[function(_dereq_,module,exports){\n\n\nvar assign = _dereq_('object-assign');\nvar base64decode = _dereq_('./lib/base64decode');\nvar hasWebAssembly = _dereq_('./lib/wa_detect');\n\n\nvar DEFAULT_OPTIONS = {\n js: true,\n wasm: true\n};\n\n\nfunction MultiMath(options) {\n if (!(this instanceof MultiMath)) return new MultiMath(options);\n\n var opts = assign({}, DEFAULT_OPTIONS, options || {});\n\n this.options = opts;\n\n this.__cache = {};\n\n this.__init_promise = null;\n this.__modules = opts.modules || {};\n this.__memory = null;\n this.__wasm = {};\n\n this.__isLE = ((new Uint32Array((new Uint8Array([ 1, 0, 0, 0 ])).buffer))[0] === 1);\n\n if (!this.options.js && !this.options.wasm) {\n throw new Error('mathlib: at least \"js\" or \"wasm\" should be enabled');\n }\n}\n\n\nMultiMath.prototype.has_wasm = hasWebAssembly;\n\n\nMultiMath.prototype.use = function (module) {\n this.__modules[module.name] = module;\n\n // Pin the best possible implementation\n if (this.options.wasm && this.has_wasm() && module.wasm_fn) {\n this[module.name] = module.wasm_fn;\n } else {\n this[module.name] = module.fn;\n }\n\n return this;\n};\n\n\nMultiMath.prototype.init = function () {\n if (this.__init_promise) return this.__init_promise;\n\n if (!this.options.js && this.options.wasm && !this.has_wasm()) {\n return Promise.reject(new Error('mathlib: only \"wasm\" was enabled, but it\\'s not supported'));\n }\n\n var self = this;\n\n this.__init_promise = Promise.all(Object.keys(self.__modules).map(function (name) {\n var module = self.__modules[name];\n\n if (!self.options.wasm || !self.has_wasm() || !module.wasm_fn) return null;\n\n // If already compiled - exit\n if (self.__wasm[name]) return null;\n\n // Compile wasm source\n return WebAssembly.compile(self.__base64decode(module.wasm_src))\n .then(function (m) { self.__wasm[name] = m; });\n }))\n .then(function () { return self; });\n\n return this.__init_promise;\n};\n\n\n////////////////////////////////////////////////////////////////////////////////\n// Methods below are for internal use from plugins\n\n\n// Simple decode base64 to typed array. Useful to load embedded webassembly\n// code. You probably don't need to call this method directly.\n//\nMultiMath.prototype.__base64decode = base64decode;\n\n\n// Increase current memory to include specified number of bytes. Do nothing if\n// size is already ok. You probably don't need to call this method directly,\n// because it will be invoked from `.__instance()`.\n//\nMultiMath.prototype.__reallocate = function mem_grow_to(bytes) {\n if (!this.__memory) {\n this.__memory = new WebAssembly.Memory({\n initial: Math.ceil(bytes / (64 * 1024))\n });\n return this.__memory;\n }\n\n var mem_size = this.__memory.buffer.byteLength;\n\n if (mem_size < bytes) {\n this.__memory.grow(Math.ceil((bytes - mem_size) / (64 * 1024)));\n }\n\n return this.__memory;\n};\n\n\n// Returns instantinated webassembly item by name, with specified memory size\n// and environment.\n// - use cache if available\n// - do sync module init, if async init was not called earlier\n// - allocate memory if not enougth\n// - can export functions to webassembly via \"env_extra\",\n// for example, { exp: Math.exp }\n//\nMultiMath.prototype.__instance = function instance(name, memsize, env_extra) {\n if (memsize) this.__reallocate(memsize);\n\n // If .init() was not called, do sync compile\n if (!this.__wasm[name]) {\n var module = this.__modules[name];\n this.__wasm[name] = new WebAssembly.Module(this.__base64decode(module.wasm_src));\n }\n\n if (!this.__cache[name]) {\n var env_base = {\n memoryBase: 0,\n memory: this.__memory,\n tableBase: 0,\n table: new WebAssembly.Table({ initial: 0, element: 'anyfunc' })\n };\n\n this.__cache[name] = new WebAssembly.Instance(this.__wasm[name], {\n env: assign(env_base, env_extra || {})\n });\n }\n\n return this.__cache[name];\n};\n\n\n// Helper to calculate memory aligh for pointers. Webassembly does not require\n// this, but you may wish to experiment. Default base = 8;\n//\nMultiMath.prototype.__align = function align(number, base) {\n base = base || 8;\n var reminder = number % base;\n return number + (reminder ? base - reminder : 0);\n};\n\n\nmodule.exports = MultiMath;\n\n},{\"./lib/base64decode\":20,\"./lib/wa_detect\":21,\"object-assign\":22}],20:[function(_dereq_,module,exports){\n\n\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n\nmodule.exports = function base64decode(str) {\n var input = str.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length;\n\n var out = new Uint8Array((max * 3) >> 2);\n\n // Collect by 6*4 bits (3 bytes)\n\n var bits = 0;\n var ptr = 0;\n\n for (var idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n out[ptr++] = (bits >> 16) & 0xFF;\n out[ptr++] = (bits >> 8) & 0xFF;\n out[ptr++] = bits & 0xFF;\n }\n\n bits = (bits << 6) | BASE64_MAP.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n var tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n out[ptr++] = (bits >> 16) & 0xFF;\n out[ptr++] = (bits >> 8) & 0xFF;\n out[ptr++] = bits & 0xFF;\n } else if (tailbits === 18) {\n out[ptr++] = (bits >> 10) & 0xFF;\n out[ptr++] = (bits >> 2) & 0xFF;\n } else if (tailbits === 12) {\n out[ptr++] = (bits >> 4) & 0xFF;\n }\n\n return out;\n};\n\n},{}],21:[function(_dereq_,module,exports){\n\n\nvar wa;\n\n\nmodule.exports = function hasWebAssembly() {\n // use cache if called before;\n if (typeof wa !== 'undefined') return wa;\n\n wa = false;\n\n if (typeof WebAssembly === 'undefined') return wa;\n\n // If WebAssenbly is disabled, code can throw on compile\n try {\n // https://github.com/brion/min-wasm-fail/blob/master/min-wasm-fail.in.js\n // Additional check that WA internals are correct\n\n /* eslint-disable comma-spacing, max-len */\n var bin = new Uint8Array([ 0,97,115,109,1,0,0,0,1,6,1,96,1,127,1,127,3,2,1,0,5,3,1,0,1,7,8,1,4,116,101,115,116,0,0,10,16,1,14,0,32,0,65,1,54,2,0,32,0,40,2,0,11 ]);\n var module = new WebAssembly.Module(bin);\n var instance = new WebAssembly.Instance(module, {});\n\n // test storing to and loading from a non-zero location via a parameter.\n // Safari on iOS 11.2.5 returns 0 unexpectedly at non-zero locations\n if (instance.exports.test(4) !== 0) wa = true;\n\n return wa;\n } catch (__) {}\n\n return wa;\n};\n\n},{}],22:[function(_dereq_,module,exports){\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n},{}],23:[function(_dereq_,module,exports){\nvar bundleFn = arguments[3];\nvar sources = arguments[4];\nvar cache = arguments[5];\n\nvar stringify = JSON.stringify;\n\nmodule.exports = function (fn, options) {\n var wkey;\n var cacheKeys = Object.keys(cache);\n\n for (var i = 0, l = cacheKeys.length; i < l; i++) {\n var key = cacheKeys[i];\n var exp = cache[key].exports;\n // Using babel as a transpiler to use esmodule, the export will always\n // be an object with the default export as a property of it. To ensure\n // the existing api and babel esmodule exports are both supported we\n // check for both\n if (exp === fn || exp && exp.default === fn) {\n wkey = key;\n break;\n }\n }\n\n if (!wkey) {\n wkey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);\n var wcache = {};\n for (var i = 0, l = cacheKeys.length; i < l; i++) {\n var key = cacheKeys[i];\n wcache[key] = key;\n }\n sources[wkey] = [\n 'function(require,module,exports){' + fn + '(self); }',\n wcache\n ];\n }\n var skey = Math.floor(Math.pow(16, 8) * Math.random()).toString(16);\n\n var scache = {}; scache[wkey] = wkey;\n sources[skey] = [\n 'function(require,module,exports){' +\n // try to call default if defined to also support babel esmodule exports\n 'var f = require(' + stringify(wkey) + ');' +\n '(f.default ? f.default : f)(self);' +\n '}',\n scache\n ];\n\n var workerSources = {};\n resolveSources(skey);\n\n function resolveSources(key) {\n workerSources[key] = true;\n\n for (var depPath in sources[key][1]) {\n var depKey = sources[key][1][depPath];\n if (!workerSources[depKey]) {\n resolveSources(depKey);\n }\n }\n }\n\n var src = '(' + bundleFn + ')({'\n + Object.keys(workerSources).map(function (key) {\n return stringify(key) + ':['\n + sources[key][0]\n + ',' + stringify(sources[key][1]) + ']'\n ;\n }).join(',')\n + '},{},[' + stringify(skey) + '])'\n ;\n\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\n\n var blob = new Blob([src], { type: 'text/javascript' });\n if (options && options.bare) { return blob; }\n var workerUrl = URL.createObjectURL(blob);\n var worker = new Worker(workerUrl);\n worker.objectURL = workerUrl;\n return worker;\n};\n\n},{}],\"/index.js\":[function(_dereq_,module,exports){\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar assign = _dereq_('object-assign');\n\nvar webworkify = _dereq_('webworkify');\n\nvar MathLib = _dereq_('./lib/mathlib');\n\nvar Pool = _dereq_('./lib/pool');\n\nvar utils = _dereq_('./lib/utils');\n\nvar worker = _dereq_('./lib/worker');\n\nvar createStages = _dereq_('./lib/stepper');\n\nvar createRegions = _dereq_('./lib/tiler');\n\nvar filter_info = _dereq_('./lib/mm_resize/resize_filter_info'); // Deduplicate pools & limiters with the same configs\n// when user creates multiple pica instances.\n\n\nvar singletones = {};\nvar NEED_SAFARI_FIX = false;\n\ntry {\n if (typeof navigator !== 'undefined' && navigator.userAgent) {\n NEED_SAFARI_FIX = navigator.userAgent.indexOf('Safari') >= 0;\n }\n} catch (e) {}\n\nvar concurrency = 1;\n\nif (typeof navigator !== 'undefined') {\n concurrency = Math.min(navigator.hardwareConcurrency || 1, 4);\n}\n\nvar DEFAULT_PICA_OPTS = {\n tile: 1024,\n concurrency: concurrency,\n features: ['js', 'wasm', 'ww'],\n idle: 2000,\n createCanvas: function createCanvas(width, height) {\n var tmpCanvas = document.createElement('canvas');\n tmpCanvas.width = width;\n tmpCanvas.height = height;\n return tmpCanvas;\n }\n};\nvar DEFAULT_RESIZE_OPTS = {\n filter: 'mks2013',\n unsharpAmount: 0,\n unsharpRadius: 0.0,\n unsharpThreshold: 0\n};\nvar CAN_NEW_IMAGE_DATA = false;\nvar CAN_CREATE_IMAGE_BITMAP = false;\nvar CAN_USE_CANVAS_GET_IMAGE_DATA = false;\nvar CAN_USE_OFFSCREEN_CANVAS = false;\nvar CAN_USE_CIB_REGION_FOR_IMAGE = false;\n\nfunction workerFabric() {\n return {\n value: webworkify(worker),\n destroy: function destroy() {\n this.value.terminate();\n\n if (typeof window !== 'undefined') {\n var url = window.URL || window.webkitURL || window.mozURL || window.msURL;\n\n if (url && url.revokeObjectURL && this.value.objectURL) {\n url.revokeObjectURL(this.value.objectURL);\n }\n }\n }\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// API methods\n\n\nfunction Pica(options) {\n if (!(this instanceof Pica)) return new Pica(options);\n this.options = assign({}, DEFAULT_PICA_OPTS, options || {});\n var limiter_key = \"lk_\".concat(this.options.concurrency); // Share limiters to avoid multiple parallel workers when user creates\n // multiple pica instances.\n\n this.__limit = singletones[limiter_key] || utils.limiter(this.options.concurrency);\n if (!singletones[limiter_key]) singletones[limiter_key] = this.__limit; // List of supported features, according to options & browser/node.js\n\n this.features = {\n js: false,\n // pure JS implementation, can be disabled for testing\n wasm: false,\n // webassembly implementation for heavy functions\n cib: false,\n // resize via createImageBitmap (only FF at this moment)\n ww: false // webworkers\n\n };\n this.__workersPool = null; // Store requested features for webworkers\n\n this.__requested_features = [];\n this.__mathlib = null;\n}\n\nPica.prototype.init = function () {\n var _this = this;\n\n if (this.__initPromise) return this.__initPromise; // Test if we can create ImageData without canvas and memory copy\n\n if (typeof ImageData !== 'undefined' && typeof Uint8ClampedArray !== 'undefined') {\n try {\n /* eslint-disable no-new */\n new ImageData(new Uint8ClampedArray(400), 10, 10);\n CAN_NEW_IMAGE_DATA = true;\n } catch (__) {}\n } // ImageBitmap can be effective in 2 places:\n //\n // 1. Threaded jpeg unpack (basic)\n // 2. Built-in resize (blocked due problem in chrome, see issue #89)\n //\n // For basic use we also need ImageBitmap wo support .close() method,\n // see https://developer.mozilla.org/ru/docs/Web/API/ImageBitmap\n\n\n if (typeof ImageBitmap !== 'undefined') {\n if (ImageBitmap.prototype && ImageBitmap.prototype.close) {\n CAN_CREATE_IMAGE_BITMAP = true;\n } else {\n this.debug('ImageBitmap does not support .close(), disabled');\n }\n }\n\n var features = this.options.features.slice();\n\n if (features.indexOf('all') >= 0) {\n features = ['cib', 'wasm', 'js', 'ww'];\n }\n\n this.__requested_features = features;\n this.__mathlib = new MathLib(features); // Check WebWorker support if requested\n\n if (features.indexOf('ww') >= 0) {\n if (typeof window !== 'undefined' && 'Worker' in window) {\n // IE <= 11 don't allow to create webworkers from string. We should check it.\n // https://connect.microsoft.com/IE/feedback/details/801810/web-workers-from-blob-urls-in-ie-10-and-11\n try {\n var wkr = _dereq_('webworkify')(function () {});\n\n wkr.terminate();\n this.features.ww = true; // pool uniqueness depends on pool config + webworker config\n\n var wpool_key = \"wp_\".concat(JSON.stringify(this.options));\n\n if (singletones[wpool_key]) {\n this.__workersPool = singletones[wpool_key];\n } else {\n this.__workersPool = new Pool(workerFabric, this.options.idle);\n singletones[wpool_key] = this.__workersPool;\n }\n } catch (__) {}\n }\n }\n\n var initMath = this.__mathlib.init().then(function (mathlib) {\n // Copy detected features\n assign(_this.features, mathlib.features);\n });\n\n var checkCibResize;\n\n if (!CAN_CREATE_IMAGE_BITMAP) {\n checkCibResize = Promise.resolve(false);\n } else {\n checkCibResize = utils.cib_support(this.options.createCanvas).then(function (status) {\n if (_this.features.cib && features.indexOf('cib') < 0) {\n _this.debug('createImageBitmap() resize supported, but disabled by config');\n\n return;\n }\n\n if (features.indexOf('cib') >= 0) _this.features.cib = status;\n });\n }\n\n CAN_USE_CANVAS_GET_IMAGE_DATA = utils.can_use_canvas(this.options.createCanvas);\n var checkOffscreenCanvas;\n\n if (CAN_CREATE_IMAGE_BITMAP && CAN_NEW_IMAGE_DATA && features.indexOf('ww') !== -1) {\n checkOffscreenCanvas = utils.worker_offscreen_canvas_support();\n } else {\n checkOffscreenCanvas = Promise.resolve(false);\n }\n\n checkOffscreenCanvas = checkOffscreenCanvas.then(function (result) {\n CAN_USE_OFFSCREEN_CANVAS = result;\n }); // we use createImageBitmap to crop image data and pass it to workers,\n // so need to check whether function works correctly;\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1220671\n\n var checkCibRegion = utils.cib_can_use_region().then(function (result) {\n CAN_USE_CIB_REGION_FOR_IMAGE = result;\n }); // Init math lib. That's async because can load some\n\n this.__initPromise = Promise.all([initMath, checkCibResize, checkOffscreenCanvas, checkCibRegion]).then(function () {\n return _this;\n });\n return this.__initPromise;\n}; // Call resizer in webworker or locally, depending on config\n\n\nPica.prototype.__invokeResize = function (tileOpts, opts) {\n var _this2 = this;\n\n // Share cache between calls:\n //\n // - wasm instance\n // - wasm memory object\n //\n opts.__mathCache = opts.__mathCache || {};\n return Promise.resolve().then(function () {\n if (!_this2.features.ww) {\n // not possible to have ImageBitmap here if user disabled WW\n return {\n data: _this2.__mathlib.resizeAndUnsharp(tileOpts, opts.__mathCache)\n };\n }\n\n return new Promise(function (resolve, reject) {\n var w = _this2.__workersPool.acquire();\n\n if (opts.cancelToken) opts.cancelToken[\"catch\"](function (err) {\n return reject(err);\n });\n\n w.value.onmessage = function (ev) {\n w.release();\n if (ev.data.err) reject(ev.data.err);else resolve(ev.data);\n };\n\n var transfer = [];\n if (tileOpts.src) transfer.push(tileOpts.src.buffer);\n if (tileOpts.srcBitmap) transfer.push(tileOpts.srcBitmap);\n w.value.postMessage({\n opts: tileOpts,\n features: _this2.__requested_features,\n preload: {\n wasm_nodule: _this2.__mathlib.__\n }\n }, transfer);\n });\n });\n}; // this function can return promise if createImageBitmap is used\n\n\nPica.prototype.__extractTileData = function (tile, from, opts, stageEnv, extractTo) {\n if (this.features.ww && CAN_USE_OFFSCREEN_CANVAS && ( // createImageBitmap doesn't work for images (Image, ImageBitmap) with Exif orientation in Chrome,\n // can use canvas because canvas doesn't have orientation;\n // see https://bugs.chromium.org/p/chromium/issues/detail?id=1220671\n utils.isCanvas(from) || CAN_USE_CIB_REGION_FOR_IMAGE)) {\n this.debug('Create tile for OffscreenCanvas');\n return createImageBitmap(stageEnv.srcImageBitmap || from, tile.x, tile.y, tile.width, tile.height).then(function (bitmap) {\n extractTo.srcBitmap = bitmap;\n return extractTo;\n });\n } // Extract tile RGBA buffer, depending on input type\n\n\n if (utils.isCanvas(from)) {\n if (!stageEnv.srcCtx) stageEnv.srcCtx = from.getContext('2d'); // If input is Canvas - extract region data directly\n\n this.debug('Get tile pixel data');\n extractTo.src = stageEnv.srcCtx.getImageData(tile.x, tile.y, tile.width, tile.height).data;\n return extractTo;\n } // If input is Image or decoded to ImageBitmap,\n // draw region to temporary canvas and extract data from it\n //\n // Note! Attempt to reuse this canvas causes significant slowdown in chrome\n //\n\n\n this.debug('Draw tile imageBitmap/image to temporary canvas');\n var tmpCanvas = this.options.createCanvas(tile.width, tile.height);\n var tmpCtx = tmpCanvas.getContext('2d');\n tmpCtx.globalCompositeOperation = 'copy';\n tmpCtx.drawImage(stageEnv.srcImageBitmap || from, tile.x, tile.y, tile.width, tile.height, 0, 0, tile.width, tile.height);\n this.debug('Get tile pixel data');\n extractTo.src = tmpCtx.getImageData(0, 0, tile.width, tile.height).data; // Safari 12 workaround\n // https://github.com/nodeca/pica/issues/199\n\n tmpCanvas.width = tmpCanvas.height = 0;\n return extractTo;\n};\n\nPica.prototype.__landTileData = function (tile, result, stageEnv) {\n var toImageData;\n this.debug('Convert raw rgba tile result to ImageData');\n\n if (result.bitmap) {\n stageEnv.toCtx.drawImage(result.bitmap, tile.toX, tile.toY);\n return null;\n }\n\n if (CAN_NEW_IMAGE_DATA) {\n // this branch is for modern browsers\n // If `new ImageData()` & Uint8ClampedArray suported\n toImageData = new ImageData(new Uint8ClampedArray(result.data), tile.toWidth, tile.toHeight);\n } else {\n // fallback for `node-canvas` and old browsers\n // (IE11 has ImageData but does not support `new ImageData()`)\n toImageData = stageEnv.toCtx.createImageData(tile.toWidth, tile.toHeight);\n\n if (toImageData.data.set) {\n toImageData.data.set(result.data);\n } else {\n // IE9 don't have `.set()`\n for (var i = toImageData.data.length - 1; i >= 0; i--) {\n toImageData.data[i] = result.data[i];\n }\n }\n }\n\n this.debug('Draw tile');\n\n if (NEED_SAFARI_FIX) {\n // Safari draws thin white stripes between tiles without this fix\n stageEnv.toCtx.putImageData(toImageData, tile.toX, tile.toY, tile.toInnerX - tile.toX, tile.toInnerY - tile.toY, tile.toInnerWidth + 1e-5, tile.toInnerHeight + 1e-5);\n } else {\n stageEnv.toCtx.putImageData(toImageData, tile.toX, tile.toY, tile.toInnerX - tile.toX, tile.toInnerY - tile.toY, tile.toInnerWidth, tile.toInnerHeight);\n }\n\n return null;\n};\n\nPica.prototype.__tileAndResize = function (from, to, opts) {\n var _this3 = this;\n\n var stageEnv = {\n srcCtx: null,\n srcImageBitmap: null,\n isImageBitmapReused: false,\n toCtx: null\n };\n\n var processTile = function processTile(tile) {\n return _this3.__limit(function () {\n if (opts.canceled) return opts.cancelToken;\n var tileOpts = {\n width: tile.width,\n height: tile.height,\n toWidth: tile.toWidth,\n toHeight: tile.toHeight,\n scaleX: tile.scaleX,\n scaleY: tile.scaleY,\n offsetX: tile.offsetX,\n offsetY: tile.offsetY,\n filter: opts.filter,\n unsharpAmount: opts.unsharpAmount,\n unsharpRadius: opts.unsharpRadius,\n unsharpThreshold: opts.unsharpThreshold\n };\n\n _this3.debug('Invoke resize math');\n\n return Promise.resolve(tileOpts).then(function (tileOpts) {\n return _this3.__extractTileData(tile, from, opts, stageEnv, tileOpts);\n }).then(function (tileOpts) {\n _this3.debug('Invoke resize math');\n\n return _this3.__invokeResize(tileOpts, opts);\n }).then(function (result) {\n if (opts.canceled) return opts.cancelToken;\n stageEnv.srcImageData = null;\n return _this3.__landTileData(tile, result, stageEnv);\n });\n });\n }; // Need to normalize data source first. It can be canvas or image.\n // If image - try to decode in background if possible\n\n\n return Promise.resolve().then(function () {\n stageEnv.toCtx = to.getContext('2d');\n if (utils.isCanvas(from)) return null;\n\n if (utils.isImageBitmap(from)) {\n stageEnv.srcImageBitmap = from;\n stageEnv.isImageBitmapReused = true;\n return null;\n }\n\n if (utils.isImage(from)) {\n // try do decode image in background for faster next operations;\n // if we're using offscreen canvas, cib is called per tile, so not needed here\n if (!CAN_CREATE_IMAGE_BITMAP) return null;\n\n _this3.debug('Decode image via createImageBitmap');\n\n return createImageBitmap(from).then(function (imageBitmap) {\n stageEnv.srcImageBitmap = imageBitmap;\n }) // Suppress error to use fallback, if method fails\n // https://github.com/nodeca/pica/issues/190\n\n /* eslint-disable no-unused-vars */\n [\"catch\"](function (e) {\n return null;\n });\n }\n\n throw new Error('Pica: \".from\" should be Image, Canvas or ImageBitmap');\n }).then(function () {\n if (opts.canceled) return opts.cancelToken;\n\n _this3.debug('Calculate tiles'); //\n // Here we are with \"normalized\" source,\n // follow to tiling\n //\n\n\n var regions = createRegions({\n width: opts.width,\n height: opts.height,\n srcTileSize: _this3.options.tile,\n toWidth: opts.toWidth,\n toHeight: opts.toHeight,\n destTileBorder: opts.__destTileBorder\n });\n var jobs = regions.map(function (tile) {\n return processTile(tile);\n });\n\n function cleanup(stageEnv) {\n if (stageEnv.srcImageBitmap) {\n if (!stageEnv.isImageBitmapReused) stageEnv.srcImageBitmap.close();\n stageEnv.srcImageBitmap = null;\n }\n }\n\n _this3.debug('Process tiles');\n\n return Promise.all(jobs).then(function () {\n _this3.debug('Finished!');\n\n cleanup(stageEnv);\n return to;\n }, function (err) {\n cleanup(stageEnv);\n throw err;\n });\n });\n};\n\nPica.prototype.__processStages = function (stages, from, to, opts) {\n var _this4 = this;\n\n if (opts.canceled) return opts.cancelToken;\n\n var _stages$shift = stages.shift(),\n _stages$shift2 = _slicedToArray(_stages$shift, 2),\n toWidth = _stages$shift2[0],\n toHeight = _stages$shift2[1];\n\n var isLastStage = stages.length === 0; // Optimization for legacy filters -\n // only use user-defined quality for the last stage,\n // use simpler (Hamming) filter for the first stages where\n // scale factor is large enough (more than 2-3)\n //\n // For advanced filters (mks2013 and custom) - skip optimization,\n // because need to apply sharpening every time\n\n var filter;\n if (isLastStage || filter_info.q2f.indexOf(opts.filter) < 0) filter = opts.filter;else if (opts.filter === 'box') filter = 'box';else filter = 'hamming';\n opts = assign({}, opts, {\n toWidth: toWidth,\n toHeight: toHeight,\n filter: filter\n });\n var tmpCanvas;\n\n if (!isLastStage) {\n // create temporary canvas\n tmpCanvas = this.options.createCanvas(toWidth, toHeight);\n }\n\n return this.__tileAndResize(from, isLastStage ? to : tmpCanvas, opts).then(function () {\n if (isLastStage) return to;\n opts.width = toWidth;\n opts.height = toHeight;\n return _this4.__processStages(stages, tmpCanvas, to, opts);\n }).then(function (res) {\n if (tmpCanvas) {\n // Safari 12 workaround\n // https://github.com/nodeca/pica/issues/199\n tmpCanvas.width = tmpCanvas.height = 0;\n }\n\n return res;\n });\n};\n\nPica.prototype.__resizeViaCreateImageBitmap = function (from, to, opts) {\n var _this5 = this;\n\n var toCtx = to.getContext('2d');\n this.debug('Resize via createImageBitmap()');\n return createImageBitmap(from, {\n resizeWidth: opts.toWidth,\n resizeHeight: opts.toHeight,\n resizeQuality: utils.cib_quality_name(filter_info.f2q[opts.filter])\n }).then(function (imageBitmap) {\n if (opts.canceled) return opts.cancelToken; // if no unsharp - draw directly to output canvas\n\n if (!opts.unsharpAmount) {\n toCtx.drawImage(imageBitmap, 0, 0);\n imageBitmap.close();\n toCtx = null;\n\n _this5.debug('Finished!');\n\n return to;\n }\n\n _this5.debug('Unsharp result');\n\n var tmpCanvas = _this5.options.createCanvas(opts.toWidth, opts.toHeight);\n\n var tmpCtx = tmpCanvas.getContext('2d');\n tmpCtx.drawImage(imageBitmap, 0, 0);\n imageBitmap.close();\n var iData = tmpCtx.getImageData(0, 0, opts.toWidth, opts.toHeight);\n\n _this5.__mathlib.unsharp_mask(iData.data, opts.toWidth, opts.toHeight, opts.unsharpAmount, opts.unsharpRadius, opts.unsharpThreshold);\n\n toCtx.putImageData(iData, 0, 0); // Safari 12 workaround\n // https://github.com/nodeca/pica/issues/199\n\n tmpCanvas.width = tmpCanvas.height = 0;\n iData = tmpCtx = tmpCanvas = toCtx = null;\n\n _this5.debug('Finished!');\n\n return to;\n });\n};\n\nPica.prototype.resize = function (from, to, options) {\n var _this6 = this;\n\n this.debug('Start resize...');\n var opts = assign({}, DEFAULT_RESIZE_OPTS);\n\n if (!isNaN(options)) {\n opts = assign(opts, {\n quality: options\n });\n } else if (options) {\n opts = assign(opts, options);\n }\n\n opts.toWidth = to.width;\n opts.toHeight = to.height;\n opts.width = from.naturalWidth || from.width;\n opts.height = from.naturalHeight || from.height; // Legacy `.quality` option\n\n if (Object.prototype.hasOwnProperty.call(opts, 'quality')) {\n if (opts.quality < 0 || opts.quality > 3) {\n throw new Error(\"Pica: .quality should be [0..3], got \".concat(opts.quality));\n }\n\n opts.filter = filter_info.q2f[opts.quality];\n } // Prevent stepper from infinite loop\n\n\n if (to.width === 0 || to.height === 0) {\n return Promise.reject(new Error(\"Invalid output size: \".concat(to.width, \"x\").concat(to.height)));\n }\n\n if (opts.unsharpRadius > 2) opts.unsharpRadius = 2;\n opts.canceled = false;\n\n if (opts.cancelToken) {\n // Wrap cancelToken to avoid successive resolve & set flag\n opts.cancelToken = opts.cancelToken.then(function (data) {\n opts.canceled = true;\n throw data;\n }, function (err) {\n opts.canceled = true;\n throw err;\n });\n }\n\n var DEST_TILE_BORDER = 3; // Max possible filter window size\n\n opts.__destTileBorder = Math.ceil(Math.max(DEST_TILE_BORDER, 2.5 * opts.unsharpRadius | 0));\n return this.init().then(function () {\n if (opts.canceled) return opts.cancelToken; // if createImageBitmap supports resize, just do it and return\n\n if (_this6.features.cib) {\n if (filter_info.q2f.indexOf(opts.filter) >= 0) {\n return _this6.__resizeViaCreateImageBitmap(from, to, opts);\n }\n\n _this6.debug('cib is enabled, but not supports provided filter, fallback to manual math');\n }\n\n if (!CAN_USE_CANVAS_GET_IMAGE_DATA) {\n var err = new Error('Pica: cannot use getImageData on canvas, ' + \"make sure fingerprinting protection isn't enabled\");\n err.code = 'ERR_GET_IMAGE_DATA';\n throw err;\n } //\n // No easy way, let's resize manually via arrays\n //\n\n\n var stages = createStages(opts.width, opts.height, opts.toWidth, opts.toHeight, _this6.options.tile, opts.__destTileBorder);\n return _this6.__processStages(stages, from, to, opts);\n });\n}; // RGBA buffer resize\n//\n\n\nPica.prototype.resizeBuffer = function (options) {\n var _this7 = this;\n\n var opts = assign({}, DEFAULT_RESIZE_OPTS, options); // Legacy `.quality` option\n\n if (Object.prototype.hasOwnProperty.call(opts, 'quality')) {\n if (opts.quality < 0 || opts.quality > 3) {\n throw new Error(\"Pica: .quality should be [0..3], got \".concat(opts.quality));\n }\n\n opts.filter = filter_info.q2f[opts.quality];\n }\n\n return this.init().then(function () {\n return _this7.__mathlib.resizeAndUnsharp(opts);\n });\n};\n\nPica.prototype.toBlob = function (canvas, mimeType, quality) {\n mimeType = mimeType || 'image/png';\n return new Promise(function (resolve) {\n if (canvas.toBlob) {\n canvas.toBlob(function (blob) {\n return resolve(blob);\n }, mimeType, quality);\n return;\n }\n\n if (canvas.convertToBlob) {\n resolve(canvas.convertToBlob({\n type: mimeType,\n quality: quality\n }));\n return;\n } // Fallback for old browsers\n\n\n var asString = atob(canvas.toDataURL(mimeType, quality).split(',')[1]);\n var len = asString.length;\n var asBuffer = new Uint8Array(len);\n\n for (var i = 0; i < len; i++) {\n asBuffer[i] = asString.charCodeAt(i);\n }\n\n resolve(new Blob([asBuffer], {\n type: mimeType\n }));\n });\n};\n\nPica.prototype.debug = function () {};\n\nmodule.exports = Pica;\n\n},{\"./lib/mathlib\":1,\"./lib/mm_resize/resize_filter_info\":7,\"./lib/pool\":13,\"./lib/stepper\":14,\"./lib/tiler\":15,\"./lib/utils\":16,\"./lib/worker\":17,\"object-assign\":22,\"webworkify\":23}]},{},[])(\"/index.js\")\n});\n}(pica$1));\n\nvar jpeg_plugins = {};\n\nvar image_traverse$1 = {exports: {}};\n\n(function (module) {\n\n//////////////////////////////////////////////////////////////////////////\n// Helpers\n//\nfunction error(message, code) {\n var err = new Error(message);\n err.code = code;\n return err;\n}\n\n\n// Convert number to 0xHH string\n//\nfunction to_hex(number) {\n var n = number.toString(16).toUpperCase();\n for (var i = 2 - n.length; i > 0; i--) n = '0' + n;\n return '0x' + n;\n}\n\n\nfunction utf8_encode(str) {\n try {\n return unescape(encodeURIComponent(str));\n } catch (_) {\n return str;\n }\n}\n\n\nfunction utf8_decode(str) {\n try {\n return decodeURIComponent(escape(str));\n } catch (_) {\n return str;\n }\n}\n\n\n// Check if input is a Uint8Array\n//\nfunction is_uint8array(bin) {\n return Object.prototype.toString.call(bin) === '[object Uint8Array]';\n}\n\n\n//////////////////////////////////////////////////////////////////////////\n// Exif parser\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n// - exif_start: Number - start of TIFF header (after Exif\\0\\0)\n// - exif_end: Number - end of Exif segment\n// - on_entry: Number - callback\n//\nfunction ExifParser(jpeg_bin, exif_start, exif_end) {\n // Uint8Array, exif without signature (which isn't included in offsets)\n this.input = jpeg_bin.subarray(exif_start, exif_end);\n\n // offset correction for `on_entry` callback\n this.start = exif_start;\n\n // Check TIFF header (includes byte alignment and first IFD offset)\n var sig = String.fromCharCode.apply(null, this.input.subarray(0, 4));\n\n if (sig !== 'II\\x2A\\0' && sig !== 'MM\\0\\x2A') {\n throw error('invalid TIFF signature', 'EBADDATA');\n }\n\n // true if motorola (big endian) byte alignment, false if intel\n this.big_endian = sig[0] === 'M';\n}\n\n\nExifParser.prototype.each = function (on_entry) {\n // allow premature exit\n this.aborted = false;\n\n var offset = this.read_uint32(4);\n\n this.ifds_to_read = [ {\n id: 0,\n offset: offset\n } ];\n\n while (this.ifds_to_read.length > 0 && !this.aborted) {\n var i = this.ifds_to_read.shift();\n if (!i.offset) continue;\n this.scan_ifd(i.id, i.offset, on_entry);\n }\n};\n\n\nExifParser.prototype.filter = function (on_entry) {\n var ifds = {};\n\n // make sure IFD0 always exists\n ifds.ifd0 = { id: 0, entries: [] };\n\n this.each(function (entry) {\n if (on_entry(entry) === false && !entry.is_subifd_link) return;\n if (entry.is_subifd_link && entry.count !== 1 && entry.format !== 4) return; // filter out bogus links\n\n if (!ifds['ifd' + entry.ifd]) {\n ifds['ifd' + entry.ifd] = { id: entry.ifd, entries: [] };\n }\n\n ifds['ifd' + entry.ifd].entries.push(entry);\n });\n\n // thumbnails are not supported just yet, so delete all information related to it\n delete ifds.ifd1;\n\n // Calculate output size\n var length = 8;\n Object.keys(ifds).forEach(function (ifd_no) {\n length += 2;\n\n ifds[ifd_no].entries.forEach(function (entry) {\n length += 12 + (entry.data_length > 4 ? Math.ceil(entry.data_length / 2) * 2 : 0);\n });\n\n length += 4;\n });\n\n this.output = new Uint8Array(length);\n this.output[0] = this.output[1] = (this.big_endian ? 'M' : 'I').charCodeAt(0);\n this.write_uint16(2, 0x2A);\n\n var offset = 8;\n var self = this;\n this.write_uint32(4, offset);\n\n Object.keys(ifds).forEach(function (ifd_no) {\n ifds[ifd_no].written_offset = offset;\n\n var ifd_start = offset;\n var ifd_end = ifd_start + 2 + ifds[ifd_no].entries.length * 12 + 4;\n offset = ifd_end;\n\n self.write_uint16(ifd_start, ifds[ifd_no].entries.length);\n\n ifds[ifd_no].entries.sort(function (a, b) {\n // IFD entries must be in order of increasing tag IDs\n return a.tag - b.tag;\n }).forEach(function (entry, idx) {\n var entry_offset = ifd_start + 2 + idx * 12;\n\n self.write_uint16(entry_offset, entry.tag);\n self.write_uint16(entry_offset + 2, entry.format);\n self.write_uint32(entry_offset + 4, entry.count);\n\n if (entry.is_subifd_link) {\n // filled in later\n if (ifds['ifd' + entry.tag]) ifds['ifd' + entry.tag].link_offset = entry_offset + 8;\n } else if (entry.data_length <= 4) {\n self.output.set(\n self.input.subarray(entry.data_offset - self.start, entry.data_offset - self.start + 4),\n entry_offset + 8\n );\n } else {\n self.write_uint32(entry_offset + 8, offset);\n self.output.set(\n self.input.subarray(entry.data_offset - self.start, entry.data_offset - self.start + entry.data_length),\n offset\n );\n offset += Math.ceil(entry.data_length / 2) * 2;\n }\n });\n\n var next_ifd = ifds['ifd' + (ifds[ifd_no].id + 1)];\n if (next_ifd) next_ifd.link_offset = ifd_end - 4;\n });\n\n Object.keys(ifds).forEach(function (ifd_no) {\n if (ifds[ifd_no].written_offset && ifds[ifd_no].link_offset) {\n self.write_uint32(ifds[ifd_no].link_offset, ifds[ifd_no].written_offset);\n }\n });\n\n if (this.output.length !== offset) throw error('internal error: incorrect buffer size allocated');\n\n return this.output;\n};\n\n\nExifParser.prototype.read_uint16 = function (offset) {\n var d = this.input;\n if (offset + 2 > d.length) throw error('unexpected EOF', 'EBADDATA');\n\n return this.big_endian ?\n d[offset] * 0x100 + d[offset + 1] :\n d[offset] + d[offset + 1] * 0x100;\n};\n\n\nExifParser.prototype.read_uint32 = function (offset) {\n var d = this.input;\n if (offset + 4 > d.length) throw error('unexpected EOF', 'EBADDATA');\n\n return this.big_endian ?\n d[offset] * 0x1000000 + d[offset + 1] * 0x10000 + d[offset + 2] * 0x100 + d[offset + 3] :\n d[offset] + d[offset + 1] * 0x100 + d[offset + 2] * 0x10000 + d[offset + 3] * 0x1000000;\n};\n\n\nExifParser.prototype.write_uint16 = function (offset, value) {\n var d = this.output;\n\n if (this.big_endian) {\n d[offset] = (value >>> 8) & 0xFF;\n d[offset + 1] = value & 0xFF;\n } else {\n d[offset] = value & 0xFF;\n d[offset + 1] = (value >>> 8) & 0xFF;\n }\n};\n\n\nExifParser.prototype.write_uint32 = function (offset, value) {\n var d = this.output;\n\n if (this.big_endian) {\n d[offset] = (value >>> 24) & 0xFF;\n d[offset + 1] = (value >>> 16) & 0xFF;\n d[offset + 2] = (value >>> 8) & 0xFF;\n d[offset + 3] = value & 0xFF;\n } else {\n d[offset] = value & 0xFF;\n d[offset + 1] = (value >>> 8) & 0xFF;\n d[offset + 2] = (value >>> 16) & 0xFF;\n d[offset + 3] = (value >>> 24) & 0xFF;\n }\n};\n\n\nExifParser.prototype.is_subifd_link = function (ifd, tag) {\n return (ifd === 0 && tag === 0x8769) || // SubIFD\n (ifd === 0 && tag === 0x8825) || // GPS Info\n (ifd === 0x8769 && tag === 0xA005); // Interop IFD\n};\n\n\n// Returns byte length of a single component of a given format\n//\nExifParser.prototype.exif_format_length = function (format) {\n switch (format) {\n case 1: // byte\n case 2: // ascii\n case 6: // sbyte\n case 7: // undefined\n return 1;\n\n case 3: // short\n case 8: // sshort\n return 2;\n\n case 4: // long\n case 9: // slong\n case 11: // float\n return 4;\n\n case 5: // rational\n case 10: // srational\n case 12: // double\n return 8;\n\n default:\n // unknown type\n return 0;\n }\n};\n\n\n// Reads Exif data\n//\nExifParser.prototype.exif_format_read = function (format, offset) {\n var v;\n\n switch (format) {\n case 1: // byte\n case 2: // ascii\n v = this.input[offset];\n return v;\n\n case 6: // sbyte\n v = this.input[offset];\n return v | (v & 0x80) * 0x1fffffe;\n\n case 3: // short\n v = this.read_uint16(offset);\n return v;\n\n case 8: // sshort\n v = this.read_uint16(offset);\n return v | (v & 0x8000) * 0x1fffe;\n\n case 4: // long\n v = this.read_uint32(offset);\n return v;\n\n case 9: // slong\n v = this.read_uint32(offset);\n return v | 0;\n\n case 5: // rational\n case 10: // srational\n case 11: // float\n case 12: // double\n return null; // not implemented\n\n case 7: // undefined\n return null; // blob\n\n default:\n // unknown type\n return null;\n }\n};\n\n\nExifParser.prototype.scan_ifd = function (ifd_no, offset, on_entry) {\n var entry_count = this.read_uint16(offset);\n\n offset += 2;\n\n for (var i = 0; i < entry_count; i++) {\n var tag = this.read_uint16(offset);\n var format = this.read_uint16(offset + 2);\n var count = this.read_uint32(offset + 4);\n\n var comp_length = this.exif_format_length(format);\n var data_length = count * comp_length;\n var data_offset = data_length <= 4 ? offset + 8 : this.read_uint32(offset + 8);\n var is_subifd_link = false;\n\n if (data_offset + data_length > this.input.length) {\n throw error('unexpected EOF', 'EBADDATA');\n }\n\n var value = [];\n var comp_offset = data_offset;\n\n for (var j = 0; j < count; j++, comp_offset += comp_length) {\n var item = this.exif_format_read(format, comp_offset);\n if (item === null) {\n value = null;\n break;\n }\n value.push(item);\n }\n\n if (Array.isArray(value) && format === 2) {\n try {\n value = utf8_decode(String.fromCharCode.apply(null, value));\n } catch (_) {\n value = null;\n }\n\n if (value && value[value.length - 1] === '\\0') value = value.slice(0, -1);\n }\n\n if (this.is_subifd_link(ifd_no, tag)) {\n if (Array.isArray(value) && Number.isInteger(value[0]) && value[0] > 0) {\n this.ifds_to_read.push({\n id: tag,\n offset: value[0]\n });\n is_subifd_link = true;\n }\n }\n\n var entry = {\n is_big_endian: this.big_endian,\n ifd: ifd_no,\n tag: tag,\n format: format,\n count: count,\n entry_offset: offset + this.start,\n data_length: data_length,\n data_offset: data_offset + this.start,\n value: value,\n is_subifd_link: is_subifd_link\n };\n\n if (on_entry(entry) === false) {\n this.aborted = true;\n return;\n }\n\n offset += 12;\n }\n\n if (ifd_no === 0) {\n this.ifds_to_read.push({\n id: 1,\n offset: this.read_uint32(offset)\n });\n }\n};\n\n\n// Check whether input is a JPEG image\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n//\n// Returns true if it is and false otherwise\n//\nmodule.exports.is_jpeg = function (jpeg_bin) {\n return jpeg_bin.length >= 4 && jpeg_bin[0] === 0xFF && jpeg_bin[1] === 0xD8 && jpeg_bin[2] === 0xFF;\n};\n\n\n// Call an iterator on each segment in the given JPEG image\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n// - on_segment: Function - callback executed on each JPEG marker segment\n// - segment: Object\n// - code: Number - marker type (2nd byte, e.g. 0xE0 for APP0)\n// - offset: Number - offset of the first byte (0xFF) relative to `jpeg_bin` start\n// - length: Number - length of the entire marker segment including first two bytes and length\n// - 2 for standalone markers\n// - 4+length for markers with data\n//\n// Iteration stops when `EOI` (0xFFD9) marker is reached or if `on_segment`\n// function returns `false`.\n//\nmodule.exports.jpeg_segments_each = function (jpeg_bin, on_segment) {\n if (!is_uint8array(jpeg_bin)) {\n throw error('Invalid argument (jpeg_bin), Uint8Array expected', 'EINVAL');\n }\n\n if (typeof on_segment !== 'function') {\n throw error('Invalid argument (on_segment), Function expected', 'EINVAL');\n }\n\n if (!module.exports.is_jpeg(jpeg_bin)) {\n throw error('Unknown file format', 'ENOTJPEG');\n }\n\n var offset = 0, length = jpeg_bin.length, inside_scan = false;\n\n for (;;) {\n var segment_code, segment_length;\n\n if (offset + 1 >= length) throw error('Unexpected EOF', 'EBADDATA');\n var byte1 = jpeg_bin[offset];\n var byte2 = jpeg_bin[offset + 1];\n\n if (byte1 === 0xFF && byte2 === 0xFF) {\n // padding\n segment_code = 0xFF;\n segment_length = 1;\n\n } else if (byte1 === 0xFF && byte2 !== 0) {\n // marker\n segment_code = byte2;\n segment_length = 2;\n\n if ((0xD0 <= segment_code && segment_code <= 0xD9) || segment_code === 0x01) ; else {\n if (offset + 3 >= length) throw error('Unexpected EOF', 'EBADDATA');\n segment_length += jpeg_bin[offset + 2] * 0x100 + jpeg_bin[offset + 3];\n if (segment_length < 2) throw error('Invalid segment length', 'EBADDATA');\n if (offset + segment_length - 1 >= length) throw error('Unexpected EOF', 'EBADDATA');\n }\n\n if (inside_scan) {\n if (segment_code >= 0xD0 && segment_code <= 0xD7) ; else {\n inside_scan = false;\n }\n }\n\n if (segment_code === 0xDA /* SOS */) inside_scan = true;\n } else if (inside_scan) {\n // entropy-encoded segment\n for (var pos = offset + 1; ; pos++) {\n // scan until we find FF\n if (pos >= length) throw error('Unexpected EOF', 'EBADDATA');\n if (jpeg_bin[pos] === 0xFF) {\n if (pos + 1 >= length) throw error('Unexpected EOF', 'EBADDATA');\n if (jpeg_bin[pos + 1] !== 0) {\n segment_code = 0;\n segment_length = pos - offset;\n break;\n }\n }\n }\n } else {\n throw error('Unexpected byte at segment start: ' + to_hex(byte1) +\n ' (offset ' + to_hex(offset) + ')', 'EBADDATA');\n }\n\n if (on_segment({ code: segment_code, offset: offset, length: segment_length }) === false) break;\n if (segment_code === 0xD9 /* EOI */) break;\n offset += segment_length;\n }\n};\n\n\n// Replace or remove segments in the given JPEG image\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n// - on_segment: Function - callback executed on each JPEG marker segment\n// - segment: Object\n// - code: Number - marker type (2nd byte, e.g. 0xE0 for APP0)\n// - offset: Number - offset of the first byte (0xFF) relative to `jpeg_bin` start\n// - length: Number - length of the entire marker segment including first two bytes and length\n// - 2 for standalone markers\n// - 4+length for markers with data\n//\n// `on_segment` function should return one of the following:\n// - `false` - segment is removed from the output\n// - Uint8Array - segment is replaced with the new data\n// - [ Uint8Array ] - segment is replaced with the new data\n// - anything else - segment is copied to the output as is\n//\n// Any data after `EOI` (0xFFD9) marker is removed.\n//\nmodule.exports.jpeg_segments_filter = function (jpeg_bin, on_segment) {\n if (!is_uint8array(jpeg_bin)) {\n throw error('Invalid argument (jpeg_bin), Uint8Array expected', 'EINVAL');\n }\n\n if (typeof on_segment !== 'function') {\n throw error('Invalid argument (on_segment), Function expected', 'EINVAL');\n }\n\n var ranges = [];\n var out_length = 0;\n\n module.exports.jpeg_segments_each(jpeg_bin, function (segment) {\n var new_segment = on_segment(segment);\n\n if (is_uint8array(new_segment)) {\n ranges.push({ data: new_segment });\n out_length += new_segment.length;\n } else if (Array.isArray(new_segment)) {\n new_segment.filter(is_uint8array).forEach(function (s) {\n ranges.push({ data: s });\n out_length += s.length;\n });\n } else if (new_segment !== false) {\n var new_range = { start: segment.offset, end: segment.offset + segment.length };\n\n if (ranges.length > 0 && ranges[ranges.length - 1].end === new_range.start) {\n ranges[ranges.length - 1].end = new_range.end;\n } else {\n ranges.push(new_range);\n }\n\n out_length += segment.length;\n }\n });\n\n var result = new Uint8Array(out_length);\n var offset = 0;\n\n ranges.forEach(function (range) {\n var data = range.data || jpeg_bin.subarray(range.start, range.end);\n result.set(data, offset);\n offset += data.length;\n });\n\n return result;\n};\n\n\n// Call an iterator on each Exif entry in the given JPEG image\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n// - on_entry: Function - callback executed on each Exif entry\n// - entry: Object\n// - is_big_endian: Boolean - whether Exif uses big or little endian byte alignment\n// - ifd: Number - IFD identifier (0 for IFD0, 1 for IFD1, 0x8769 for SubIFD,\n// 0x8825 for GPS Info, 0xA005 for Interop IFD)\n// - tag: Number - exif entry tag (0x0110 - camera name, 0x0112 - orientation, etc. - see Exif spec)\n// - format: Number - exif entry format (1 - byte, 2 - ascii, 3 - short, etc. - see Exif spec)\n// - count: Number - number of components of the given format inside data\n// (usually 1, or string length for ascii format)\n// - entry_offset: Number - start of Exif entry (entry length is always 12, so not included)\n// - data_offset: Number - start of data attached to Exif entry (will overlap with entry if length <= 4)\n// - data_length: Number - length of data attached to Exif entry\n// - value: Array|String|Null - our best attempt at parsing data (not all formats supported right now)\n// - is_subifd_link: Boolean - whether this entry is recognized to be a link to subifd (can't filter these out)\n//\n// Iteration stops early if iterator returns `false`.\n//\n// If Exif wasn't found anywhere (before start of the image data, SOS),\n// iterator is never executed.\n//\nmodule.exports.jpeg_exif_tags_each = function (jpeg_bin, on_exif_entry) {\n if (!is_uint8array(jpeg_bin)) {\n throw error('Invalid argument (jpeg_bin), Uint8Array expected', 'EINVAL');\n }\n\n if (typeof on_exif_entry !== 'function') {\n throw error('Invalid argument (on_exif_entry), Function expected', 'EINVAL');\n }\n\n /* eslint-disable consistent-return */\n module.exports.jpeg_segments_each(jpeg_bin, function (segment) {\n if (segment.code === 0xDA /* SOS */) return false;\n\n // look for APP1 segment and compare header with 'Exif\\0\\0'\n if (segment.code === 0xE1 && segment.length >= 10 &&\n jpeg_bin[segment.offset + 4] === 0x45 && jpeg_bin[segment.offset + 5] === 0x78 &&\n jpeg_bin[segment.offset + 6] === 0x69 && jpeg_bin[segment.offset + 7] === 0x66 &&\n jpeg_bin[segment.offset + 8] === 0x00 && jpeg_bin[segment.offset + 9] === 0x00) {\n\n new ExifParser(jpeg_bin, segment.offset + 10, segment.offset + segment.length).each(on_exif_entry);\n return false;\n }\n });\n};\n\n\n// Remove Exif entries in the given JPEG image\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n// - on_entry: Function - callback executed on each Exif entry\n// - entry: Object\n// - is_big_endian: Boolean - whether Exif uses big or little endian byte alignment\n// - ifd: Number - IFD identifier (0 for IFD0, 1 for IFD1, 0x8769 for SubIFD,\n// 0x8825 for GPS Info, 0xA005 for Interop IFD)\n// - tag: Number - exif entry tag (0x0110 - camera name, 0x0112 - orientation, etc. - see Exif spec)\n// - format: Number - exif entry format (1 - byte, 2 - ascii, 3 - short, etc. - see Exif spec)\n// - count: Number - number of components of the given format inside data\n// (usually 1, or string length for ascii format)\n// - entry_offset: Number - start of Exif entry (entry length is always 12, so not included)\n// - data_offset: Number - start of data attached to Exif entry (will overlap with entry if length <= 4)\n// - data_length: Number - length of data attached to Exif entry\n// - value: Array|String|Null - our best attempt at parsing data (not all formats supported right now)\n// - is_subifd_link: Boolean - whether this entry is recognized to be a link to subifd (can't filter these out)\n//\n// This function removes following from Exif:\n// - all entries where iterator returned false (except subifd links which are mandatory)\n// - IFD1 and thumbnail image (the purpose of this function is to reduce file size,\n// so thumbnail is usually the first thing to go)\n// - all other data that isn't in IFD0, SubIFD, GPSIFD, InteropIFD\n// (theoretically possible proprietary extensions, I haven't seen any of these yet)\n//\n// Changing data inside Exif entries is NOT supported yet (modifying `entry` object inside callback may break stuff).\n//\n// If Exif wasn't found anywhere (before start of the image data, SOS),\n// iterator is never executed, and original JPEG is returned as is.\n//\nmodule.exports.jpeg_exif_tags_filter = function (jpeg_bin, on_exif_entry) {\n if (!is_uint8array(jpeg_bin)) {\n throw error('Invalid argument (jpeg_bin), Uint8Array expected', 'EINVAL');\n }\n\n if (typeof on_exif_entry !== 'function') {\n throw error('Invalid argument (on_exif_entry), Function expected', 'EINVAL');\n }\n\n var stop_search = false;\n\n return module.exports.jpeg_segments_filter(jpeg_bin, function (segment) {\n if (stop_search) return;\n if (segment.code === 0xDA /* SOS */) stop_search = true;\n\n // look for APP1 segment and compare header with 'Exif\\0\\0'\n if (segment.code === 0xE1 && segment.length >= 10 &&\n jpeg_bin[segment.offset + 4] === 0x45 && jpeg_bin[segment.offset + 5] === 0x78 &&\n jpeg_bin[segment.offset + 6] === 0x69 && jpeg_bin[segment.offset + 7] === 0x66 &&\n jpeg_bin[segment.offset + 8] === 0x00 && jpeg_bin[segment.offset + 9] === 0x00) {\n\n var new_exif = new ExifParser(jpeg_bin, segment.offset + 10, segment.offset + segment.length)\n .filter(on_exif_entry);\n if (!new_exif) return false;\n\n var header = new Uint8Array(10);\n\n header.set(jpeg_bin.slice(segment.offset, segment.offset + 10));\n header[2] = ((new_exif.length + 8) >>> 8) & 0xFF;\n header[3] = (new_exif.length + 8) & 0xFF;\n\n stop_search = true;\n return [ header, new_exif ];\n }\n });\n};\n\n\n// Inserts a custom comment marker segment into JPEG file.\n//\n// Input:\n// - jpeg_bin: Uint8Array - jpeg file\n// - comment: String\n//\n// Comment is inserted after first two bytes (FFD8, SOI).\n//\n// If JFIF (APP0) marker exists immediately after SOI (as mandated by the JFIF\n// spec), we insert comment after it instead.\n//\nmodule.exports.jpeg_add_comment = function (jpeg_bin, comment) {\n var comment_inserted = false, segment_count = 0;\n\n return module.exports.jpeg_segments_filter(jpeg_bin, function (segment) {\n segment_count++;\n if (segment_count === 1 && segment.code === 0xD8 /* SOI */) return;\n if (segment_count === 2 && segment.code === 0xE0 /* APP0 */) return;\n\n if (comment_inserted) return;\n comment = utf8_encode(comment);\n\n // comment segment\n var csegment = new Uint8Array(5 + comment.length);\n var offset = 0;\n\n csegment[offset++] = 0xFF;\n csegment[offset++] = 0xFE;\n csegment[offset++] = ((comment.length + 3) >>> 8) & 0xFF;\n csegment[offset++] = (comment.length + 3) & 0xFF;\n\n comment.split('').forEach(function (c) {\n csegment[offset++] = c.charCodeAt(0) & 0xFF;\n });\n\n csegment[offset++] = 0;\n comment_inserted = true;\n\n return [ csegment, jpeg_bin.subarray(segment.offset, segment.offset + segment.length) ];\n });\n};\n}(image_traverse$1));\n\nvar image_traverse = image_traverse$1.exports;\n\n\nfunction jpeg_patch_exif(env) {\n return this._getUint8Array(env.blob).then(function (data) {\n env.is_jpeg = image_traverse.is_jpeg(data);\n\n if (!env.is_jpeg) return Promise.resolve(env);\n\n env.orig_blob = env.blob;\n\n try {\n var exif_is_big_endian, orientation_offset;\n\n /* eslint-disable consistent-return */\n image_traverse.jpeg_exif_tags_each(data, function (entry) {\n if (entry.ifd === 0 && entry.tag === 0x112 && Array.isArray(entry.value)) {\n env.orientation = entry.value[0] || 1;\n exif_is_big_endian = entry.is_big_endian;\n orientation_offset = entry.data_offset;\n return false;\n }\n });\n\n if (orientation_offset) {\n var orientation_patch = exif_is_big_endian ?\n new Uint8Array([ 0, 1 ]) :\n new Uint8Array([ 1, 0 ]);\n\n env.blob = new Blob([\n data.slice(0, orientation_offset),\n orientation_patch,\n data.slice(orientation_offset + 2)\n ], { type: 'image/jpeg' });\n }\n } catch (_) {}\n\n return env;\n });\n}\n\n\nfunction jpeg_rotate_canvas(env) {\n if (!env.is_jpeg) return Promise.resolve(env);\n\n var orientation = env.orientation - 1;\n if (!orientation) return Promise.resolve(env);\n\n var canvas;\n\n if (orientation & 4) {\n canvas = this.pica.options.createCanvas(env.out_canvas.height, env.out_canvas.width);\n } else {\n canvas = this.pica.options.createCanvas(env.out_canvas.width, env.out_canvas.height);\n }\n\n var ctx = canvas.getContext('2d');\n\n ctx.save();\n\n if (orientation & 1) ctx.transform(-1, 0, 0, 1, canvas.width, 0);\n if (orientation & 2) ctx.transform(-1, 0, 0, -1, canvas.width, canvas.height);\n if (orientation & 4) ctx.transform(0, 1, 1, 0, 0, 0);\n\n ctx.drawImage(env.out_canvas, 0, 0);\n ctx.restore();\n\n // Safari 12 workaround\n // https://github.com/nodeca/pica/issues/199\n env.out_canvas.width = env.out_canvas.height = 0;\n\n env.out_canvas = canvas;\n\n return Promise.resolve(env);\n}\n\n\nfunction jpeg_attach_orig_segments(env) {\n if (!env.is_jpeg) return Promise.resolve(env);\n\n return Promise.all([\n this._getUint8Array(env.blob),\n this._getUint8Array(env.out_blob)\n ]).then(function (res) {\n var data = res[0];\n var data_out = res[1];\n\n if (!image_traverse.is_jpeg(data)) return Promise.resolve(env);\n\n var segments = [];\n\n image_traverse.jpeg_segments_each(data, function (segment) {\n if (segment.code === 0xDA /* SOS */) return false;\n segments.push(segment);\n });\n\n segments = segments\n .filter(function (segment) {\n // Drop ICC_PROFILE\n //\n if (segment.code === 0xE2) return false;\n\n // Keep all APPn segments excluding APP2 (ICC_PROFILE),\n // remove others because most of them depend on image data (DCT and such).\n //\n // APP0 - JFIF, APP1 - Exif, the rest are photoshop metadata and such\n //\n // See full list at https://www.w3.org/Graphics/JPEG/itu-t81.pdf (table B.1 on page 32)\n //\n if (segment.code >= 0xE0 && segment.code < 0xF0) return true;\n\n // Keep comments\n //\n if (segment.code === 0xFE) return true;\n\n return false;\n })\n .map(function (segment) {\n return data.slice(segment.offset, segment.offset + segment.length);\n });\n\n env.out_blob = new Blob(\n // intentionally omitting expected JFIF segment (offset 2 to 20)\n [ data_out.slice(0, 2) ].concat(segments).concat([ data_out.slice(20) ]),\n { type: 'image/jpeg' }\n );\n\n return env;\n });\n}\n\n\nfunction assign(reducer) {\n reducer.before('_blob_to_image', jpeg_patch_exif);\n reducer.after('_transform', jpeg_rotate_canvas);\n reducer.after('_create_blob', jpeg_attach_orig_segments);\n}\n\n\njpeg_plugins.jpeg_patch_exif = jpeg_patch_exif;\njpeg_plugins.jpeg_rotate_canvas = jpeg_rotate_canvas;\njpeg_plugins.jpeg_attach_orig_segments = jpeg_attach_orig_segments;\njpeg_plugins.assign = assign;\n\nvar utils = utils$1;\nvar pica = pica$1.exports;\n\nfunction ImageBlobReduce(options) {\n if (!(this instanceof ImageBlobReduce)) return new ImageBlobReduce(options);\n\n options = options || {};\n\n this.pica = options.pica || pica({});\n this.initialized = false;\n\n this.utils = utils;\n}\n\n\nImageBlobReduce.prototype.use = function (plugin /*, params, ... */) {\n var args = [ this ].concat(Array.prototype.slice.call(arguments, 1));\n plugin.apply(plugin, args);\n return this;\n};\n\n\nImageBlobReduce.prototype.init = function () {\n this.use(jpeg_plugins.assign);\n};\n\n\nImageBlobReduce.prototype.toBlob = function (blob, options) {\n var opts = utils.assign({ max: Infinity }, options);\n var env = {\n blob: blob,\n opts: opts\n };\n\n if (!this.initialized) {\n this.init();\n this.initialized = true;\n }\n\n return Promise.resolve(env)\n .then(this._blob_to_image)\n .then(this._calculate_size)\n .then(this._transform)\n .then(this._cleanup)\n .then(this._create_blob)\n .then(function (_env) {\n // Safari 12 workaround\n // https://github.com/nodeca/pica/issues/199\n _env.out_canvas.width = _env.out_canvas.height = 0;\n\n return _env.out_blob;\n });\n};\n\n\nImageBlobReduce.prototype.toCanvas = function (blob, options) {\n var opts = utils.assign({ max: Infinity }, options);\n var env = {\n blob: blob,\n opts: opts\n };\n\n if (!this.initialized) {\n this.init();\n this.initialized = true;\n }\n\n return Promise.resolve(env)\n .then(this._blob_to_image)\n .then(this._calculate_size)\n .then(this._transform)\n .then(this._cleanup)\n .then(function (_env) { return _env.out_canvas; });\n};\n\n\nImageBlobReduce.prototype.before = function (method_name, fn) {\n if (!this[method_name]) throw new Error('Method \"' + method_name + '\" does not exist');\n if (typeof fn !== 'function') throw new Error('Invalid argument \"fn\", function expected');\n\n var old_fn = this[method_name];\n var self = this;\n\n this[method_name] = function (env) {\n return fn.call(self, env).then(function (_env) {\n return old_fn.call(self, _env);\n });\n };\n\n return this;\n};\n\n\nImageBlobReduce.prototype.after = function (method_name, fn) {\n if (!this[method_name]) throw new Error('Method \"' + method_name + '\" does not exist');\n if (typeof fn !== 'function') throw new Error('Invalid argument \"fn\", function expected');\n\n var old_fn = this[method_name];\n var self = this;\n\n this[method_name] = function (env) {\n return old_fn.call(self, env).then(function (_env) {\n return fn.call(self, _env);\n });\n };\n\n return this;\n};\n\n\nImageBlobReduce.prototype._blob_to_image = function (env) {\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\n\n env.image = document.createElement('img');\n env.image_url = URL.createObjectURL(env.blob);\n env.image.src = env.image_url;\n\n return new Promise(function (resolve, reject) {\n env.image.onerror = function () { reject(new Error('ImageBlobReduce: failed to create Image() from blob')); };\n env.image.onload = function () { resolve(env); };\n });\n};\n\n\nImageBlobReduce.prototype._calculate_size = function (env) {\n //\n // Note, if your need not \"symmetric\" resize logic, you MUST check\n // `env.orientation` (set by plugins) and swap width/height appropriately.\n //\n var scale_factor = env.opts.max / Math.max(env.image.width, env.image.height);\n\n if (scale_factor > 1) scale_factor = 1;\n\n env.transform_width = Math.max(Math.round(env.image.width * scale_factor), 1);\n env.transform_height = Math.max(Math.round(env.image.height * scale_factor), 1);\n\n // Info for user plugins, to check if scaling applied\n env.scale_factor = scale_factor;\n\n return Promise.resolve(env);\n};\n\n\nImageBlobReduce.prototype._transform = function (env) {\n env.out_canvas = this.pica.options.createCanvas(env.transform_width, env.transform_height);\n\n // Dim env temporary vars to prohibit use and avoid confusion when orientation\n // changed. You should take real size from canvas.\n env.transform_width = null;\n env.transform_height = null;\n\n // By default use alpha for png only\n var pica_opts = { alpha: env.blob.type === 'image/png' };\n\n // Extract pica options if been passed\n this.utils.assign(pica_opts, this.utils.pick_pica_resize_options(env.opts));\n\n return this.pica\n .resize(env.image, env.out_canvas, pica_opts)\n .then(function () { return env; });\n};\n\n\nImageBlobReduce.prototype._cleanup = function (env) {\n env.image.src = '';\n env.image = null;\n\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\n if (URL.revokeObjectURL) URL.revokeObjectURL(env.image_url);\n\n env.image_url = null;\n\n return Promise.resolve(env);\n};\n\n\nImageBlobReduce.prototype._create_blob = function (env) {\n return this.pica.toBlob(env.out_canvas, env.blob.type)\n .then(function (blob) {\n env.out_blob = blob;\n return env;\n });\n};\n\n\nImageBlobReduce.prototype._getUint8Array = function (blob) {\n if (blob.arrayBuffer) {\n return blob.arrayBuffer().then(function (buf) {\n return new Uint8Array(buf);\n });\n }\n\n return new Promise(function (resolve, reject) {\n var fr = new FileReader();\n\n fr.readAsArrayBuffer(blob);\n\n fr.onload = function () { resolve(new Uint8Array(fr.result)); };\n fr.onerror = function () {\n reject(new Error('ImageBlobReduce: failed to load data from input blob'));\n fr.abort();\n };\n fr.onabort = function () {\n reject(new Error('ImageBlobReduce: failed to load data from input blob (aborted)'));\n };\n });\n};\n\n\nImageBlobReduce.pica = pica;\n\nvar imageBlobReduce = ImageBlobReduce;\n\nexport { imageBlobReduce as default };\n","/*!\n* sweetalert2 v11.17.2\n* Released under the MIT License.\n*/\nfunction _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}\nfunction _checkPrivateRedeclaration(e, t) {\n if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n}\nfunction _classPrivateFieldGet2(s, a) {\n return s.get(_assertClassBrand(s, a));\n}\nfunction _classPrivateFieldInitSpec(e, t, a) {\n _checkPrivateRedeclaration(e, t), t.set(e, a);\n}\nfunction _classPrivateFieldSet2(s, a, r) {\n return s.set(_assertClassBrand(s, a), r), r;\n}\n\nconst RESTORE_FOCUS_TIMEOUT = 100;\n\n/** @type {GlobalState} */\nconst globalState = {};\nconst focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n};\n\n/**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise<void>}\n */\nconst restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n};\n\nconst swalPrefix = 'swal2-';\n\n/**\n * @typedef {Record<SwalClass, string>} SwalClasses\n */\n\n/**\n * @typedef {'success' | 'warning' | 'info' | 'question' | 'error'} SwalIcon\n * @typedef {Record<SwalIcon, string>} SwalIcons\n */\n\n/** @type {SwalClass[]} */\nconst classNames = ['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'draggable', 'dragging'];\nconst swalClasses = classNames.reduce((acc, className) => {\n acc[className] = swalPrefix + className;\n return acc;\n}, /** @type {SwalClasses} */{});\n\n/** @type {SwalIcon[]} */\nconst icons = ['success', 'warning', 'info', 'question', 'error'];\nconst iconTypes = icons.reduce((acc, icon) => {\n acc[icon] = swalPrefix + icon;\n return acc;\n}, /** @type {SwalIcons} */{});\n\nconst consolePrefix = 'SweetAlert2:';\n\n/**\n * Capitalize the first letter of a string\n *\n * @param {string} str\n * @returns {string}\n */\nconst capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n\n/**\n * Standardize console warnings\n *\n * @param {string | string[]} message\n */\nconst warn = message => {\n console.warn(`${consolePrefix} ${typeof message === 'object' ? message.join(' ') : message}`);\n};\n\n/**\n * Standardize console errors\n *\n * @param {string} message\n */\nconst error = message => {\n console.error(`${consolePrefix} ${message}`);\n};\n\n/**\n * Private global state for `warnOnce`\n *\n * @type {string[]}\n * @private\n */\nconst previousWarnOnceMessages = [];\n\n/**\n * Show a console warning, but only if it hasn't already been shown\n *\n * @param {string} message\n */\nconst warnOnce = message => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n};\n\n/**\n * Show a one-time console warning about deprecated params/methods\n *\n * @param {string} deprecatedParam\n * @param {string?} useInstead\n */\nconst warnAboutDeprecation = function (deprecatedParam) {\n let useInstead = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n warnOnce(`\"${deprecatedParam}\" is deprecated and will be removed in the next major release.${useInstead ? ` Use \"${useInstead}\" instead.` : ''}`);\n};\n\n/**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n *\n * @param {Function | any} arg\n * @returns {any}\n */\nconst callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n\n/**\n * @param {any} arg\n * @returns {boolean}\n */\nconst hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n\n/**\n * @param {any} arg\n * @returns {Promise<any>}\n */\nconst asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n\n/**\n * @param {any} arg\n * @returns {boolean}\n */\nconst isPromise = arg => arg && Promise.resolve(arg) === arg;\n\n/**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\nconst getContainer = () => document.body.querySelector(`.${swalClasses.container}`);\n\n/**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\nconst elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n};\n\n/**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\nconst elementByClass = className => {\n return elementBySelector(`.${className}`);\n};\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getPopup = () => elementByClass(swalClasses.popup);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getIcon = () => elementByClass(swalClasses.icon);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getIconContent = () => elementByClass(swalClasses['icon-content']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getTitle = () => elementByClass(swalClasses.title);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getImage = () => elementByClass(swalClasses.image);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n\n/**\n * @returns {HTMLButtonElement | null}\n */\nconst getConfirmButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.confirm}`));\n\n/**\n * @returns {HTMLButtonElement | null}\n */\nconst getCancelButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.cancel}`));\n\n/**\n * @returns {HTMLButtonElement | null}\n */\nconst getDenyButton = () => (/** @type {HTMLButtonElement} */elementBySelector(`.${swalClasses.actions} .${swalClasses.deny}`));\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getInputLabel = () => elementByClass(swalClasses['input-label']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getLoader = () => elementBySelector(`.${swalClasses.loader}`);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getActions = () => elementByClass(swalClasses.actions);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getFooter = () => elementByClass(swalClasses.footer);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n\n/**\n * @returns {HTMLElement | null}\n */\nconst getCloseButton = () => elementByClass(swalClasses.close);\n\n// https://github.com/jkup/focusable/blob/master/index.js\nconst focusable = `\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n`;\n/**\n * @returns {HTMLElement[]}\n */\nconst getFocusableElements = () => {\n const popup = getPopup();\n if (!popup) {\n return [];\n }\n /** @type {NodeListOf<HTMLElement>} */\n const focusableElementsWithTabindex = popup.querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])');\n const focusableElementsWithTabindexSorted = Array.from(focusableElementsWithTabindex)\n // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex') || '0');\n const tabindexB = parseInt(b.getAttribute('tabindex') || '0');\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n return 0;\n });\n\n /** @type {NodeListOf<HTMLElement>} */\n const otherFocusableElements = popup.querySelectorAll(focusable);\n const otherFocusableElementsFiltered = Array.from(otherFocusableElements).filter(el => el.getAttribute('tabindex') !== '-1');\n return [...new Set(focusableElementsWithTabindexSorted.concat(otherFocusableElementsFiltered))].filter(el => isVisible$1(el));\n};\n\n/**\n * @returns {boolean}\n */\nconst isModal = () => {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n};\n\n/**\n * @returns {boolean}\n */\nconst isToast = () => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n return hasClass(popup, swalClasses.toast);\n};\n\n/**\n * @returns {boolean}\n */\nconst isLoading = () => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n return popup.hasAttribute('data-loading');\n};\n\n/**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\nconst setInnerHtml = (elem, html) => {\n elem.textContent = '';\n if (html) {\n const parser = new DOMParser();\n const parsed = parser.parseFromString(html, `text/html`);\n const head = parsed.querySelector('head');\n if (head) {\n Array.from(head.childNodes).forEach(child => {\n elem.appendChild(child);\n });\n }\n const body = parsed.querySelector('body');\n if (body) {\n Array.from(body.childNodes).forEach(child => {\n if (child instanceof HTMLVideoElement || child instanceof HTMLAudioElement) {\n elem.appendChild(child.cloneNode(true)); // https://github.com/sweetalert2/sweetalert2/issues/2507\n } else {\n elem.appendChild(child);\n }\n });\n }\n }\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\nconst hasClass = (elem, className) => {\n if (!className) {\n return false;\n }\n const classList = className.split(/\\s+/);\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n return true;\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\nconst removeCustomClasses = (elem, params) => {\n Array.from(elem.classList).forEach(className => {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass || {}).includes(className)) {\n elem.classList.remove(className);\n }\n });\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\nconst applyCustomClass = (elem, params, className) => {\n removeCustomClasses(elem, params);\n if (!params.customClass) {\n return;\n }\n const customClass = params.customClass[(/** @type {keyof SweetAlertCustomClass} */className)];\n if (!customClass) {\n return;\n }\n if (typeof customClass !== 'string' && !customClass.forEach) {\n warn(`Invalid type of customClass.${className}! Expected string or iterable object, got \"${typeof customClass}\"`);\n return;\n }\n addClass(elem, customClass);\n};\n\n/**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass | SweetAlertInput} inputClass\n * @returns {HTMLInputElement | null}\n */\nconst getInput$1 = (popup, inputClass) => {\n if (!inputClass) {\n return null;\n }\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses[inputClass]}`);\n case 'checkbox':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.checkbox} input`);\n case 'radio':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:checked`) || popup.querySelector(`.${swalClasses.popup} > .${swalClasses.radio} input:first-child`);\n case 'range':\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.range} input`);\n default:\n return popup.querySelector(`.${swalClasses.popup} > .${swalClasses.input}`);\n }\n};\n\n/**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\nconst focusInput = input => {\n input.focus();\n\n // place cursor at end of text in text input\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n const val = input.value;\n input.value = '';\n input.value = val;\n }\n};\n\n/**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n * @param {boolean} condition\n */\nconst toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return;\n }\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n classList.forEach(className => {\n if (Array.isArray(target)) {\n target.forEach(elem => {\n if (condition) {\n elem.classList.add(className);\n } else {\n elem.classList.remove(className);\n }\n });\n } else {\n if (condition) {\n target.classList.add(className);\n } else {\n target.classList.remove(className);\n }\n }\n });\n};\n\n/**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\nconst addClass = (target, classList) => {\n toggleClass(target, classList, true);\n};\n\n/**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[] | undefined} classList\n */\nconst removeClass = (target, classList) => {\n toggleClass(target, classList, false);\n};\n\n/**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | undefined}\n */\nconst getDirectChildByClass = (elem, className) => {\n const children = Array.from(elem.children);\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\nconst applyNumericalStyle = (elem, property, value) => {\n if (value === `${parseInt(value)}`) {\n value = parseInt(value);\n }\n if (value || parseInt(value) === 0) {\n elem.style.setProperty(property, typeof value === 'number' ? `${value}px` : value);\n } else {\n elem.style.removeProperty(property);\n }\n};\n\n/**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\nconst show = function (elem) {\n let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n if (!elem) {\n return;\n }\n elem.style.display = display;\n};\n\n/**\n * @param {HTMLElement | null} elem\n */\nconst hide = elem => {\n if (!elem) {\n return;\n }\n elem.style.display = 'none';\n};\n\n/**\n * @param {HTMLElement | null} elem\n * @param {string} display\n */\nconst showWhenInnerHtmlPresent = function (elem) {\n let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'block';\n if (!elem) {\n return;\n }\n new MutationObserver(() => {\n toggle(elem, elem.innerHTML, display);\n }).observe(elem, {\n childList: true,\n subtree: true\n });\n};\n\n/**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\nconst setStyle = (parent, selector, property, value) => {\n /** @type {HTMLElement | null} */\n const el = parent.querySelector(selector);\n if (el) {\n el.style.setProperty(property, value);\n }\n};\n\n/**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\nconst toggle = function (elem, condition) {\n let display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n if (condition) {\n show(elem, display);\n } else {\n hide(elem);\n }\n};\n\n/**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement | null} elem\n * @returns {boolean}\n */\nconst isVisible$1 = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n\n/**\n * @returns {boolean}\n */\nconst allButtonsAreHidden = () => !isVisible$1(getConfirmButton()) && !isVisible$1(getDenyButton()) && !isVisible$1(getCancelButton());\n\n/**\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\nconst isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);\n\n/**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\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};\n\n/**\n * @param {number} timer\n * @param {boolean} reset\n */\nconst animateTimerProgressBar = function (timer) {\n let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n if (isVisible$1(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n setTimeout(() => {\n timerProgressBar.style.transition = `width ${timer / 1000}s linear`;\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n};\nconst stopTimerProgressBar = () => {\n const timerProgressBar = getTimerProgressBar();\n if (!timerProgressBar) {\n return;\n }\n const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.width = `${timerProgressBarPercent}%`;\n};\n\n/**\n * Detect Node env\n *\n * @returns {boolean}\n */\nconst isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\nconst sweetHTML = `\n <div aria-labelledby=\"${swalClasses.title}\" aria-describedby=\"${swalClasses['html-container']}\" class=\"${swalClasses.popup}\" tabindex=\"-1\">\n <button type=\"button\" class=\"${swalClasses.close}\"></button>\n <ul class=\"${swalClasses['progress-steps']}\"></ul>\n <div class=\"${swalClasses.icon}\"></div>\n <img class=\"${swalClasses.image}\" />\n <h2 class=\"${swalClasses.title}\" id=\"${swalClasses.title}\"></h2>\n <div class=\"${swalClasses['html-container']}\" id=\"${swalClasses['html-container']}\"></div>\n <input class=\"${swalClasses.input}\" id=\"${swalClasses.input}\" />\n <input type=\"file\" class=\"${swalClasses.file}\" />\n <div class=\"${swalClasses.range}\">\n <input type=\"range\" />\n <output></output>\n </div>\n <select class=\"${swalClasses.select}\" id=\"${swalClasses.select}\"></select>\n <div class=\"${swalClasses.radio}\"></div>\n <label class=\"${swalClasses.checkbox}\">\n <input type=\"checkbox\" id=\"${swalClasses.checkbox}\" />\n <span class=\"${swalClasses.label}\"></span>\n </label>\n <textarea class=\"${swalClasses.textarea}\" id=\"${swalClasses.textarea}\"></textarea>\n <div class=\"${swalClasses['validation-message']}\" id=\"${swalClasses['validation-message']}\"></div>\n <div class=\"${swalClasses.actions}\">\n <div class=\"${swalClasses.loader}\"></div>\n <button type=\"button\" class=\"${swalClasses.confirm}\"></button>\n <button type=\"button\" class=\"${swalClasses.deny}\"></button>\n <button type=\"button\" class=\"${swalClasses.cancel}\"></button>\n </div>\n <div class=\"${swalClasses.footer}\"></div>\n <div class=\"${swalClasses['timer-progress-bar-container']}\">\n <div class=\"${swalClasses['timer-progress-bar']}\"></div>\n </div>\n </div>\n`.replace(/(^|\\n)\\s*/g, '');\n\n/**\n * @returns {boolean}\n */\nconst resetOldContainer = () => {\n const oldContainer = getContainer();\n if (!oldContainer) {\n return false;\n }\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n};\nconst resetValidationMessage$1 = () => {\n globalState.currentInstance.resetValidationMessage();\n};\nconst addInputChangeListeners = () => {\n const popup = getPopup();\n const input = getDirectChildByClass(popup, swalClasses.input);\n const file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n const range = popup.querySelector(`.${swalClasses.range} input`);\n /** @type {HTMLOutputElement} */\n const rangeOutput = popup.querySelector(`.${swalClasses.range} output`);\n const select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n const checkbox = popup.querySelector(`.${swalClasses.checkbox} input`);\n const textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage$1;\n file.onchange = resetValidationMessage$1;\n select.onchange = resetValidationMessage$1;\n checkbox.onchange = resetValidationMessage$1;\n textarea.oninput = resetValidationMessage$1;\n range.oninput = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n range.onchange = () => {\n resetValidationMessage$1();\n rangeOutput.value = range.value;\n };\n};\n\n/**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\nconst getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n\n/**\n * @param {SweetAlertOptions} params\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 if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n};\n\n/**\n * @param {HTMLElement} targetElement\n */\nconst setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n};\n\n/**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\nconst init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n const container = document.createElement('div');\n container.className = swalClasses.container;\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n setInnerHtml(container, sweetHTML);\n container.dataset['swal2Theme'] = params.theme;\n const targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n};\n\n/**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\nconst parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n }\n\n // Object\n else if (typeof param === 'object') {\n handleObject(param, target);\n }\n\n // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n};\n\n/**\n * @param {any} param\n * @param {HTMLElement} target\n */\nconst handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n }\n\n // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n};\n\n/**\n * @param {HTMLElement} target\n * @param {any} elem\n */\nconst handleJqueryElem = (target, elem) => {\n target.textContent = '';\n if (0 in elem) {\n for (let i = 0; i in elem; i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n\n // Actions (buttons) wrapper\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n }\n\n // Custom class\n applyCustomClass(actions, params, 'actions');\n\n // Render all the buttons\n renderButtons(actions, loader, params);\n\n // Loader\n setInnerHtml(loader, params.loaderHtml || '');\n applyCustomClass(loader, params, 'loader');\n};\n\n/**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\nfunction renderButtons(actions, loader, params) {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n if (!confirmButton || !denyButton || !cancelButton) {\n return;\n }\n\n // Render buttons\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n}\n\n/**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\nfunction handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n return;\n }\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n\n // Buttons background colors\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n}\n\n/**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\nfunction renderButton(button, buttonType, params) {\n const buttonName = /** @type {'Confirm' | 'Deny' | 'Cancel'} */capitalizeFirstLetter(buttonType);\n toggle(button, params[`show${buttonName}Button`], 'inline-block');\n setInnerHtml(button, params[`${buttonType}ButtonText`] || ''); // Set caption text\n button.setAttribute('aria-label', params[`${buttonType}ButtonAriaLabel`] || ''); // ARIA label\n\n // Add buttons custom classes\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, `${buttonType}Button`);\n}\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n if (!closeButton) {\n return;\n }\n setInnerHtml(closeButton, params.closeButtonHtml || '');\n\n // Custom class\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel || '');\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderContainer = (instance, params) => {\n const container = getContainer();\n if (!container) {\n return;\n }\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow);\n\n // Custom class\n applyCustomClass(container, params, 'container');\n};\n\n/**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\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\n/**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\nfunction handlePositionParam(container, position) {\n if (!position) {\n return;\n }\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n}\n\n/**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\nfunction handleGrowParam(container, grow) {\n if (!grow) {\n return;\n }\n addClass(container, swalClasses[`grow-${grow}`]);\n}\n\n/**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\nvar privateProps = {\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n};\n\n/// <reference path=\"../../../../sweetalert2.d.ts\"/>\n\n\n/** @type {InputClass[]} */\nconst inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderInput = (instance, params) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(inputClass => {\n const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]);\n if (!inputContainer) {\n return;\n }\n\n // set attributes\n setAttributes(inputClass, params.inputAttributes);\n\n // set class\n inputContainer.className = swalClasses[inputClass];\n if (rerender) {\n hide(inputContainer);\n }\n });\n if (params.input) {\n if (rerender) {\n showInput(params);\n }\n // set custom class\n setCustomClass(params);\n }\n};\n\n/**\n * @param {SweetAlertOptions} params\n */\nconst showInput = params => {\n if (!params.input) {\n return;\n }\n if (!renderInputType[params.input]) {\n error(`Unexpected type of input! Expected ${Object.keys(renderInputType).join(' | ')}, got \"${params.input}\"`);\n return;\n }\n const inputContainer = getInputContainer(params.input);\n if (!inputContainer) {\n return;\n }\n const input = renderInputType[params.input](inputContainer, params);\n show(inputContainer);\n\n // input autofocus\n if (params.inputAutoFocus) {\n setTimeout(() => {\n focusInput(input);\n });\n }\n};\n\n/**\n * @param {HTMLInputElement} input\n */\nconst removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n if (!['id', 'type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n};\n\n/**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\nconst setAttributes = (inputClass, inputAttributes) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const input = getInput$1(popup, inputClass);\n if (!input) {\n return;\n }\n removeAttributes(input);\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n};\n\n/**\n * @param {SweetAlertOptions} params\n */\nconst setCustomClass = params => {\n if (!params.input) {\n return;\n }\n const inputContainer = getInputContainer(params.input);\n if (inputContainer) {\n applyCustomClass(inputContainer, params, 'input');\n }\n};\n\n/**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\nconst setInputPlaceholder = (input, params) => {\n if (!input.placeholder && params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n};\n\n/**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\nconst setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n const label = document.createElement('label');\n const labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n if (typeof params.customClass === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n};\n\n/**\n * @param {SweetAlertInput} inputType\n * @returns {HTMLElement | undefined}\n */\nconst getInputContainer = inputType => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n return getDirectChildByClass(popup, swalClasses[(/** @type {SwalClass} */inputType)] || swalClasses.input);\n};\n\n/**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\nconst checkAndSetInputValue = (input, inputValue) => {\n if (['string', 'number'].includes(typeof inputValue)) {\n input.value = `${inputValue}`;\n } else if (!isPromise(inputValue)) {\n warn(`Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"${typeof inputValue}\"`);\n }\n};\n\n/** @type {Record<SweetAlertInput, (input: Input | HTMLElement, params: SweetAlertOptions) => Input>} */\nconst renderInputType = {};\n\n/**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\nrenderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = renderInputType.search = renderInputType.date = renderInputType['datetime-local'] = renderInputType.time = renderInputType.week = renderInputType.month = /** @type {(input: Input | HTMLElement, params: SweetAlertOptions) => Input} */\n(input, params) => {\n checkAndSetInputValue(input, params.inputValue);\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n};\n\n/**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\nrenderInputType.file = (input, params) => {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n};\n\n/**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\nrenderInputType.range = (range, params) => {\n const rangeInput = range.querySelector('input');\n const rangeOutput = range.querySelector('output');\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = params.input;\n checkAndSetInputValue(rangeOutput, params.inputValue);\n setInputLabel(rangeInput, range, params);\n return range;\n};\n\n/**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\nrenderInputType.select = (select, params) => {\n select.textContent = '';\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n setInputLabel(select, select, params);\n return select;\n};\n\n/**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\nrenderInputType.radio = radio => {\n radio.textContent = '';\n return radio;\n};\n\n/**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\nrenderInputType.checkbox = (checkboxContainer, params) => {\n const checkbox = getInput$1(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.checked = Boolean(params.inputValue);\n const label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder || params.inputLabel);\n return checkbox;\n};\n\n/**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\nrenderInputType.textarea = (textarea, params) => {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight);\n\n // https://github.com/sweetalert2/sweetalert2/issues/2291\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n const textareaResizeHandler = () => {\n // check if texarea is still in document (i.e. popup wasn't closed in the meantime)\n if (!document.body.contains(textarea)) {\n return;\n }\n const textareaWidth = textarea.offsetWidth + getMargin(textarea);\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = `${textareaWidth}px`;\n } else {\n applyNumericalStyle(getPopup(), 'width', params.width);\n }\n };\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n if (!htmlContainer) {\n return;\n }\n showWhenInnerHtmlPresent(htmlContainer);\n applyCustomClass(htmlContainer, params, 'htmlContainer');\n\n // Content as HTML\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n }\n\n // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n }\n\n // No content\n else {\n hide(htmlContainer);\n }\n renderInput(instance, params);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderFooter = (instance, params) => {\n const footer = getFooter();\n if (!footer) {\n return;\n }\n showWhenInnerHtmlPresent(footer);\n toggle(footer, params.footer, 'block');\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n }\n\n // Custom class\n applyCustomClass(footer, params, 'footer');\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon();\n if (!icon) {\n return;\n }\n\n // if the given icon already rendered, apply the styling without re-rendering the icon\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(`Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"${params.icon}\"`);\n hide(icon);\n return;\n }\n show(icon);\n\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n\n // Animate icon\n addClass(icon, params.showClass && params.showClass.icon);\n\n // Re-adjust the success icon on system theme change\n const colorSchemeQueryList = window.matchMedia('(prefers-color-scheme: dark)');\n colorSchemeQueryList.addEventListener('change', adjustSuccessIconBackgroundColor);\n};\n\n/**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\nconst applyStyles = (icon, params) => {\n for (const [iconType, iconClassName] of Object.entries(iconTypes)) {\n if (params.icon !== iconType) {\n removeClass(icon, iconClassName);\n }\n }\n addClass(icon, params.icon && iconTypes[params.icon]);\n\n // Icon color\n setColor(icon, params);\n\n // Success icon background color\n adjustSuccessIconBackgroundColor();\n\n // Custom class\n applyCustomClass(icon, params, 'icon');\n};\n\n// Adjust success icon background color to match the popup background color\nconst adjustSuccessIconBackgroundColor = () => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf<HTMLElement>} */\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n};\nconst successIconHtml = `\n <div class=\"swal2-success-circular-line-left\"></div>\n <span class=\"swal2-success-line-tip\"></span> <span class=\"swal2-success-line-long\"></span>\n <div class=\"swal2-success-ring\"></div> <div class=\"swal2-success-fix\"></div>\n <div class=\"swal2-success-circular-line-right\"></div>\n`;\nconst errorIconHtml = `\n <span class=\"swal2-x-mark\">\n <span class=\"swal2-x-mark-line-left\"></span>\n <span class=\"swal2-x-mark-line-right\"></span>\n </span>\n`;\n\n/**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\nconst setContent = (icon, params) => {\n if (!params.icon && !params.iconHtml) {\n return;\n }\n let oldContent = icon.innerHTML;\n let newContent = '';\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else if (params.icon) {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n};\n\n/**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\nconst setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n setStyle(icon, sel, 'background-color', params.iconColor);\n }\n setStyle(icon, '.swal2-success-ring', 'border-color', params.iconColor);\n};\n\n/**\n * @param {string} content\n * @returns {string}\n */\nconst iconContent = content => `<div class=\"${swalClasses['icon-content']}\">${content}</div>`;\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderImage = (instance, params) => {\n const image = getImage();\n if (!image) {\n return;\n }\n if (!params.imageUrl) {\n hide(image);\n return;\n }\n show(image, '');\n\n // Src, alt\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt || '');\n\n // Width, height\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight);\n\n // Class\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n};\n\nlet dragging = false;\nlet mousedownX = 0;\nlet mousedownY = 0;\nlet initialX = 0;\nlet initialY = 0;\n\n/**\n * @param {HTMLElement} popup\n */\nconst addDraggableListeners = popup => {\n popup.addEventListener('mousedown', down);\n document.body.addEventListener('mousemove', move);\n popup.addEventListener('mouseup', up);\n popup.addEventListener('touchstart', down);\n document.body.addEventListener('touchmove', move);\n popup.addEventListener('touchend', up);\n};\n\n/**\n * @param {HTMLElement} popup\n */\nconst removeDraggableListeners = popup => {\n popup.removeEventListener('mousedown', down);\n document.body.removeEventListener('mousemove', move);\n popup.removeEventListener('mouseup', up);\n popup.removeEventListener('touchstart', down);\n document.body.removeEventListener('touchmove', move);\n popup.removeEventListener('touchend', up);\n};\n\n/**\n * @param {MouseEvent | TouchEvent} event\n */\nconst down = event => {\n const popup = getPopup();\n if (event.target === popup || getIcon().contains(/** @type {HTMLElement} */event.target)) {\n dragging = true;\n const clientXY = getClientXY(event);\n mousedownX = clientXY.clientX;\n mousedownY = clientXY.clientY;\n initialX = parseInt(popup.style.insetInlineStart) || 0;\n initialY = parseInt(popup.style.insetBlockStart) || 0;\n addClass(popup, 'swal2-dragging');\n }\n};\n\n/**\n * @param {MouseEvent | TouchEvent} event\n */\nconst move = event => {\n const popup = getPopup();\n if (dragging) {\n let {\n clientX,\n clientY\n } = getClientXY(event);\n popup.style.insetInlineStart = `${initialX + (clientX - mousedownX)}px`;\n popup.style.insetBlockStart = `${initialY + (clientY - mousedownY)}px`;\n }\n};\nconst up = () => {\n const popup = getPopup();\n dragging = false;\n removeClass(popup, 'swal2-dragging');\n};\n\n/**\n * @param {MouseEvent | TouchEvent} event\n * @returns {{ clientX: number, clientY: number }}\n */\nconst getClientXY = event => {\n let clientX = 0,\n clientY = 0;\n if (event.type.startsWith('mouse')) {\n clientX = /** @type {MouseEvent} */event.clientX;\n clientY = /** @type {MouseEvent} */event.clientY;\n } else if (event.type.startsWith('touch')) {\n clientX = /** @type {TouchEvent} */event.touches[0].clientX;\n clientY = /** @type {TouchEvent} */event.touches[0].clientY;\n }\n return {\n clientX,\n clientY\n };\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup();\n if (!container || !popup) {\n return;\n }\n\n // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n const loader = getLoader();\n if (loader) {\n popup.insertBefore(loader, getIcon());\n }\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n }\n\n // Padding\n applyNumericalStyle(popup, 'padding', params.padding);\n\n // Color\n if (params.color) {\n popup.style.color = params.color;\n }\n\n // Background\n if (params.background) {\n popup.style.background = params.background;\n }\n hide(getValidationMessage());\n\n // Classes\n addClasses$1(popup, params);\n if (params.draggable && !params.toast) {\n addClass(popup, swalClasses.draggable);\n addDraggableListeners(popup);\n } else {\n removeClass(popup, swalClasses.draggable);\n removeDraggableListeners(popup);\n }\n};\n\n/**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\nconst addClasses$1 = (popup, params) => {\n const showClass = params.showClass || {};\n // Default Class + showClass when updating Swal.update({})\n popup.className = `${swalClasses.popup} ${isVisible$1(popup) ? showClass.popup : ''}`;\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n }\n\n // Custom class\n applyCustomClass(popup, params, 'popup');\n // TODO: remove in the next major\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n }\n\n // Icon class (#1842)\n if (params.icon) {\n addClass(popup, swalClasses[`icon-${params.icon}`]);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n if (!progressStepsContainer) {\n return;\n }\n const {\n progressSteps,\n currentProgressStep\n } = params;\n if (!progressSteps || progressSteps.length === 0 || currentProgressStep === undefined) {\n hide(progressStepsContainer);\n return;\n }\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n if (currentProgressStep >= progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n if (index === currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n if (index !== progressSteps.length - 1) {\n const lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n};\n\n/**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\nconst createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n};\n\n/**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\nconst createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n return lineEl;\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst renderTitle = (instance, params) => {\n const title = getTitle();\n if (!title) {\n return;\n }\n showWhenInnerHtmlPresent(title);\n toggle(title, params.title || params.titleText, 'block');\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n if (params.titleText) {\n title.innerText = params.titleText;\n }\n\n // Custom class\n applyCustomClass(title, params, 'title');\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst render = (instance, params) => {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n const popup = getPopup();\n if (typeof params.didRender === 'function' && popup) {\n params.didRender(popup);\n }\n globalState.eventEmitter.emit('didRender', popup);\n};\n\n/*\n * Global function to determine if SweetAlert2 popup is shown\n */\nconst isVisible = () => {\n return isVisible$1(getPopup());\n};\n\n/*\n * Global function to click 'Confirm' button\n */\nconst clickConfirm = () => {\n var _dom$getConfirmButton;\n return (_dom$getConfirmButton = getConfirmButton()) === null || _dom$getConfirmButton === void 0 ? void 0 : _dom$getConfirmButton.click();\n};\n\n/*\n * Global function to click 'Deny' button\n */\nconst clickDeny = () => {\n var _dom$getDenyButton;\n return (_dom$getDenyButton = getDenyButton()) === null || _dom$getDenyButton === void 0 ? void 0 : _dom$getDenyButton.click();\n};\n\n/*\n * Global function to click 'Cancel' button\n */\nconst clickCancel = () => {\n var _dom$getCancelButton;\n return (_dom$getCancelButton = getCancelButton()) === null || _dom$getCancelButton === void 0 ? void 0 : _dom$getCancelButton.click();\n};\n\n/** @typedef {'cancel' | 'backdrop' | 'close' | 'esc' | 'timer'} DismissReason */\n\n/** @type {Record<DismissReason, DismissReason>} */\nconst DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n});\n\n/**\n * @param {GlobalState} globalState\n */\nconst removeKeydownHandler = globalState => {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n};\n\n/**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\nconst addKeydownHandler = (globalState, innerParams, dismissWith) => {\n removeKeydownHandler(globalState);\n if (!innerParams.toast) {\n globalState.keydownHandler = e => keydownHandler(innerParams, e, dismissWith);\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n};\n\n/**\n * @param {number} index\n * @param {number} increment\n */\nconst setFocus = (index, increment) => {\n var _dom$getPopup;\n const focusableElements = getFocusableElements();\n // search for visible elements and select the next possible match\n if (focusableElements.length) {\n index = index + increment;\n\n // rollover to first item\n if (index === focusableElements.length) {\n index = 0;\n\n // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n focusableElements[index].focus();\n return;\n }\n // no visible focusable elements, focus the popup\n (_dom$getPopup = getPopup()) === null || _dom$getPopup === void 0 || _dom$getPopup.focus();\n};\nconst arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\nconst arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @param {KeyboardEvent} event\n * @param {Function} dismissWith\n */\nconst keydownHandler = (innerParams, event, dismissWith) => {\n if (!innerParams) {\n return; // This instance has already been destroyed\n }\n\n // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n if (event.isComposing || event.keyCode === 229) {\n return;\n }\n if (innerParams.stopKeydownPropagation) {\n event.stopPropagation();\n }\n\n // ENTER\n if (event.key === 'Enter') {\n handleEnter(event, innerParams);\n }\n\n // TAB\n else if (event.key === 'Tab') {\n handleTab(event);\n }\n\n // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(event.key)) {\n handleArrows(event.key);\n }\n\n // ESC\n else if (event.key === 'Escape') {\n handleEsc(event, innerParams, dismissWith);\n }\n};\n\n/**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n */\nconst handleEnter = (event, innerParams) => {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n const input = getInput$1(getPopup(), innerParams.input);\n if (event.target && input && event.target instanceof HTMLElement && event.target.outerHTML === input.outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n clickConfirm();\n event.preventDefault();\n }\n};\n\n/**\n * @param {KeyboardEvent} event\n */\nconst handleTab = event => {\n const targetElement = event.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n }\n\n // Cycle to the next button\n if (!event.shiftKey) {\n setFocus(btnIndex, 1);\n }\n\n // Cycle to the prev button\n else {\n setFocus(btnIndex, -1);\n }\n event.stopPropagation();\n event.preventDefault();\n};\n\n/**\n * @param {string} key\n */\nconst handleArrows = key => {\n const actions = getActions();\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n if (!actions || !confirmButton || !denyButton || !cancelButton) {\n return;\n }\n /** @type HTMLElement[] */\n const buttons = [confirmButton, denyButton, cancelButton];\n if (document.activeElement instanceof HTMLElement && !buttons.includes(document.activeElement)) {\n return;\n }\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n let buttonToFocus = document.activeElement;\n if (!buttonToFocus) {\n return;\n }\n for (let i = 0; i < actions.children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n if (!buttonToFocus) {\n return;\n }\n if (buttonToFocus instanceof HTMLButtonElement && isVisible$1(buttonToFocus)) {\n break;\n }\n }\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n};\n\n/**\n * @param {KeyboardEvent} event\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\nconst handleEsc = (event, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n event.preventDefault();\n dismissWith(DismissReason.esc);\n }\n};\n\n/**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n\nvar privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n};\n\n// From https://developer.paciellogroup.com/blog/2018/06/the-current-state-of-modal-dialog-accessibility/\n// Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n// elements not within the active modal dialog will not be surfaced if a user opens a screen\n// reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\nconst setAriaHidden = () => {\n const container = getContainer();\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.contains(container)) {\n return;\n }\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden') || '');\n }\n el.setAttribute('aria-hidden', 'true');\n });\n};\nconst unsetAriaHidden = () => {\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden') || '');\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n};\n\n// @ts-ignore\nconst isSafariOrIOS = typeof window !== 'undefined' && !!window.GestureEvent; // true for Safari desktop + all iOS browsers https://stackoverflow.com/a/70585394\n\n/**\n * Fix iOS scrolling\n * http://stackoverflow.com/q/39626302\n */\nconst iOSfix = () => {\n if (isSafariOrIOS && !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 }\n};\n\n/**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\nconst lockBodyScroll = () => {\n const container = getContainer();\n if (!container) {\n return;\n }\n /** @type {boolean} */\n let preventTouchMove;\n /**\n * @param {TouchEvent} event\n */\n container.ontouchstart = event => {\n preventTouchMove = shouldPreventTouchMove(event);\n };\n /**\n * @param {TouchEvent} event\n */\n container.ontouchmove = event => {\n if (preventTouchMove) {\n event.preventDefault();\n event.stopPropagation();\n }\n };\n};\n\n/**\n * @param {TouchEvent} event\n * @returns {boolean}\n */\nconst shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n const htmlContainer = getHtmlContainer();\n if (!container || !htmlContainer) {\n return false;\n }\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n if (target === container) {\n return true;\n }\n if (!isScrollable(container) && target instanceof HTMLElement && target.tagName !== 'INPUT' &&\n // #1603\n target.tagName !== 'TEXTAREA' &&\n // #2266\n !(isScrollable(htmlContainer) &&\n // #1944\n htmlContainer.contains(target))) {\n return true;\n }\n return false;\n};\n\n/**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\nconst isStylus = event => {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n};\n\n/**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\nconst isZoom = event => {\n return event.touches && event.touches.length > 1;\n};\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/**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\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\n/**\n * Remember state in cases where opening and handling a modal will fiddle with it.\n * @type {number | null}\n */\nlet previousBodyPadding = null;\n\n/**\n * @param {string} initialBodyOverflow\n */\nconst replaceScrollbarWithPadding = initialBodyOverflow => {\n // for queues, do not do this more than once\n if (previousBodyPadding !== null) {\n return;\n }\n // if the body has overflow\n if (document.body.scrollHeight > window.innerHeight || initialBodyOverflow === 'scroll' // https://github.com/sweetalert2/sweetalert2/issues/2663\n ) {\n // add padding so the content doesn't shift after removal of scrollbar\n previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = `${previousBodyPadding + measureScrollbar()}px`;\n }\n};\nconst undoReplaceScrollbarWithPadding = () => {\n if (previousBodyPadding !== null) {\n document.body.style.paddingRight = `${previousBodyPadding}px`;\n previousBodyPadding = null;\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\nfunction removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n removeKeydownHandler(globalState);\n }\n\n // workaround for https://github.com/sweetalert2/sweetalert2/issues/2088\n // for some reason removing the container in Safari will scroll the document to bottom\n if (isSafariOrIOS) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n if (isModal()) {\n undoReplaceScrollbarWithPadding();\n undoIOSfix();\n unsetAriaHidden();\n }\n removeBodyClasses();\n}\n\n/**\n * Remove SweetAlert2 classes from body\n */\nfunction removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n}\n\n/**\n * Instance method to close sweetAlert\n *\n * @param {any} resolveValue\n */\nfunction close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n const didClose = triggerClosePopup(this);\n if (this.isAwaitingPromise) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n}\nconst triggerClosePopup = instance => {\n const popup = getPopup();\n if (!popup) {\n return false;\n }\n const innerParams = privateProps.innerParams.get(instance);\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n const backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n};\n\n/**\n * @param {any} error\n */\nfunction rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n}\n\n/**\n * @param {SweetAlert} instance\n */\nconst handleAwaitingPromise = instance => {\n if (instance.isAwaitingPromise) {\n delete instance.isAwaitingPromise;\n // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n};\n\n/**\n * @param {any} resolveValue\n * @returns {SweetAlertResult}\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 return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} innerParams\n */\nconst handlePopupAnimation = (instance, popup, innerParams) => {\n var _globalState$eventEmi;\n const container = getContainer();\n // If animation is supported, animate\n const animationIsSupported = hasCssAnimation(popup);\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n (_globalState$eventEmi = globalState.eventEmitter) === null || _globalState$eventEmi === void 0 || _globalState$eventEmi.emit('willClose', popup);\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {HTMLElement} popup\n * @param {HTMLElement} container\n * @param {boolean} returnFocus\n * @param {Function} didClose\n */\nconst animatePopup = (instance, popup, container, returnFocus, didClose) => {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n /**\n * @param {AnimationEvent | TransitionEvent} e\n */\n const swalCloseAnimationFinished = function (e) {\n if (e.target === popup) {\n var _globalState$swalClos;\n (_globalState$swalClos = globalState.swalCloseEventFinishedCallback) === null || _globalState$swalClos === void 0 || _globalState$swalClos.call(globalState);\n delete globalState.swalCloseEventFinishedCallback;\n popup.removeEventListener('animationend', swalCloseAnimationFinished);\n popup.removeEventListener('transitionend', swalCloseAnimationFinished);\n }\n };\n popup.addEventListener('animationend', swalCloseAnimationFinished);\n popup.addEventListener('transitionend', swalCloseAnimationFinished);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {Function} didClose\n */\nconst triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n var _globalState$eventEmi2;\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n (_globalState$eventEmi2 = globalState.eventEmitter) === null || _globalState$eventEmi2 === void 0 || _globalState$eventEmi2.emit('didClose');\n // instance might have been destroyed already\n if (instance._destroy) {\n instance._destroy();\n }\n });\n};\n\n/**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n *\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\nconst showLoading = buttonToReplace => {\n let popup = getPopup();\n if (!popup) {\n new Swal();\n }\n popup = getPopup();\n if (!popup) {\n return;\n }\n const loader = getLoader();\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n};\n\n/**\n * @param {HTMLElement} popup\n * @param {HTMLButtonElement | null} [buttonToReplace]\n */\nconst replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n if (!actions || !loader) {\n return;\n }\n if (!buttonToReplace && isVisible$1(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n show(actions);\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n actions.insertBefore(loader, buttonToReplace);\n }\n addClass([popup, actions], swalClasses.loading);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\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'].some(i => i === params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} innerParams\n * @returns {SweetAlertInputValue}\n */\nconst getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n if (!input) {\n return null;\n }\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n case 'radio':\n return getRadioValue(input);\n case 'file':\n return getFileValue(input);\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n};\n\n/**\n * @param {HTMLInputElement} input\n * @returns {number}\n */\nconst getCheckboxValue = input => input.checked ? 1 : 0;\n\n/**\n * @param {HTMLInputElement} input\n * @returns {string | null}\n */\nconst getRadioValue = input => input.checked ? input.value : null;\n\n/**\n * @param {HTMLInputElement} input\n * @returns {FileList | File | null}\n */\nconst getFileValue = input => input.files && input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst handleInputOptions = (instance, params) => {\n const popup = getPopup();\n if (!popup) {\n return;\n }\n /**\n * @param {Record<string, any>} inputOptions\n */\n const processInputOptions = inputOptions => {\n if (params.input === 'select') {\n populateSelectOptions(popup, formatInputOptions(inputOptions), params);\n } else if (params.input === 'radio') {\n populateRadioOptions(popup, formatInputOptions(inputOptions), params);\n }\n };\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(inputOptions => {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (typeof params.inputOptions === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(`Unexpected type of inputOptions! Expected object, Map or Promise, got ${typeof params.inputOptions}`);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertOptions} params\n */\nconst handleInputValue = (instance, params) => {\n const input = instance.getInput();\n if (!input) {\n return;\n }\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\n/**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\nfunction populateSelectOptions(popup, inputOptions, params) {\n const select = getDirectChildByClass(popup, swalClasses.select);\n if (!select) {\n return;\n }\n /**\n * @param {HTMLElement} parent\n * @param {string} optionLabel\n * @param {string} optionValue\n */\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1];\n // <optgroup> 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 <optgroup>\n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an <optgroup>\n const optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n select.appendChild(optgroup);\n optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n } else {\n // case of <option>\n renderOption(select, optionLabel, optionValue);\n }\n });\n select.focus();\n}\n\n/**\n * @param {HTMLElement} popup\n * @param {InputOptionFlattened[]} inputOptions\n * @param {SweetAlertOptions} params\n */\nfunction populateRadioOptions(popup, inputOptions, params) {\n const radio = getDirectChildByClass(popup, swalClasses.radio);\n if (!radio) {\n return;\n }\n inputOptions.forEach(inputOption => {\n const radioValue = inputOption[0];\n const radioLabel = inputOption[1];\n const radioInput = document.createElement('input');\n const radioLabelElement = document.createElement('label');\n radioInput.type = 'radio';\n radioInput.name = swalClasses.radio;\n radioInput.value = radioValue;\n if (isSelected(radioValue, params.inputValue)) {\n radioInput.checked = true;\n }\n const label = document.createElement('span');\n setInnerHtml(label, radioLabel);\n label.className = swalClasses.label;\n radioLabelElement.appendChild(radioInput);\n radioLabelElement.appendChild(label);\n radio.appendChild(radioLabelElement);\n });\n const radios = radio.querySelectorAll('input');\n if (radios.length) {\n radios[0].focus();\n }\n}\n\n/**\n * Converts `inputOptions` into an array of `[value, label]`s\n *\n * @param {Record<string, any>} inputOptions\n * @typedef {string[]} InputOptionFlattened\n * @returns {InputOptionFlattened[]}\n */\nconst formatInputOptions = inputOptions => {\n /** @type {InputOptionFlattened[]} */\n const result = [];\n if (inputOptions instanceof Map) {\n inputOptions.forEach((value, key) => {\n let valueFormatted = value;\n if (typeof valueFormatted === 'object') {\n // case of <optgroup>\n valueFormatted = formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(key => {\n let valueFormatted = inputOptions[key];\n if (typeof valueFormatted === 'object') {\n // case of <optgroup>\n valueFormatted = formatInputOptions(valueFormatted);\n }\n result.push([key, valueFormatted]);\n });\n }\n return result;\n};\n\n/**\n * @param {string} optionValue\n * @param {SweetAlertInputValue} inputValue\n * @returns {boolean}\n */\nconst isSelected = (optionValue, inputValue) => {\n return !!inputValue && inputValue.toString() === optionValue.toString();\n};\n\n/**\n * @param {SweetAlert} instance\n */\nconst handleConfirmButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm');\n } else {\n confirm(instance, true);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n */\nconst handleDenyButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny');\n } else {\n deny(instance, false);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {Function} dismissWith\n */\nconst handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {'confirm' | 'deny'} type\n */\nconst handleConfirmOrDenyWithInput = (instance, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n if (!innerParams.input) {\n error(`The \"input\" parameter is needed to be set when using returnInputValueOn${capitalizeFirstLetter(type)}`);\n return;\n }\n const input = instance.getInput();\n const inputValue = getInputValue(instance, innerParams);\n if (innerParams.inputValidator) {\n handleInputValidator(instance, inputValue, type);\n } else if (input && !input.checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage || input.validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {SweetAlertInputValue} inputValue\n * @param {'confirm' | 'deny'} type\n */\nconst handleInputValidator = (instance, inputValue, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableInput();\n const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));\n validationPromise.then(validationMessage => {\n instance.enableButtons();\n instance.enableInput();\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n });\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {any} value\n */\nconst deny = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n if (innerParams.preDeny) {\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));\n preDenyPromise.then(preDenyValue => {\n if (preDenyValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n instance.close({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n }).catch(error => rejectWith(instance || undefined, error));\n } else {\n instance.close({\n isDenied: true,\n value\n });\n }\n};\n\n/**\n * @param {SweetAlert} instance\n * @param {any} value\n */\nconst succeedWith = (instance, value) => {\n instance.close({\n isConfirmed: true,\n value\n });\n};\n\n/**\n *\n * @param {SweetAlert} instance\n * @param {string} error\n */\nconst rejectWith = (instance, error) => {\n instance.rejectPromise(error);\n};\n\n/**\n *\n * @param {SweetAlert} instance\n * @param {any} value\n */\nconst confirm = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n if (innerParams.showLoaderOnConfirm) {\n showLoading();\n }\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n instance.isAwaitingPromise = true; // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));\n preConfirmPromise.then(preConfirmValue => {\n if (isVisible$1(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n }).catch(error => rejectWith(instance || undefined, error));\n } else {\n succeedWith(instance, value);\n }\n};\n\n/**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\nfunction hideLoading() {\n // do nothing if popup is closed\n const innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n return;\n }\n const domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n}\nconst showRelatedButton = domCache => {\n const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n if (buttonToReplace.length) {\n show(buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n};\n\n/**\n * Gets the input DOM node, this method works with input parameter.\n *\n * @returns {HTMLInputElement | null}\n */\nfunction getInput() {\n const innerParams = privateProps.innerParams.get(this);\n const domCache = privateProps.domCache.get(this);\n if (!domCache) {\n return null;\n }\n return getInput$1(domCache.popup, innerParams.input);\n}\n\n/**\n * @param {SweetAlert} instance\n * @param {string[]} buttons\n * @param {boolean} disabled\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\n/**\n * @param {HTMLInputElement | null} input\n * @param {boolean} disabled\n */\nfunction setInputDisabled(input, disabled) {\n const popup = getPopup();\n if (!popup || !input) {\n return;\n }\n if (input.type === 'radio') {\n /** @type {NodeListOf<HTMLInputElement>} */\n const radios = popup.querySelectorAll(`[name=\"${swalClasses.radio}\"]`);\n for (let i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n}\n\n/**\n * Enable all the buttons\n * @this {SweetAlert}\n */\nfunction enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n}\n\n/**\n * Disable all the buttons\n * @this {SweetAlert}\n */\nfunction disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n}\n\n/**\n * Enable the input field\n * @this {SweetAlert}\n */\nfunction enableInput() {\n setInputDisabled(this.getInput(), false);\n}\n\n/**\n * Disable the input field\n * @this {SweetAlert}\n */\nfunction disableInput() {\n setInputDisabled(this.getInput(), true);\n}\n\n/**\n * Show block with validation message\n *\n * @param {string} error\n * @this {SweetAlert}\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 if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n show(domCache.validationMessage);\n const input = this.getInput();\n if (input) {\n input.setAttribute('aria-invalid', 'true');\n input.setAttribute('aria-describedby', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n}\n\n/**\n * Hide block with validation message\n *\n * @this {SweetAlert}\n */\nfunction resetValidationMessage() {\n const domCache = privateProps.domCache.get(this);\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n const input = this.getInput();\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n}\n\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 draggable: false,\n animation: true,\n theme: 'light',\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoFocus: true,\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true\n};\nconst updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'draggable', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'theme', 'willClose'];\n\n/** @type {Record<string, string | undefined>} */\nconst deprecatedParams = {\n allowEnterKey: undefined\n};\nconst toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'draggable', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n\n/**\n * Is valid parameter\n *\n * @param {string} paramName\n * @returns {boolean}\n */\nconst isValidParameter = paramName => {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n};\n\n/**\n * Is valid parameter for Swal.update() method\n *\n * @param {string} paramName\n * @returns {boolean}\n */\nconst isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n};\n\n/**\n * Is deprecated parameter\n *\n * @param {string} paramName\n * @returns {string | undefined}\n */\nconst isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n};\n\n/**\n * @param {string} param\n */\nconst checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(`Unknown parameter \"${param}\"`);\n }\n};\n\n/**\n * @param {string} param\n */\nconst checkIfToastParamIsValid = param => {\n if (toastIncompatibleParams.includes(param)) {\n warn(`The parameter \"${param}\" is incompatible with toasts`);\n }\n};\n\n/**\n * @param {string} param\n */\nconst checkIfParamIsDeprecated = param => {\n const isDeprecated = isDeprecatedParameter(param);\n if (isDeprecated) {\n warnAboutDeprecation(param, isDeprecated);\n }\n};\n\n/**\n * Show relevant warnings for given params\n *\n * @param {SweetAlertOptions} params\n */\nconst showWarningsForParams = params => {\n if (params.backdrop === false && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n if (params.theme && !['light', 'dark', 'auto', 'borderless'].includes(params.theme)) {\n warn(`Invalid theme \"${params.theme}\". Expected \"light\", \"dark\", \"auto\", or \"borderless\"`);\n }\n for (const param in params) {\n checkIfParamIsValid(param);\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n checkIfParamIsDeprecated(param);\n }\n};\n\n/**\n * Updates popup parameters.\n *\n * @param {SweetAlertOptions} params\n */\nfunction update(params) {\n const container = getContainer();\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(this);\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n warn(`You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.`);\n return;\n }\n const validUpdatableParams = filterValidParams(params);\n const updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n showWarningsForParams(updatedParams);\n container.dataset['swal2Theme'] = updatedParams.theme;\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n}\n\n/**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\nconst filterValidParams = params => {\n const validUpdatableParams = {};\n Object.keys(params).forEach(param => {\n if (isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(`Invalid parameter to update: ${param}`);\n }\n });\n return validUpdatableParams;\n};\n\n/**\n * Dispose the current SweetAlert2 instance\n */\nfunction _destroy() {\n const domCache = privateProps.domCache.get(this);\n const innerParams = privateProps.innerParams.get(this);\n if (!innerParams) {\n disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n return; // This instance has already been destroyed\n }\n\n // Check if there is another Swal closing\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n globalState.eventEmitter.emit('didDestroy');\n disposeSwal(this);\n}\n\n/**\n * @param {SweetAlert} instance\n */\nconst disposeSwal = instance => {\n disposeWeakMaps(instance);\n // Unset this.params so GC will dispose it (#1569)\n delete instance.params;\n // Unset globalState props so GC will dispose globalState (#1569)\n delete globalState.keydownHandler;\n delete globalState.keydownTarget;\n // Unset currentInstance\n delete globalState.currentInstance;\n};\n\n/**\n * @param {SweetAlert} instance\n */\nconst disposeWeakMaps = instance => {\n // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n if (instance.isAwaitingPromise) {\n unsetWeakMaps(privateProps, instance);\n instance.isAwaitingPromise = true;\n } else {\n unsetWeakMaps(privateMethods, instance);\n unsetWeakMaps(privateProps, instance);\n delete instance.isAwaitingPromise;\n // Unset instance methods\n delete instance.disableButtons;\n delete instance.enableButtons;\n delete instance.getInput;\n delete instance.disableInput;\n delete instance.enableInput;\n delete instance.hideLoading;\n delete instance.disableLoading;\n delete instance.showValidationMessage;\n delete instance.resetValidationMessage;\n delete instance.close;\n delete instance.closePopup;\n delete instance.closeModal;\n delete instance.closeToast;\n delete instance.rejectPromise;\n delete instance.update;\n delete instance._destroy;\n }\n};\n\n/**\n * @param {object} obj\n * @param {SweetAlert} instance\n */\nconst unsetWeakMaps = (obj, instance) => {\n for (const i in obj) {\n obj[i].delete(instance);\n }\n};\n\nvar instanceMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n _destroy: _destroy,\n close: close,\n closeModal: close,\n closePopup: close,\n closeToast: close,\n disableButtons: disableButtons,\n disableInput: disableInput,\n disableLoading: hideLoading,\n enableButtons: enableButtons,\n enableInput: enableInput,\n getInput: getInput,\n handleAwaitingPromise: handleAwaitingPromise,\n hideLoading: hideLoading,\n rejectPromise: rejectPromise,\n resetValidationMessage: resetValidationMessage,\n showValidationMessage: showValidationMessage,\n update: update\n});\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\nconst handlePopupClick = (innerParams, domCache, dismissWith) => {\n if (innerParams.toast) {\n handleToastClick(innerParams, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache);\n\n // Ignore click events that had mousedown on the container but mouseup on the popup\n handleContainerMousedown(domCache);\n handleModalClick(innerParams, domCache, dismissWith);\n }\n};\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\nconst handleToastClick = (innerParams, domCache, dismissWith) => {\n // Closing toast by internal click\n domCache.popup.onclick = () => {\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return;\n }\n dismissWith(DismissReason.close);\n };\n};\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\nconst isAnyButtonShown = innerParams => {\n return !!(innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton);\n};\nlet ignoreOutsideClick = false;\n\n/**\n * @param {DomCache} domCache\n */\nconst handleModalMousedown = domCache => {\n domCache.popup.onmousedown = () => {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = () => {};\n // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n};\n\n/**\n * @param {DomCache} domCache\n */\nconst handleContainerMousedown = domCache => {\n domCache.container.onmousedown = e => {\n // prevent the modal text from being selected on double click on the container (allowOutsideClick: false)\n if (e.target === domCache.container) {\n e.preventDefault();\n }\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = () => {};\n // We also need to check if the mouseup target is a child of the popup\n if (e.target === domCache.popup || e.target instanceof HTMLElement && domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n};\n\n/**\n * @param {SweetAlertOptions} innerParams\n * @param {DomCache} domCache\n * @param {Function} dismissWith\n */\nconst handleModalClick = (innerParams, domCache, dismissWith) => {\n domCache.container.onclick = e => {\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n};\n\nconst isJqueryElement = elem => typeof elem === 'object' && elem.jquery;\nconst isElement = elem => elem instanceof Element || isJqueryElement(elem);\nconst argsToParams = args => {\n const params = {};\n if (typeof args[0] === 'object' && !isElement(args[0])) {\n Object.assign(params, args[0]);\n } else {\n ['title', 'html', 'icon'].forEach((name, index) => {\n const arg = args[index];\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(`Unexpected type of ${name}! Expected \"string\" or \"Element\", got ${typeof arg}`);\n }\n });\n }\n return params;\n};\n\n/**\n * Main method to create a new SweetAlert2 popup\n *\n * @param {...SweetAlertOptions} args\n * @returns {Promise<SweetAlertResult>}\n */\nfunction fire() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return new this(...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 {SweetAlertOptions} mixinParams\n * @returns {SweetAlert}\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 // @ts-ignore\n return MixinSwal;\n}\n\n/**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n *\n * @returns {number | undefined}\n */\nconst getTimerLeft = () => {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n};\n\n/**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\nconst stopTimer = () => {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n};\n\n/**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\nconst resumeTimer = () => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n};\n\n/**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @returns {number | undefined}\n */\nconst toggleTimer = () => {\n const timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n};\n\n/**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n *\n * @param {number} ms\n * @returns {number | undefined}\n */\nconst increaseTimer = ms => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.increase(ms);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n};\n\n/**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n *\n * @returns {boolean}\n */\nconst isTimerRunning = () => {\n return !!(globalState.timeout && globalState.timeout.isRunning());\n};\n\nlet bodyClickListenerAdded = false;\nconst clickHandlers = {};\n\n/**\n * @param {string} attr\n */\nfunction bindClickHandler() {\n let attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n clickHandlers[attr] = this;\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n}\nconst bodyClickListener = event => {\n for (let el = event.target; el && el !== document; el = el.parentNode) {\n for (const attr in clickHandlers) {\n const template = el.getAttribute(attr);\n if (template) {\n clickHandlers[attr].fire({\n template\n });\n return;\n }\n }\n }\n};\n\n// Source: https://gist.github.com/mudge/5830382?permalink_comment_id=2691957#gistcomment-2691957\n\nclass EventEmitter {\n constructor() {\n /** @type {Events} */\n this.events = {};\n }\n\n /**\n * @param {string} eventName\n * @returns {EventHandlers}\n */\n _getHandlersByEventName(eventName) {\n if (typeof this.events[eventName] === 'undefined') {\n // not Set because we need to keep the FIFO order\n // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1748990334\n this.events[eventName] = [];\n }\n return this.events[eventName];\n }\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n on(eventName, eventHandler) {\n const currentHandlers = this._getHandlersByEventName(eventName);\n if (!currentHandlers.includes(eventHandler)) {\n currentHandlers.push(eventHandler);\n }\n }\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n once(eventName, eventHandler) {\n var _this = this;\n /**\n * @param {Array} args\n */\n const onceFn = function () {\n _this.removeListener(eventName, onceFn);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n eventHandler.apply(_this, args);\n };\n this.on(eventName, onceFn);\n }\n\n /**\n * @param {string} eventName\n * @param {Array} args\n */\n emit(eventName) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n this._getHandlersByEventName(eventName).forEach(\n /**\n * @param {EventHandler} eventHandler\n */\n eventHandler => {\n try {\n eventHandler.apply(this, args);\n } catch (error) {\n console.error(error);\n }\n });\n }\n\n /**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\n removeListener(eventName, eventHandler) {\n const currentHandlers = this._getHandlersByEventName(eventName);\n const index = currentHandlers.indexOf(eventHandler);\n if (index > -1) {\n currentHandlers.splice(index, 1);\n }\n }\n\n /**\n * @param {string} eventName\n */\n removeAllListeners(eventName) {\n if (this.events[eventName] !== undefined) {\n // https://github.com/sweetalert2/sweetalert2/pull/2763#discussion_r1749239222\n this.events[eventName].length = 0;\n }\n }\n reset() {\n this.events = {};\n }\n}\n\nglobalState.eventEmitter = new EventEmitter();\n\n/**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\nconst on = (eventName, eventHandler) => {\n globalState.eventEmitter.on(eventName, eventHandler);\n};\n\n/**\n * @param {string} eventName\n * @param {EventHandler} eventHandler\n */\nconst once = (eventName, eventHandler) => {\n globalState.eventEmitter.once(eventName, eventHandler);\n};\n\n/**\n * @param {string} [eventName]\n * @param {EventHandler} [eventHandler]\n */\nconst off = (eventName, eventHandler) => {\n // Remove all handlers for all events\n if (!eventName) {\n globalState.eventEmitter.reset();\n return;\n }\n if (eventHandler) {\n // Remove a specific handler\n globalState.eventEmitter.removeListener(eventName, eventHandler);\n } else {\n // Remove all handlers for a specific event\n globalState.eventEmitter.removeAllListeners(eventName);\n }\n};\n\nvar staticMethods = /*#__PURE__*/Object.freeze({\n __proto__: null,\n argsToParams: argsToParams,\n bindClickHandler: bindClickHandler,\n clickCancel: clickCancel,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n enableLoading: showLoading,\n fire: fire,\n getActions: getActions,\n getCancelButton: getCancelButton,\n getCloseButton: getCloseButton,\n getConfirmButton: getConfirmButton,\n getContainer: getContainer,\n getDenyButton: getDenyButton,\n getFocusableElements: getFocusableElements,\n getFooter: getFooter,\n getHtmlContainer: getHtmlContainer,\n getIcon: getIcon,\n getIconContent: getIconContent,\n getImage: getImage,\n getInputLabel: getInputLabel,\n getLoader: getLoader,\n getPopup: getPopup,\n getProgressSteps: getProgressSteps,\n getTimerLeft: getTimerLeft,\n getTimerProgressBar: getTimerProgressBar,\n getTitle: getTitle,\n getValidationMessage: getValidationMessage,\n increaseTimer: increaseTimer,\n isDeprecatedParameter: isDeprecatedParameter,\n isLoading: isLoading,\n isTimerRunning: isTimerRunning,\n isUpdatableParameter: isUpdatableParameter,\n isValidParameter: isValidParameter,\n isVisible: isVisible,\n mixin: mixin,\n off: off,\n on: on,\n once: once,\n resumeTimer: resumeTimer,\n showLoading: showLoading,\n stopTimer: stopTimer,\n toggleTimer: toggleTimer\n});\n\nclass Timer {\n /**\n * @param {Function} callback\n * @param {number} delay\n */\n constructor(callback, delay) {\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n /**\n * @returns {number}\n */\n start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n stop() {\n if (this.started && this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date().getTime() - this.started.getTime();\n }\n return this.remaining;\n }\n\n /**\n * @param {number} n\n * @returns {number}\n */\n increase(n) {\n const running = this.running;\n if (running) {\n this.stop();\n }\n this.remaining += n;\n if (running) {\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {number}\n */\n getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n return this.remaining;\n }\n\n /**\n * @returns {boolean}\n */\n isRunning() {\n return this.running;\n }\n}\n\nconst swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n\n/**\n * @param {SweetAlertOptions} params\n * @returns {SweetAlertOptions}\n */\nconst getTemplateParams = params => {\n const template = typeof params.template === 'string' ? (/** @type {HTMLTemplateElement} */document.querySelector(params.template)) : params.template;\n if (!template) {\n return {};\n }\n /** @type {DocumentFragment} */\n const templateContent = template.content;\n showWarningsForElements(templateContent);\n const result = Object.assign(getSwalParams(templateContent), getSwalFunctionParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, any>}\n */\nconst getSwalParams = templateContent => {\n /** @type {Record<string, any>} */\n const result = {};\n /** @type {HTMLElement[]} */\n const swalParams = Array.from(templateContent.querySelectorAll('swal-param'));\n swalParams.forEach(param => {\n showWarningsForAttributes(param, ['name', 'value']);\n const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n const value = param.getAttribute('value');\n if (!paramName || !value) {\n return;\n }\n if (typeof defaultParams[paramName] === 'boolean') {\n result[paramName] = value !== 'false';\n } else if (typeof defaultParams[paramName] === 'object') {\n result[paramName] = JSON.parse(value);\n } else {\n result[paramName] = value;\n }\n });\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, any>}\n */\nconst getSwalFunctionParams = templateContent => {\n /** @type {Record<string, any>} */\n const result = {};\n /** @type {HTMLElement[]} */\n const swalFunctions = Array.from(templateContent.querySelectorAll('swal-function-param'));\n swalFunctions.forEach(param => {\n const paramName = /** @type {keyof SweetAlertOptions} */param.getAttribute('name');\n const value = param.getAttribute('value');\n if (!paramName || !value) {\n return;\n }\n result[paramName] = new Function(`return ${value}`)();\n });\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, any>}\n */\nconst getSwalButtons = templateContent => {\n /** @type {Record<string, any>} */\n const result = {};\n /** @type {HTMLElement[]} */\n const swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));\n swalButtons.forEach(button => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n const type = button.getAttribute('type');\n if (!type || !['confirm', 'cancel', 'deny'].includes(type)) {\n return;\n }\n result[`${type}ButtonText`] = button.innerHTML;\n result[`show${capitalizeFirstLetter(type)}Button`] = true;\n if (button.hasAttribute('color')) {\n result[`${type}ButtonColor`] = button.getAttribute('color');\n }\n if (button.hasAttribute('aria-label')) {\n result[`${type}ButtonAriaLabel`] = button.getAttribute('aria-label');\n }\n });\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Pick<SweetAlertOptions, 'imageUrl' | 'imageWidth' | 'imageHeight' | 'imageAlt'>}\n */\nconst getSwalImage = templateContent => {\n const result = {};\n /** @type {HTMLElement | null} */\n const image = templateContent.querySelector('swal-image');\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src') || undefined;\n }\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width') || undefined;\n }\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height') || undefined;\n }\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt') || undefined;\n }\n }\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, any>}\n */\nconst getSwalIcon = templateContent => {\n const result = {};\n /** @type {HTMLElement | null} */\n const icon = templateContent.querySelector('swal-icon');\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type');\n }\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n result.iconHtml = icon.innerHTML;\n }\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @returns {Record<string, any>}\n */\nconst getSwalInput = templateContent => {\n /** @type {Record<string, any>} */\n const result = {};\n /** @type {HTMLElement | null} */\n const input = templateContent.querySelector('swal-input');\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n result.input = input.getAttribute('type') || 'text';\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n /** @type {HTMLElement[]} */\n const inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));\n if (inputOptions.length) {\n result.inputOptions = {};\n inputOptions.forEach(option => {\n showWarningsForAttributes(option, ['value']);\n const optionValue = option.getAttribute('value');\n if (!optionValue) {\n return;\n }\n const optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n * @returns {Record<string, any>}\n */\nconst getSwalStringParams = (templateContent, paramNames) => {\n /** @type {Record<string, any>} */\n const result = {};\n for (const i in paramNames) {\n const paramName = paramNames[i];\n /** @type {HTMLElement | null} */\n const tag = templateContent.querySelector(paramName);\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n return result;\n};\n\n/**\n * @param {DocumentFragment} templateContent\n */\nconst showWarningsForElements = templateContent => {\n const allowedElements = swalStringParams.concat(['swal-param', 'swal-function-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n Array.from(templateContent.children).forEach(el => {\n const tagName = el.tagName.toLowerCase();\n if (!allowedElements.includes(tagName)) {\n warn(`Unrecognized element <${tagName}>`);\n }\n });\n};\n\n/**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\nconst showWarningsForAttributes = (el, allowedAttributes) => {\n Array.from(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/**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param {SweetAlertOptions} params\n */\nconst openPopup = params => {\n const container = getContainer();\n const popup = getPopup();\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n }\n globalState.eventEmitter.emit('willOpen', popup);\n const bodyStyles = window.getComputedStyle(document.body);\n const initialBodyOverflow = bodyStyles.overflowY;\n addClasses(container, popup, params);\n\n // scrolling is 'hidden' until animation is done, after that 'auto'\n setTimeout(() => {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n setAriaHidden();\n }\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n if (typeof params.didOpen === 'function') {\n setTimeout(() => params.didOpen(popup));\n }\n globalState.eventEmitter.emit('didOpen', popup);\n removeClass(container, swalClasses['no-transition']);\n};\n\n/**\n * @param {AnimationEvent} event\n */\nconst swalOpenAnimationFinished = event => {\n const popup = getPopup();\n if (event.target !== popup) {\n return;\n }\n const container = getContainer();\n popup.removeEventListener('animationend', swalOpenAnimationFinished);\n popup.removeEventListener('transitionend', swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n};\n\n/**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n */\nconst setScrollingVisibility = (container, popup) => {\n if (hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener('animationend', swalOpenAnimationFinished);\n popup.addEventListener('transitionend', swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n};\n\n/**\n * @param {HTMLElement} container\n * @param {boolean} scrollbarPadding\n * @param {string} initialBodyOverflow\n */\nconst fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n iOSfix();\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n replaceScrollbarWithPadding(initialBodyOverflow);\n }\n\n // sweetalert2/issues/1247\n setTimeout(() => {\n container.scrollTop = 0;\n });\n};\n\n/**\n * @param {HTMLElement} container\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\nconst addClasses = (container, popup, params) => {\n addClass(container, params.showClass.backdrop);\n if (params.animation) {\n // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(() => {\n // Animate popup right after showing it\n addClass(popup, params.showClass.popup);\n // and remove the opacity workaround\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n } else {\n show(popup, 'grid');\n }\n addClass([document.documentElement, document.body], swalClasses.shown);\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n};\n\nvar defaultInputValidators = {\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise<string | void>}\n */\n email: (string, validationMessage) => {\n return /^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]+$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n /**\n * @param {string} string\n * @param {string} [validationMessage]\n * @returns {Promise<string | void>}\n */\n url: (string, validationMessage) => {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n};\n\n/**\n * @param {SweetAlertOptions} params\n */\nfunction setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (params.inputValidator) {\n return;\n }\n if (params.input === 'email') {\n params.inputValidator = defaultInputValidators['email'];\n }\n if (params.input === 'url') {\n params.inputValidator = defaultInputValidators['url'];\n }\n}\n\n/**\n * @param {SweetAlertOptions} params\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/**\n * Set type, text and actions on popup\n *\n * @param {SweetAlertOptions} params\n */\nfunction setParameters(params) {\n setDefaultInputValidators(params);\n\n // showLoaderOnConfirm && preConfirm\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n validateCustomTargetElement(params);\n\n // Replace newlines with <br> in title\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('<br />');\n }\n init(params);\n}\n\n/** @type {SweetAlert} */\nlet currentInstance;\nvar _promise = /*#__PURE__*/new WeakMap();\nclass SweetAlert {\n /**\n * @param {...any} args\n * @this {SweetAlert}\n */\n constructor() {\n /**\n * @type {Promise<SweetAlertResult>}\n */\n _classPrivateFieldInitSpec(this, _promise, void 0);\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n currentInstance = this;\n\n // @ts-ignore\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n const outerParams = Object.freeze(this.constructor.argsToParams(args));\n\n /** @type {Readonly<SweetAlertOptions>} */\n this.params = outerParams;\n\n /** @type {boolean} */\n this.isAwaitingPromise = false;\n _classPrivateFieldSet2(_promise, this, this._main(currentInstance.params));\n }\n _main(userParams) {\n let mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n if (globalState.currentInstance) {\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(globalState.currentInstance);\n const {\n isAwaitingPromise\n } = globalState.currentInstance;\n globalState.currentInstance._destroy();\n if (!isAwaitingPromise) {\n swalPromiseResolve({\n isDismissed: true\n });\n }\n if (isModal()) {\n unsetAriaHidden();\n }\n }\n globalState.currentInstance = currentInstance;\n const innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams);\n\n // clear the previous timer\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n }\n\n // clear the restore focus timeout\n clearTimeout(globalState.restoreFocusTimeout);\n const domCache = populateDomCache(currentInstance);\n render(currentInstance, innerParams);\n privateProps.innerParams.set(currentInstance, innerParams);\n return swalPromise(currentInstance, domCache, innerParams);\n }\n\n // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n then(onFulfilled) {\n return _classPrivateFieldGet2(_promise, this).then(onFulfilled);\n }\n finally(onFinally) {\n return _classPrivateFieldGet2(_promise, this).finally(onFinally);\n }\n}\n\n/**\n * @param {SweetAlert} instance\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {Promise}\n */\nconst swalPromise = (instance, domCache, innerParams) => {\n return new Promise((resolve, reject) => {\n // functions to handle all closings/dismissals\n /**\n * @param {DismissReason} dismiss\n */\n const dismissWith = dismiss => {\n instance.close({\n isDismissed: true,\n dismiss\n });\n };\n privateMethods.swalPromiseResolve.set(instance, resolve);\n privateMethods.swalPromiseReject.set(instance, reject);\n domCache.confirmButton.onclick = () => {\n handleConfirmButtonClick(instance);\n };\n domCache.denyButton.onclick = () => {\n handleDenyButtonClick(instance);\n };\n domCache.cancelButton.onclick = () => {\n handleCancelButtonClick(instance, dismissWith);\n };\n domCache.closeButton.onclick = () => {\n dismissWith(DismissReason.close);\n };\n handlePopupClick(innerParams, domCache, dismissWith);\n addKeydownHandler(globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams);\n\n // Scroll container to top on open (#1247, #1946)\n setTimeout(() => {\n domCache.container.scrollTop = 0;\n });\n });\n};\n\n/**\n * @param {SweetAlertOptions} userParams\n * @param {SweetAlertOptions} mixinParams\n * @returns {SweetAlertOptions}\n */\nconst prepareParams = (userParams, mixinParams) => {\n const templateParams = getTemplateParams(userParams);\n const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n if (params.animation === false) {\n params.showClass = {\n backdrop: 'swal2-noanimation'\n };\n params.hideClass = {};\n }\n return params;\n};\n\n/**\n * @param {SweetAlert} instance\n * @returns {DomCache}\n */\nconst populateDomCache = instance => {\n const domCache = {\n popup: getPopup(),\n container: getContainer(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n};\n\n/**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {Function} dismissWith\n */\nconst setupTimer = (globalState, innerParams, dismissWith) => {\n const timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n if (innerParams.timer) {\n globalState.timeout = new Timer(() => {\n dismissWith('timer');\n delete globalState.timeout;\n }, innerParams.timer);\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n setTimeout(() => {\n if (globalState.timeout && globalState.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n};\n\n/**\n * Initialize focus in the popup:\n *\n * 1. If `toast` is `true`, don't steal focus from the document.\n * 2. Else if there is an [autofocus] element, focus it.\n * 3. Else if `focusConfirm` is `true` and confirm button is visible, focus it.\n * 4. Else if `focusDeny` is `true` and deny button is visible, focus it.\n * 5. Else if `focusCancel` is `true` and cancel button is visible, focus it.\n * 6. Else focus the first focusable element in a popup (if any).\n *\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n */\nconst initFocus = (domCache, innerParams) => {\n if (innerParams.toast) {\n return;\n }\n // TODO: this is dumb, remove `allowEnterKey` param in the next major version\n if (!callIfFunction(innerParams.allowEnterKey)) {\n warnAboutDeprecation('allowEnterKey');\n blurActiveElement();\n return;\n }\n if (focusAutofocus(domCache)) {\n return;\n }\n if (focusButton(domCache, innerParams)) {\n return;\n }\n setFocus(-1, 1);\n};\n\n/**\n * @param {DomCache} domCache\n * @returns {boolean}\n */\nconst focusAutofocus = domCache => {\n const autofocusElements = Array.from(domCache.popup.querySelectorAll('[autofocus]'));\n for (const autofocusElement of autofocusElements) {\n if (autofocusElement instanceof HTMLElement && isVisible$1(autofocusElement)) {\n autofocusElement.focus();\n return true;\n }\n }\n return false;\n};\n\n/**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\nconst focusButton = (domCache, innerParams) => {\n if (innerParams.focusDeny && isVisible$1(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n if (innerParams.focusCancel && isVisible$1(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n if (innerParams.focusConfirm && isVisible$1(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n return false;\n};\nconst blurActiveElement = () => {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n};\n\n// Dear russian users visiting russian sites. Let's have fun.\nif (typeof window !== 'undefined' && /^ru\\b/.test(navigator.language) && location.host.match(/\\.(ru|su|by|xn--p1ai)$/)) {\n const now = new Date();\n const initiationDate = localStorage.getItem('swal-initiation');\n if (!initiationDate) {\n localStorage.setItem('swal-initiation', `${now}`);\n } else if ((now.getTime() - Date.parse(initiationDate)) / (1000 * 60 * 60 * 24) > 3) {\n setTimeout(() => {\n document.body.style.pointerEvents = 'none';\n const ukrainianAnthem = document.createElement('audio');\n ukrainianAnthem.src = 'https://flag-gimn.ru/wp-content/uploads/2021/09/Ukraina.mp3';\n ukrainianAnthem.loop = true;\n document.body.appendChild(ukrainianAnthem);\n setTimeout(() => {\n ukrainianAnthem.play().catch(() => {\n // ignore\n });\n }, 2500);\n }, 500);\n }\n}\n\n// Assign instance methods from src/instanceMethods/*.js to prototype\nSweetAlert.prototype.disableButtons = disableButtons;\nSweetAlert.prototype.enableButtons = enableButtons;\nSweetAlert.prototype.getInput = getInput;\nSweetAlert.prototype.disableInput = disableInput;\nSweetAlert.prototype.enableInput = enableInput;\nSweetAlert.prototype.hideLoading = hideLoading;\nSweetAlert.prototype.disableLoading = hideLoading;\nSweetAlert.prototype.showValidationMessage = showValidationMessage;\nSweetAlert.prototype.resetValidationMessage = resetValidationMessage;\nSweetAlert.prototype.close = close;\nSweetAlert.prototype.closePopup = close;\nSweetAlert.prototype.closeModal = close;\nSweetAlert.prototype.closeToast = close;\nSweetAlert.prototype.rejectPromise = rejectPromise;\nSweetAlert.prototype.update = update;\nSweetAlert.prototype._destroy = _destroy;\n\n// Assign static methods from src/staticMethods/*.js to constructor\nObject.assign(SweetAlert, staticMethods);\n\n// Proxy to instance methods to constructor, for now, for backwards compatibility\nObject.keys(instanceMethods).forEach(key => {\n /**\n * @param {...any} args\n * @returns {any | undefined}\n */\n SweetAlert[key] = function () {\n if (currentInstance && currentInstance[key]) {\n return currentInstance[key](...arguments);\n }\n return null;\n };\n});\nSweetAlert.DismissReason = DismissReason;\nSweetAlert.version = '11.17.2';\n\nconst Swal = SweetAlert;\n// @ts-ignore\nSwal.default = Swal;\n\nexport { Swal as default };\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\":root{--swal2-container-padding: 0.625em;--swal2-backdrop: rgba(0, 0, 0, 0.4);--swal2-width: 32em;--swal2-padding: 0 0 1.25em;--swal2-border: none;--swal2-border-radius: 0.3125rem;--swal2-background: white;--swal2-color: #545454;--swal2-footer-border-color: #eee;--swal2-show-animation: swal2-show 0.3s;--swal2-hide-animation: swal2-hide 0.15s forwards;--swal2-input-background: transparent;--swal2-progress-step-background: #add8e6;--swal2-validation-message-background: #f0f0f0;--swal2-validation-message-color: #666;--swal2-close-button-position: initial;--swal2-close-button-inset: auto;--swal2-close-button-font-size: 2.5em;--swal2-close-button-color: #ccc}[data-swal2-theme=dark]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white)}@media(prefers-color-scheme: dark){[data-swal2-theme=auto]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white)}}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px var(--swal2-backdrop)}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}@media print{body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown) .swal2-container{position:static !important}}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:var(--swal2-container-padding);overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:var(--swal2-backdrop)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:var(--swal2-width);max-width:100%;padding:var(--swal2-padding);border:var(--swal2-border);border-radius:var(--swal2-border-radius);background:var(--swal2-background);color:var(--swal2-color);font-family:inherit;font-size:1rem}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable{cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable div:where(.swal2-icon){cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging{cursor:grabbing}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging div:where(.swal2-icon){cursor:grabbing}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word;cursor:initial}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.1))}div:where(.swal2-container) div:where(.swal2-actions):not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2))}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):focus-visible{box-shadow:0 0 0 3px rgba(112,102,224,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):focus-visible{box-shadow:0 0 0 3px rgba(220,55,65,.5)}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):focus-visible{box-shadow:0 0 0 3px rgba(110,120,129,.5)}div:where(.swal2-container) button:where(.swal2-styled).swal2-default-outline:focus-visible{box-shadow:0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid var(--swal2-footer-border-color);color:inherit;font-size:1em;text-align:center;cursor:initial}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:var(--swal2-border-radius);border-bottom-left-radius:var(--swal2-border-radius)}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:rgba(0,0,0,.2)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em;cursor:initial}div:where(.swal2-container) button:where(.swal2-close){position:var(--swal2-close-button-position);inset:var(--swal2-close-button-inset);z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:var(--swal2-border-radius);background:rgba(0,0,0,0);color:var(--swal2-close-button-color);font-family:monospace;font-size:var(--swal2-close-button-font-size);cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:none;background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-html-container){z-index:1;justify-content:center;margin:0;padding:1em 1.6em .3em;overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word;cursor:initial}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:var(--swal2-input-background);box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(0,0,0,0);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:1px solid #b4dbed;outline:none;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:var(--swal2-background)}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:var(--swal2-input-background);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:var(--swal2-input-background);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:var(--swal2-background);color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:var(--swal2-validation-message-background);color:var(--swal2-validation-message-color);font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:var(--swal2-progress-step-background);color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:var(--swal2-progress-step-background)}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}div:where(.swal2-icon).swal2-warning{border-color:#f8bb86;color:#f8bb86}div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}div:where(.swal2-icon).swal2-info{border-color:#3fc3ee;color:#3fc3ee}div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}div:where(.swal2-icon).swal2-question{border-color:#87adbd;color:#87adbd}div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:var(--swal2-show-animation)}.swal2-hide{animation:var(--swal2-hide-animation)}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;background:var(--swal2-background);box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-toast>*{grid-column:2}.swal2-toast h2:where(.swal2-title){margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-toast .swal2-loading{justify-content:center}.swal2-toast input:where(.swal2-input){height:2em;margin:.5em;font-size:1em}.swal2-toast .swal2-validation-message{font-size:1em}.swal2-toast div:where(.swal2-footer){margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-toast button:where(.swal2-close){grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-toast div:where(.swal2-html-container){margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-toast div:where(.swal2-html-container):empty{padding:0}.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-toast div:where(.swal2-actions){justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-toast button:where(.swal2-styled){margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}.swal2-toast.swal2-show{animation:swal2-toast-show .5s}.swal2-toast.swal2-hide{animation:swal2-toast-hide .1s forwards}@keyframes swal2-show{0%{transform:scale(0.7)}45%{transform:scale(1.05)}80%{transform:scale(0.95)}100%{transform:scale(1)}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(0.5);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}50%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}\");","import Swal from 'sweetalert2';\n\nexport default {\n loading: (options) => {\n Swal.close();\n Swal.fire({\n icon: 'info',\n title: options.title,\n showConfirmButton: false,\n allowOutsideClick: false,\n allowEscapeKey: false,\n });\n Swal.showLoading();\n },\n success: (options) => {\n Swal.close();\n Swal.fire({\n icon: 'success',\n title: options.title,\n showConfirmButton: false,\n });\n setTimeout(() => {\n Swal.close();\n }, 1500);\n },\n error: (options) => {\n Swal.close();\n Swal.fire({\n icon: 'error',\n title: options.title,\n text: options.text,\n confirmButtonText: 'Got it!',\n });\n },\n};\n"],"names":["flushPending","flushing","queue","lastFlushedIndex","scheduler","callback","queueJob","job","queueFlush","dequeueJob","index","flushJobs","i","reactive","effect","release","raw","shouldSchedule","disableEffectScheduling","setReactivityEngine","engine","task","overrideEffect","override","elementBoundEffect","el","cleanup2","effectReference","watch","getter","firstTime","oldValue","value","onAttributeAddeds","onElRemoveds","onElAddeds","onElAdded","onElRemoved","onAttributesAdded","onAttributeRemoved","name","cleanupAttributes","names","cleanupElement","_a","_b","observer","onMutate","currentlyObserving","startObservingMutations","stopObservingMutations","flushObserver","queuedMutations","records","queueLengthWhenTriggered","mutateDom","result","isCollecting","deferredMutations","deferMutations","flushAndStopDeferringMutations","mutations","addedNodes","removedNodes","addedAttributes","removedAttributes","node","add2","remove","attrs","scope","mergeProxies","closestDataStack","addScopeToNode","data2","referenceNode","objects","mergeProxyTrap","obj","thisProxy","collapseProxies","target","descriptor","acc","key","initInterceptors","isObject2","val","recurse","basePath","enumerable","path","interceptor","mutateObj","get","set","initialValue","initialize","innerValue","carry","segment","magics","magic","injectMagics","memoizedUtilities","getUtilities","utilities","getElementBoundUtilities","utils","tryCatch","expression","args","e","handleError","error2","shouldAutoEvaluateFunctions","dontAutoEvaluateFunctions","cache","evaluate","extras","evaluateLater","theEvaluatorFunction","normalEvaluator","setEvaluator","newEvaluator","overriddenMagics","dataStack","evaluator","generateEvaluatorFromFunction","generateEvaluatorFromString","func","receiver","scope2","params","runIfTypeOfFunction","evaluatorMemo","generateFunctionFromString","AsyncFunction","rightSideSafeExpression","func2","completeScope","promise","prefixAsString","prefix","subject","setPrefix","newPrefix","directiveHandlers","directive","directive2","pos","directiveOrder","directiveExists","directives","attributes","originalAttributeOverride","vAttributes","staticAttributes","attributesOnly","attribute","attr","transformedAttributeMap","toTransformedAttributes","newName","oldName","outNonAlpineAttributes","toParsedDirectives","byPriority","getDirectiveHandler","isDeferringHandlers","directiveHandlerStacks","currentHandlerStackKey","deferHandlingDirectives","flushHandlers","stopDeferring","cleanups","effect3","cleanupEffect","alpine_default","noop","handler4","fullHandler","startingWith","replacement","into","newValue","attributeTransformers","transform","mapAttributes","alpineAttributeRegex","typeMatch","valueMatch","modifiers","original","DEFAULT","a","b","typeA","typeB","dispatch","detail","walk","el2","skip","warn","message","started","start","initTree","destroyTree","handle","outNestedComponents","closestRoot","allSelectors","warnAboutMissingPlugins","rootSelectorCallbacks","initSelectorCallbacks","rootSelectors","fn","addRootSelector","selectorCallback","addInitSelector","includeInitSelectors","findClosest","element","selector","isRoot","initInterceptors2","interceptInit","markerDispenser","walker","intercept","root","plugin2","selectors","tickStack","isHolding","nextTick","releaseNextTicks","res","holdNextTicks","setClasses","setClassesFromString","setClassesFromObject","classString","missingClasses","classString2","addClassesAndReturnUndo","classes","classObject","split","forAdd","bool","forRemove","added","removed","setStyles","setStylesFromObject","setStylesFromString","previousStyles","value2","kebabCase","once","fallback","called","evaluate2","registerTransitionsFromHelper","registerTransitionsFromClassString","stage","registerTransitionObject","doesntSpecify","transitioningIn","transitioningOut","wantsAll","wantsOpacity","wantsScale","opacityValue","scaleValue","modifierValue","delay","origin","property","durationIn","durationOut","easing","setFunction","defaultValue","before","after","transition","show","hide","nextTick2","clickAwayCompatibleShow","resolve","reject","closest","closestHide","hideAfterChildren","parent","during","start2","end","undoStart","undoDuring","undoEnd","performTransition","stages","interrupted","reachedBefore","reachedEnd","finish","duration","rawValue","match","isCloning","skipDuringClone","onlyDuringClone","interceptors","interceptClone","cloneNode","from","to","dontRegisterReactiveSideEffects","isCloningLegacy","clone","oldEl","newEl","cloneTree","hasRunThroughFirstEl","el3","callback2","storedEffect","bind","camelCase","bindInputValue","bindStyles","bindClasses","bindAttributeAndProperty","bindAttribute","isRadio","safeParseBoolean","checkedAttrLooseCompare","isCheckbox","updateSelect","setPropertyIfChanged","attributeShouldntBePreservedIfFalsy","isBooleanAttr","setIfChanged","attrName","propName","arrayWrappedValue","option","char","valueA","valueB","booleanAttributes","getBinding","getAttributeBinding","extractProp","extract","binding","debounce","wait","timeout","context","later","throttle","limit","inThrottle","entangle","outerGet","outerSet","innerGet","innerSet","firstRun","outerHash","reference","outer","inner","cloneIfObject","outerHashLatest","innerHashLatest","plugin","stores","isReactive","store","getStores","binds","bind2","bindings","getBindings","applyBindingsObject","injectBindingProviders","cleanupRunners","datas","data","injectDataProviders","Alpine","makeMap","str","expectsLowerCase","map","list","EMPTY_OBJ","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isString","isSymbol","isObject","objectToString","toRawType","isIntegerKey","cacheStringFunction","capitalize","hasChanged","targetMap","effectStack","activeEffect","ITERATE_KEY","MAP_KEY_ITERATE_KEY","isEffect","effect2","options","createReactiveEffect","stop","cleanup","uid","enableTracking","resetTracking","deps","shouldTrack","trackStack","pauseTracking","last","track","type","depsMap","dep","trigger","oldTarget","effects","effectsToAdd","key2","run","isNonTrackableKeys","builtInSymbols","get2","createGetter","readonlyGet","arrayInstrumentations","createArrayInstrumentations","instrumentations","arr","toRaw","isReadonly","shallow","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","isRef","readonly","reactive2","set2","createSetter","hadKey","deleteProperty","has","ownKeys","mutableHandlers","readonlyHandlers","toReactive","toReadonly","toShallow","getProto","v","get$1","isShallow","rawTarget","rawKey","has2","wrap","has$1","size","add","set$1","get3","checkIdentityKeys","deleteEntry","clear","hadItems","createForEach","thisArg","observed","createIterableMethod","method","targetIsMap","isPair","isKeyOnly","innerIterator","done","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","mutableCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","r","evaluateLater2","unwatch","getArrayOfRefObject","refObjects","globalIdMemo","findAndIncrementId","closestIdRoot","setIdRoot","cacheKey","cacheIdByNameOnElement","id","output","warnMissingPluginMagic","magicName","slug","evaluateInnerSet","releaseEntanglement","getTarget","clone2","eventName","placeInDom","clone3","target2","modifiers2","teleportContainerDuringClone","handler","on","event","listenerTarget","wrapHandler","wrapper","dotSyntax","camelCase2","nextModifier","isNumeric","next","isKeyEvent","isClickEvent","isListeningForASpecificKeyThatHasntBeenPressed","kebabCase2","keyModifiers","debounceIndex","keyToModifiers","selectedSystemKeyModifiers","modifier","modifierToKeyMap","scopeTarget","evaluateGet","evaluateSet","getValue","isGetterSetter","setValue","removeListener","getInputValue","removeResetListener","currentValue","safeParseNumber","checkedAttrLooseCompare2","number","isNumeric2","handler2","bindingProviders","storeKeyForXFor","shouldSkipRegisteringDataDuringClone","magicContext","dataProviderContext","reactiveData","undo","toggle","iteratorNames","parseForExpression","evaluateItems","evaluateKey","loop","templateEl","items","isNumeric3","lookup","prevKeys","scopes","keys","getIterationScopeVariables","adds","moves","removes","sames","lastKey","prevIndex","keyInSpot","keyForSpot","elInSpot","elForSpot","marker","lastKey2","lastEl","reactiveScope","newScope","forIteratorRE","stripParensRE","forAliasRE","inMatch","item","iteratorMatch","scopeVariables","handler3","warnMissingPluginDirective","directiveName","src_default","module_default","translate","app","label","lang","EN_translations","NL_translations","FR_translations","DE_translations","IT_translations","commonjsRequire","utils$1","s","pick","props","pick_pica_resize_options","pica$1","module","exports","f","n","t","o","c","u","_dereq_","Multimath","mm_unsharp_mask","mm_resize","MathLib","requested_features","__requested_features","features","clampTo8","clampNegative","convolveHor","src","dest","srcW","srcH","destW","filters","g","filterPtr","filterShift","filterSize","srcPtr","srcY","destX","filterVal","srcOffset","destOffset","convolveVert","convolveHorWithPre","alpha","convolveVertWithPre","createFilters","_require","hasAlpha","width","height","ptr","len","resetAlpha","dst","destH","scaleX","scaleY","offsetX","offsetY","filter","filtersX","filtersY","tmp","FILTER_INFO","FIXED_FRAC_BITS","toFixedPoint","num","srcSize","destSize","scale","offset","filterFunction","scaleInverted","scaleClamped","srcWindow","destPixel","srcPixel","srcFirst","srcLast","filterElementSize","floatFilter","fxpFilter","total","pxl","idx","floatVal","filterTotal","leftNotEmpty","rightNotEmpty","maxFilterElementSize","packedFilter","packedFilterPtr","slowCopy","x","xpi","asUint8Array","IS_LE","copyInt16asLE","target_offset","src_offset","src_size","tmp_offset","tmp_size","filtersX_offset","filtersY_offset","alloc_bytes","instance","mem","mem32","src32","dest32","glur_mono16","hsv_v16","img","out","max","amount","radius","threshold","v1","v2","vmul","diff","iTimes4","brightness","blured","amountFp","thresholdFp","pixels","img_bytes_cnt","hsv_bytes_cnt","blur_bytes_cnt","blur_line_byte_cnt","blur_coeffs_byte_cnt","img_offset","hsv_offset","blur_offset","blur_tmp_offset","blur_line_offset","blur_coeffs_offset","img32","GC_INTERVAL","Pool","create","idle","_this","resource","_this2","_this3","now","MIN_INNER_TILE_SIZE","fromWidth","fromHeight","toWidth","toHeight","srcTileSize","destTileBorder","minScale","stageCount","PIXEL_EPSILON","pixelFloor","nearest","pixelCeil","innerTileWidth","innerTileHeight","y","innerX","innerY","toTileWidth","toTileHeight","tiles","tile","objClass","cname","concurrency","active","roll","err","createCanvas","bitmap","status","workerPayload","self","canvas","ctx","code","w","ev","usable","d","image","mathLib","tileOpts","a0","a1","a2","a3","b1","b2","left_corner","right_corner","gaussCoef","sigma","g1","g2","k","convolveMono16","line","coeff","prev_src","curr_src","curr_out","prev_out","prev_prev_out","src_index","out_index","line_index","j","coeff_a0","coeff_a1","coeff_b1","coeff_b2","blurMono16","tmp_line","assign","base64decode","hasWebAssembly","DEFAULT_OPTIONS","MultiMath","opts","m","bytes","mem_size","memsize","env_extra","env_base","base","reminder","BASE64_MAP","input","bits","tailbits","wa","bin","getOwnPropertySymbols","propIsEnumerable","toObject","shouldUseNative","test1","test2","order2","test3","letter","source","symbols","bundleFn","sources","stringify","wkey","cacheKeys","l","exp","wcache","skey","scache","workerSources","resolveSources","depPath","depKey","URL","blob","workerUrl","worker","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","arr2","_i","_arr","_n","_d","_s","_e","webworkify","createStages","createRegions","filter_info","singletones","NEED_SAFARI_FIX","DEFAULT_PICA_OPTS","tmpCanvas","DEFAULT_RESIZE_OPTS","CAN_NEW_IMAGE_DATA","CAN_CREATE_IMAGE_BITMAP","CAN_USE_CANVAS_GET_IMAGE_DATA","CAN_USE_OFFSCREEN_CANVAS","CAN_USE_CIB_REGION_FOR_IMAGE","workerFabric","url","Pica","limiter_key","wkr","wpool_key","initMath","mathlib","checkCibResize","checkOffscreenCanvas","checkCibRegion","transfer","stageEnv","extractTo","tmpCtx","toImageData","processTile","imageBitmap","regions","jobs","_this4","_stages$shift","_stages$shift2","isLastStage","_this5","toCtx","iData","_this6","DEST_TILE_BORDER","_this7","mimeType","quality","asString","asBuffer","jpeg_plugins","image_traverse$1","error","to_hex","utf8_encode","utf8_decode","is_uint8array","ExifParser","jpeg_bin","exif_start","exif_end","sig","on_entry","ifds","entry","length","ifd_no","ifd_start","ifd_end","entry_offset","next_ifd","ifd","tag","format","entry_count","count","comp_length","data_length","data_offset","is_subifd_link","comp_offset","on_segment","inside_scan","segment_code","segment_length","byte1","byte2","ranges","out_length","new_segment","new_range","range","on_exif_entry","stop_search","new_exif","header","comment","comment_inserted","segment_count","csegment","image_traverse","jpeg_patch_exif","env","exif_is_big_endian","orientation_offset","orientation_patch","jpeg_rotate_canvas","orientation","jpeg_attach_orig_segments","data_out","segments","reducer","pica","ImageBlobReduce","_env","method_name","old_fn","scale_factor","pica_opts","buf","fr","imageBlobReduce","_assertClassBrand","_checkPrivateRedeclaration","_classPrivateFieldGet2","_classPrivateFieldInitSpec","_classPrivateFieldSet2","RESTORE_FOCUS_TIMEOUT","globalState","focusPreviousActiveElement","restoreActiveElement","returnFocus","swalPrefix","classNames","swalClasses","className","icons","iconTypes","icon","consolePrefix","capitalizeFirstLetter","previousWarnOnceMessages","warnOnce","warnAboutDeprecation","deprecatedParam","useInstead","callIfFunction","arg","hasToPromiseFn","asPromise","isPromise","getContainer","elementBySelector","selectorString","container","elementByClass","getPopup","getIcon","getIconContent","getTitle","getHtmlContainer","getImage","getProgressSteps","getValidationMessage","getConfirmButton","getCancelButton","getDenyButton","getInputLabel","getLoader","getActions","getFooter","getTimerProgressBar","getCloseButton","focusable","getFocusableElements","popup","focusableElementsWithTabindex","focusableElementsWithTabindexSorted","tabindexA","tabindexB","otherFocusableElements","otherFocusableElementsFiltered","isVisible$1","isModal","hasClass","isToast","isLoading","setInnerHtml","elem","html","parsed","head","child","body","classList","removeCustomClasses","applyCustomClass","customClass","addClass","getInput$1","inputClass","focusInput","toggleClass","condition","removeClass","getDirectChildByClass","children","applyNumericalStyle","display","showWhenInnerHtmlPresent","setStyle","allButtonsAreHidden","isScrollable","hasCssAnimation","style","animDuration","transDuration","animateTimerProgressBar","timer","reset","timerProgressBar","stopTimerProgressBar","timerProgressBarWidth","timerProgressBarFullWidth","timerProgressBarPercent","isNodeEnv","sweetHTML","resetOldContainer","oldContainer","resetValidationMessage$1","addInputChangeListeners","file","rangeOutput","select","checkbox","textarea","setupAccessibility","setupRTL","targetElement","init","oldContainerExisted","parseHtmlToContainer","param","handleObject","handleJqueryElem","renderActions","actions","loader","renderButtons","confirmButton","denyButton","cancelButton","renderButton","handleButtonsStyling","button","buttonType","buttonName","renderCloseButton","closeButton","renderContainer","handleBackdropParam","handlePositionParam","handleGrowParam","backdrop","position","grow","privateProps","inputClasses","renderInput","innerParams","rerender","inputContainer","setAttributes","showInput","setCustomClass","renderInputType","getInputContainer","removeAttributes","inputAttributes","setInputPlaceholder","setInputLabel","prependTo","labelClass","inputType","checkAndSetInputValue","inputValue","rangeInput","placeholder","radio","checkboxContainer","getMargin","initialPopupWidth","textareaResizeHandler","textareaWidth","renderContent","htmlContainer","renderFooter","footer","renderIcon","setContent","applyStyles","adjustSuccessIconBackgroundColor","iconType","iconClassName","setColor","popupBackgroundColor","successIconParts","successIconHtml","errorIconHtml","oldContent","newContent","iconContent","sel","content","renderImage","dragging","mousedownX","mousedownY","initialX","initialY","addDraggableListeners","down","move","up","removeDraggableListeners","clientXY","getClientXY","clientX","clientY","renderPopup","addClasses$1","showClass","renderProgressSteps","progressStepsContainer","progressSteps","currentProgressStep","step","stepEl","createStepElement","lineEl","createLineElement","renderTitle","title","render","isVisible","clickConfirm","_dom$getConfirmButton","clickDeny","_dom$getDenyButton","clickCancel","_dom$getCancelButton","DismissReason","removeKeydownHandler","addKeydownHandler","dismissWith","keydownHandler","setFocus","increment","_dom$getPopup","focusableElements","arrowKeysNextButton","arrowKeysPreviousButton","handleEnter","handleTab","handleArrows","handleEsc","btnIndex","buttons","sibling","buttonToFocus","privateMethods","setAriaHidden","unsetAriaHidden","isSafariOrIOS","iOSfix","lockBodyScroll","preventTouchMove","shouldPreventTouchMove","isStylus","isZoom","undoIOSfix","measureScrollbar","scrollDiv","scrollbarWidth","previousBodyPadding","replaceScrollbarWithPadding","initialBodyOverflow","undoReplaceScrollbarWithPadding","removePopupAndResetState","didClose","triggerDidCloseAndDispose","removeBodyClasses","close","resolveValue","prepareResolveValue","swalPromiseResolve","triggerClosePopup","handleAwaitingPromise","handlePopupAnimation","rejectPromise","_globalState$eventEmi","animationIsSupported","animatePopup","swalCloseAnimationFinished","_globalState$swalClos","_globalState$eventEmi2","showLoading","buttonToReplace","Swal","replaceButton","handleInputOptionsAndValue","handleInputOptions","handleInputValue","getCheckboxValue","getRadioValue","getFileValue","processInputOptions","inputOptions","populateSelectOptions","formatInputOptions","populateRadioOptions","renderOption","optionLabel","optionValue","isSelected","inputOption","optgroup","radioValue","radioLabel","radioInput","radioLabelElement","radios","valueFormatted","handleConfirmButtonClick","handleConfirmOrDenyWithInput","confirm","handleDenyButtonClick","deny","handleCancelButtonClick","handleInputValidator","validationMessage","preDenyValue","rejectWith","succeedWith","preConfirmValue","hideLoading","domCache","showRelatedButton","getInput","setButtonsDisabled","disabled","setInputDisabled","enableButtons","disableButtons","enableInput","disableInput","showValidationMessage","resetValidationMessage","defaultParams","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","isDeprecated","showWarningsForParams","update","validUpdatableParams","filterValidParams","updatedParams","_destroy","disposeWeakMaps","disposeSwal","unsetWeakMaps","instanceMethods","handlePopupClick","handleToastClick","handleModalMousedown","handleContainerMousedown","handleModalClick","isAnyButtonShown","ignoreOutsideClick","isJqueryElement","isElement","argsToParams","fire","_len","_key","mixin","mixinParams","MixinSwal","priorityMixinParams","getTimerLeft","stopTimer","resumeTimer","remaining","toggleTimer","increaseTimer","ms","isTimerRunning","bodyClickListenerAdded","clickHandlers","bindClickHandler","bodyClickListener","template","EventEmitter","eventHandler","currentHandlers","onceFn","_len2","_key2","off","staticMethods","Timer","running","swalStringParams","getTemplateParams","templateContent","showWarningsForElements","getSwalParams","getSwalFunctionParams","getSwalButtons","getSwalImage","getSwalIcon","getSwalInput","getSwalStringParams","showWarningsForAttributes","optionName","paramNames","allowedElements","tagName","allowedAttributes","SHOW_CLASS_TIMEOUT","openPopup","addClasses","setScrollingVisibility","fixScrollContainer","swalOpenAnimationFinished","scrollbarPadding","defaultInputValidators","string","setDefaultInputValidators","validateCustomTargetElement","setParameters","currentInstance","_promise","SweetAlert","outerParams","userParams","isAwaitingPromise","prepareParams","populateDomCache","swalPromise","onFulfilled","onFinally","dismiss","setupTimer","initFocus","templateParams","blurActiveElement","focusAutofocus","focusButton","autofocusElements","autofocusElement","initiationDate","ukrainianAnthem","fireSwal"],"mappings":"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","x_google_ignoreList":[0,2,3]}