diff --git a/app/dist/favicon/android-chrome-192x192.png b/app/dist/favicon/android-chrome-192x192.png
deleted file mode 100644
index e43ddf9..0000000
Binary files a/app/dist/favicon/android-chrome-192x192.png and /dev/null differ
diff --git a/app/dist/favicon/android-chrome-512x512.png b/app/dist/favicon/android-chrome-512x512.png
deleted file mode 100644
index e432eb7..0000000
Binary files a/app/dist/favicon/android-chrome-512x512.png and /dev/null differ
diff --git a/app/dist/favicon/apple-touch-icon.png b/app/dist/favicon/apple-touch-icon.png
deleted file mode 100644
index fd4325f..0000000
Binary files a/app/dist/favicon/apple-touch-icon.png and /dev/null differ
diff --git a/app/dist/favicon/favicon-16x16.png b/app/dist/favicon/favicon-16x16.png
deleted file mode 100644
index 62f187c..0000000
Binary files a/app/dist/favicon/favicon-16x16.png and /dev/null differ
diff --git a/app/dist/favicon/favicon-32x32.png b/app/dist/favicon/favicon-32x32.png
deleted file mode 100644
index 492d205..0000000
Binary files a/app/dist/favicon/favicon-32x32.png and /dev/null differ
diff --git a/app/dist/favicon/favicon.ico b/app/dist/favicon/favicon.ico
deleted file mode 100644
index d54b06a..0000000
Binary files a/app/dist/favicon/favicon.ico and /dev/null differ
diff --git a/app/dist/favicon/site.webmanifest b/app/dist/favicon/site.webmanifest
deleted file mode 100644
index 45dc8a2..0000000
--- a/app/dist/favicon/site.webmanifest
+++ /dev/null
@@ -1 +0,0 @@
-{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
\ No newline at end of file
diff --git a/app/dist/fonts/materialdesignicons-webfont.21f691f0.ttf b/app/dist/fonts/materialdesignicons-webfont.21f691f0.ttf
deleted file mode 100644
index 5545629..0000000
Binary files a/app/dist/fonts/materialdesignicons-webfont.21f691f0.ttf and /dev/null differ
diff --git a/app/dist/fonts/materialdesignicons-webfont.54b0f60d.woff2 b/app/dist/fonts/materialdesignicons-webfont.54b0f60d.woff2
deleted file mode 100644
index 384ae57..0000000
Binary files a/app/dist/fonts/materialdesignicons-webfont.54b0f60d.woff2 and /dev/null differ
diff --git a/app/dist/fonts/materialdesignicons-webfont.5d875350.eot b/app/dist/fonts/materialdesignicons-webfont.5d875350.eot
deleted file mode 100644
index 253bb4a..0000000
Binary files a/app/dist/fonts/materialdesignicons-webfont.5d875350.eot and /dev/null differ
diff --git a/app/dist/fonts/materialdesignicons-webfont.d671cbf6.woff b/app/dist/fonts/materialdesignicons-webfont.d671cbf6.woff
deleted file mode 100644
index a5ee623..0000000
Binary files a/app/dist/fonts/materialdesignicons-webfont.d671cbf6.woff and /dev/null differ
diff --git a/app/dist/img/bin.8778f5be.svg b/app/dist/img/bin.8778f5be.svg
deleted file mode 100644
index 522933f..0000000
--- a/app/dist/img/bin.8778f5be.svg
+++ /dev/null
@@ -1,7 +0,0 @@
-
diff --git a/app/dist/img/checkmark-double.8bc9494b.svg b/app/dist/img/checkmark-double.8bc9494b.svg
deleted file mode 100644
index f079edd..0000000
--- a/app/dist/img/checkmark-double.8bc9494b.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/app/dist/img/checkmark.76754510.svg b/app/dist/img/checkmark.76754510.svg
deleted file mode 100644
index 649562b..0000000
--- a/app/dist/img/checkmark.76754510.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/app/dist/img/eye.6d5fa7d3.svg b/app/dist/img/eye.6d5fa7d3.svg
deleted file mode 100644
index e823055..0000000
--- a/app/dist/img/eye.6d5fa7d3.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/app/dist/img/home.a9495a95.svg b/app/dist/img/home.a9495a95.svg
deleted file mode 100644
index 358adbf..0000000
--- a/app/dist/img/home.a9495a95.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/app/dist/img/icon-next.25e7a4f4.svg b/app/dist/img/icon-next.25e7a4f4.svg
deleted file mode 100644
index 66afe4f..0000000
--- a/app/dist/img/icon-next.25e7a4f4.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/app/dist/img/icon-prev.22ba0fa6.svg b/app/dist/img/icon-prev.22ba0fa6.svg
deleted file mode 100644
index 7801546..0000000
--- a/app/dist/img/icon-prev.22ba0fa6.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/app/dist/img/jandl-logo.d5c18b80.svg b/app/dist/img/jandl-logo.d5c18b80.svg
deleted file mode 100644
index ef59828..0000000
--- a/app/dist/img/jandl-logo.d5c18b80.svg
+++ /dev/null
@@ -1,15 +0,0 @@
-
diff --git a/app/dist/img/office-365.84b4e31a.svg b/app/dist/img/office-365.84b4e31a.svg
deleted file mode 100644
index 724a2d9..0000000
--- a/app/dist/img/office-365.84b4e31a.svg
+++ /dev/null
@@ -1,5 +0,0 @@
-
diff --git a/app/dist/img/pencil.b9009162.svg b/app/dist/img/pencil.b9009162.svg
deleted file mode 100644
index 2fcf5a4..0000000
--- a/app/dist/img/pencil.b9009162.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/app/dist/img/search.bd80c5fb.svg b/app/dist/img/search.bd80c5fb.svg
deleted file mode 100644
index 3969073..0000000
--- a/app/dist/img/search.bd80c5fb.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
diff --git a/app/dist/img/spinner.34fd3cb2.gif b/app/dist/img/spinner.34fd3cb2.gif
deleted file mode 100644
index e9cf332..0000000
Binary files a/app/dist/img/spinner.34fd3cb2.gif and /dev/null differ
diff --git a/app/dist/index.html b/app/dist/index.html
deleted file mode 100644
index c38f73d..0000000
--- a/app/dist/index.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
- ToDo by JANDL
-
-
-
-
-
-
-
diff --git a/app/dist/js/chunk-vendors.js b/app/dist/js/chunk-vendors.js
deleted file mode 100644
index 7b368d6..0000000
--- a/app/dist/js/chunk-vendors.js
+++ /dev/null
@@ -1,11284 +0,0 @@
-/*
- * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-(self["webpackChunkjandl"] = self["webpackChunkjandl"] || []).push([["chunk-vendors"],{
-
-/***/ "./node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js":
-/*!*******************************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js ***!
- \*******************************************************************************/
-/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _classPrivateFieldBase; }\n/* harmony export */ });\nfunction _classPrivateFieldBase(e, t) {\n if (!{}.hasOwnProperty.call(e, t)) throw new TypeError(\"attempted to use private field on non-instance\");\n return e;\n}\n\n\n//# sourceURL=webpack://jandl/./node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseBase.js?\n}");
-
-/***/ }),
-
-/***/ "./node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js":
-/*!******************************************************************************!*\
- !*** ./node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js ***!
- \******************************************************************************/
-/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ _classPrivateFieldKey; }\n/* harmony export */ });\nvar id = 0;\nfunction _classPrivateFieldKey(e) {\n return \"__private_\" + id++ + \"_\" + e;\n}\n\n\n//# sourceURL=webpack://jandl/./node_modules/@babel/runtime/helpers/esm/classPrivateFieldLooseKey.js?\n}");
-
-/***/ }),
-
-/***/ "./node_modules/@capacitor/core/dist/index.js":
-/*!****************************************************!*\
- !*** ./node_modules/@capacitor/core/dist/index.js ***!
- \****************************************************/
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Capacitor: function() { return /* binding */ Capacitor; },\n/* harmony export */ CapacitorCookies: function() { return /* binding */ CapacitorCookies; },\n/* harmony export */ CapacitorException: function() { return /* binding */ CapacitorException; },\n/* harmony export */ CapacitorHttp: function() { return /* binding */ CapacitorHttp; },\n/* harmony export */ CapacitorPlatforms: function() { return /* binding */ CapacitorPlatforms; },\n/* harmony export */ ExceptionCode: function() { return /* binding */ ExceptionCode; },\n/* harmony export */ Plugins: function() { return /* binding */ Plugins; },\n/* harmony export */ WebPlugin: function() { return /* binding */ WebPlugin; },\n/* harmony export */ WebView: function() { return /* binding */ WebView; },\n/* harmony export */ addPlatform: function() { return /* binding */ addPlatform; },\n/* harmony export */ registerPlugin: function() { return /* binding */ registerPlugin; },\n/* harmony export */ registerWebPlugin: function() { return /* binding */ registerWebPlugin; },\n/* harmony export */ setPlatform: function() { return /* binding */ setPlatform; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ \"./node_modules/core-js/modules/esnext.iterator.find.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ \"./node_modules/core-js/modules/esnext.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var core_js_modules_esnext_iterator_reduce_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! core-js/modules/esnext.iterator.reduce.js */ \"./node_modules/core-js/modules/esnext.iterator.reduce.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_reduce_js__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_reduce_js__WEBPACK_IMPORTED_MODULE_6__);\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n\n/*! Capacitor: https://capacitorjs.com/ - MIT License */\nconst createCapacitorPlatforms = win => {\n const defaultPlatformMap = new Map();\n defaultPlatformMap.set('web', {\n name: 'web'\n });\n const capPlatforms = win.CapacitorPlatforms || {\n currentPlatform: {\n name: 'web'\n },\n platforms: defaultPlatformMap\n };\n const addPlatform = (name, platform) => {\n capPlatforms.platforms.set(name, platform);\n };\n const setPlatform = name => {\n if (capPlatforms.platforms.has(name)) {\n capPlatforms.currentPlatform = capPlatforms.platforms.get(name);\n }\n };\n capPlatforms.addPlatform = addPlatform;\n capPlatforms.setPlatform = setPlatform;\n return capPlatforms;\n};\nconst initPlatforms = win => win.CapacitorPlatforms = createCapacitorPlatforms(win);\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nconst CapacitorPlatforms = /*#__PURE__*/initPlatforms(typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : {});\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nconst addPlatform = CapacitorPlatforms.addPlatform;\n/**\n * @deprecated Set `CapacitorCustomPlatform` on the window object prior to runtime executing in the web app instead\n */\nconst setPlatform = CapacitorPlatforms.setPlatform;\nconst legacyRegisterWebPlugin = (cap, webPlugin) => {\n var _a;\n const config = webPlugin.config;\n const Plugins = cap.Plugins;\n if (!config || !config.name) {\n // TODO: add link to upgrade guide\n throw new Error(`Capacitor WebPlugin is using the deprecated \"registerWebPlugin()\" function, but without the config. Please use \"registerPlugin()\" instead to register this web plugin.\"`);\n }\n // TODO: add link to upgrade guide\n console.warn(`Capacitor plugin \"${config.name}\" is using the deprecated \"registerWebPlugin()\" function`);\n if (!Plugins[config.name] || ((_a = config === null || config === void 0 ? void 0 : config.platforms) === null || _a === void 0 ? void 0 : _a.includes(cap.getPlatform()))) {\n // Add the web plugin into the plugins registry if there already isn't\n // an existing one. If it doesn't already exist, that means\n // there's no existing native implementation for it.\n // - OR -\n // If we already have a plugin registered (meaning it was defined in the native layer),\n // then we should only overwrite it if the corresponding web plugin activates on\n // a certain platform. For example: Geolocation uses the WebPlugin on Android but not iOS\n Plugins[config.name] = webPlugin;\n }\n};\nvar ExceptionCode;\n(function (ExceptionCode) {\n /**\n * API is not implemented.\n *\n * This usually means the API can't be used because it is not implemented for\n * the current platform.\n */\n ExceptionCode[\"Unimplemented\"] = \"UNIMPLEMENTED\";\n /**\n * API is not available.\n *\n * This means the API can't be used right now because:\n * - it is currently missing a prerequisite, such as network connectivity\n * - it requires a particular platform or browser version\n */\n ExceptionCode[\"Unavailable\"] = \"UNAVAILABLE\";\n})(ExceptionCode || (ExceptionCode = {}));\nclass CapacitorException extends Error {\n constructor(message, code, data) {\n super(message);\n this.message = message;\n this.code = code;\n this.data = data;\n }\n}\nconst getPlatformId = win => {\n var _a, _b;\n if (win === null || win === void 0 ? void 0 : win.androidBridge) {\n return 'android';\n } else if ((_b = (_a = win === null || win === void 0 ? void 0 : win.webkit) === null || _a === void 0 ? void 0 : _a.messageHandlers) === null || _b === void 0 ? void 0 : _b.bridge) {\n return 'ios';\n } else {\n return 'web';\n }\n};\nconst createCapacitor = win => {\n var _a, _b, _c, _d, _e;\n const capCustomPlatform = win.CapacitorCustomPlatform || null;\n const cap = win.Capacitor || {};\n const Plugins = cap.Plugins = cap.Plugins || {};\n /**\n * @deprecated Use `capCustomPlatform` instead, default functions like registerPlugin will function with the new object.\n */\n const capPlatforms = win.CapacitorPlatforms;\n const defaultGetPlatform = () => {\n return capCustomPlatform !== null ? capCustomPlatform.name : getPlatformId(win);\n };\n const getPlatform = ((_a = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _a === void 0 ? void 0 : _a.getPlatform) || defaultGetPlatform;\n const defaultIsNativePlatform = () => getPlatform() !== 'web';\n const isNativePlatform = ((_b = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _b === void 0 ? void 0 : _b.isNativePlatform) || defaultIsNativePlatform;\n const defaultIsPluginAvailable = pluginName => {\n const plugin = registeredPlugins.get(pluginName);\n if (plugin === null || plugin === void 0 ? void 0 : plugin.platforms.has(getPlatform())) {\n // JS implementation available for the current platform.\n return true;\n }\n if (getPluginHeader(pluginName)) {\n // Native implementation available.\n return true;\n }\n return false;\n };\n const isPluginAvailable = ((_c = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _c === void 0 ? void 0 : _c.isPluginAvailable) || defaultIsPluginAvailable;\n const defaultGetPluginHeader = pluginName => {\n var _a;\n return (_a = cap.PluginHeaders) === null || _a === void 0 ? void 0 : _a.find(h => h.name === pluginName);\n };\n const getPluginHeader = ((_d = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _d === void 0 ? void 0 : _d.getPluginHeader) || defaultGetPluginHeader;\n const handleError = err => win.console.error(err);\n const pluginMethodNoop = (_target, prop, pluginName) => {\n return Promise.reject(`${pluginName} does not have an implementation of \"${prop}\".`);\n };\n const registeredPlugins = new Map();\n const defaultRegisterPlugin = (pluginName, jsImplementations = {}) => {\n const registeredPlugin = registeredPlugins.get(pluginName);\n if (registeredPlugin) {\n console.warn(`Capacitor plugin \"${pluginName}\" already registered. Cannot register plugins twice.`);\n return registeredPlugin.proxy;\n }\n const platform = getPlatform();\n const pluginHeader = getPluginHeader(pluginName);\n let jsImplementation;\n const loadPluginImplementation = async () => {\n if (!jsImplementation && platform in jsImplementations) {\n jsImplementation = typeof jsImplementations[platform] === 'function' ? jsImplementation = await jsImplementations[platform]() : jsImplementation = jsImplementations[platform];\n } else if (capCustomPlatform !== null && !jsImplementation && 'web' in jsImplementations) {\n jsImplementation = typeof jsImplementations['web'] === 'function' ? jsImplementation = await jsImplementations['web']() : jsImplementation = jsImplementations['web'];\n }\n return jsImplementation;\n };\n const createPluginMethod = (impl, prop) => {\n var _a, _b;\n if (pluginHeader) {\n const methodHeader = pluginHeader === null || pluginHeader === void 0 ? void 0 : pluginHeader.methods.find(m => prop === m.name);\n if (methodHeader) {\n if (methodHeader.rtype === 'promise') {\n return options => cap.nativePromise(pluginName, prop.toString(), options);\n } else {\n return (options, callback) => cap.nativeCallback(pluginName, prop.toString(), options, callback);\n }\n } else if (impl) {\n return (_a = impl[prop]) === null || _a === void 0 ? void 0 : _a.bind(impl);\n }\n } else if (impl) {\n return (_b = impl[prop]) === null || _b === void 0 ? void 0 : _b.bind(impl);\n } else {\n throw new CapacitorException(`\"${pluginName}\" plugin is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n };\n const createPluginMethodWrapper = prop => {\n let remove;\n const wrapper = (...args) => {\n const p = loadPluginImplementation().then(impl => {\n const fn = createPluginMethod(impl, prop);\n if (fn) {\n const p = fn(...args);\n remove = p === null || p === void 0 ? void 0 : p.remove;\n return p;\n } else {\n throw new CapacitorException(`\"${pluginName}.${prop}()\" is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n }\n });\n if (prop === 'addListener') {\n p.remove = async () => remove();\n }\n return p;\n };\n // Some flair ✨\n wrapper.toString = () => `${prop.toString()}() { [capacitor code] }`;\n Object.defineProperty(wrapper, 'name', {\n value: prop,\n writable: false,\n configurable: false\n });\n return wrapper;\n };\n const addListener = createPluginMethodWrapper('addListener');\n const removeListener = createPluginMethodWrapper('removeListener');\n const addListenerNative = (eventName, callback) => {\n const call = addListener({\n eventName\n }, callback);\n const remove = async () => {\n const callbackId = await call;\n removeListener({\n eventName,\n callbackId\n }, callback);\n };\n const p = new Promise(resolve => call.then(() => resolve({\n remove\n })));\n p.remove = async () => {\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n };\n return p;\n };\n const proxy = new Proxy({}, {\n get(_, prop) {\n switch (prop) {\n // https://github.com/facebook/react/issues/20030\n case '$$typeof':\n return undefined;\n case 'toJSON':\n return () => ({});\n case 'addListener':\n return pluginHeader ? addListenerNative : addListener;\n case 'removeListener':\n return removeListener;\n default:\n return createPluginMethodWrapper(prop);\n }\n }\n });\n Plugins[pluginName] = proxy;\n registeredPlugins.set(pluginName, {\n name: pluginName,\n proxy,\n platforms: new Set([...Object.keys(jsImplementations), ...(pluginHeader ? [platform] : [])])\n });\n return proxy;\n };\n const registerPlugin = ((_e = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _e === void 0 ? void 0 : _e.registerPlugin) || defaultRegisterPlugin;\n // Add in convertFileSrc for web, it will already be available in native context\n if (!cap.convertFileSrc) {\n cap.convertFileSrc = filePath => filePath;\n }\n cap.getPlatform = getPlatform;\n cap.handleError = handleError;\n cap.isNativePlatform = isNativePlatform;\n cap.isPluginAvailable = isPluginAvailable;\n cap.pluginMethodNoop = pluginMethodNoop;\n cap.registerPlugin = registerPlugin;\n cap.Exception = CapacitorException;\n cap.DEBUG = !!cap.DEBUG;\n cap.isLoggingEnabled = !!cap.isLoggingEnabled;\n // Deprecated props\n cap.platform = cap.getPlatform();\n cap.isNative = cap.isNativePlatform();\n return cap;\n};\nconst initCapacitorGlobal = win => win.Capacitor = createCapacitor(win);\nconst Capacitor = /*#__PURE__*/initCapacitorGlobal(typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : {});\nconst registerPlugin = Capacitor.registerPlugin;\n/**\n * @deprecated Provided for backwards compatibility for Capacitor v2 plugins.\n * Capacitor v3 plugins should import the plugin directly. This \"Plugins\"\n * export is deprecated in v3, and will be removed in v4.\n */\nconst Plugins = Capacitor.Plugins;\n/**\n * Provided for backwards compatibility. Use the registerPlugin() API\n * instead, and provide the web plugin as the \"web\" implmenetation.\n * For example\n *\n * export const Example = registerPlugin('Example', {\n * web: () => import('./web').then(m => new m.Example())\n * })\n *\n * @deprecated Deprecated in v3, will be removed from v4.\n */\nconst registerWebPlugin = plugin => legacyRegisterWebPlugin(Capacitor, plugin);\n\n/**\n * Base class web plugins should extend.\n */\nclass WebPlugin {\n constructor(config) {\n this.listeners = {};\n this.windowListeners = {};\n if (config) {\n // TODO: add link to upgrade guide\n console.warn(`Capacitor WebPlugin \"${config.name}\" config object was deprecated in v3 and will be removed in v4.`);\n this.config = config;\n }\n }\n addListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n this.listeners[eventName] = [];\n }\n this.listeners[eventName].push(listenerFunc);\n // If we haven't added a window listener for this event and it requires one,\n // go ahead and add it\n const windowListener = this.windowListeners[eventName];\n if (windowListener && !windowListener.registered) {\n this.addWindowListener(windowListener);\n }\n const remove = async () => this.removeListener(eventName, listenerFunc);\n const p = Promise.resolve({\n remove\n });\n Object.defineProperty(p, 'remove', {\n value: async () => {\n console.warn(`Using addListener() without 'await' is deprecated.`);\n await remove();\n }\n });\n return p;\n }\n async removeAllListeners() {\n this.listeners = {};\n for (const listener in this.windowListeners) {\n this.removeWindowListener(this.windowListeners[listener]);\n }\n this.windowListeners = {};\n }\n notifyListeners(eventName, data) {\n const listeners = this.listeners[eventName];\n if (listeners) {\n listeners.forEach(listener => listener(data));\n }\n }\n hasListeners(eventName) {\n return !!this.listeners[eventName].length;\n }\n registerWindowListener(windowEventName, pluginEventName) {\n this.windowListeners[pluginEventName] = {\n registered: false,\n windowEventName,\n pluginEventName,\n handler: event => {\n this.notifyListeners(pluginEventName, event);\n }\n };\n }\n unimplemented(msg = 'not implemented') {\n return new Capacitor.Exception(msg, ExceptionCode.Unimplemented);\n }\n unavailable(msg = 'not available') {\n return new Capacitor.Exception(msg, ExceptionCode.Unavailable);\n }\n async removeListener(eventName, listenerFunc) {\n const listeners = this.listeners[eventName];\n if (!listeners) {\n return;\n }\n const index = listeners.indexOf(listenerFunc);\n this.listeners[eventName].splice(index, 1);\n // If there are no more listeners for this type of event,\n // remove the window listener\n if (!this.listeners[eventName].length) {\n this.removeWindowListener(this.windowListeners[eventName]);\n }\n }\n addWindowListener(handle) {\n window.addEventListener(handle.windowEventName, handle.handler);\n handle.registered = true;\n }\n removeWindowListener(handle) {\n if (!handle) {\n return;\n }\n window.removeEventListener(handle.windowEventName, handle.handler);\n handle.registered = false;\n }\n}\nconst WebView = /*#__PURE__*/registerPlugin('WebView');\n/******** END WEB VIEW PLUGIN ********/\n/******** COOKIES PLUGIN ********/\n/**\n * Safely web encode a string value (inspired by js-cookie)\n * @param str The string value to encode\n */\nconst encode = str => encodeURIComponent(str).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);\n/**\n * Safely web decode a string value (inspired by js-cookie)\n * @param str The string value to decode\n */\nconst decode = str => str.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent);\nclass CapacitorCookiesPluginWeb extends WebPlugin {\n async getCookies() {\n const cookies = document.cookie;\n const cookieMap = {};\n cookies.split(';').forEach(cookie => {\n if (cookie.length <= 0) return;\n // Replace first \"=\" with CAP_COOKIE to prevent splitting on additional \"=\"\n let [key, value] = cookie.replace(/=/, 'CAP_COOKIE').split('CAP_COOKIE');\n key = decode(key).trim();\n value = decode(value).trim();\n cookieMap[key] = value;\n });\n return cookieMap;\n }\n async setCookie(options) {\n try {\n // Safely Encoded Key/Value\n const encodedKey = encode(options.key);\n const encodedValue = encode(options.value);\n // Clean & sanitize options\n const expires = `; expires=${(options.expires || '').replace('expires=', '')}`; // Default is \"; expires=\"\n const path = (options.path || '/').replace('path=', ''); // Default is \"path=/\"\n document.cookie = `${encodedKey}=${encodedValue || ''}${expires}; path=${path}`;\n } catch (error) {\n return Promise.reject(error);\n }\n }\n async deleteCookie(options) {\n try {\n document.cookie = `${options.key}=; Max-Age=0`;\n } catch (error) {\n return Promise.reject(error);\n }\n }\n async clearCookies() {\n try {\n const cookies = document.cookie.split(';') || [];\n for (const cookie of cookies) {\n document.cookie = cookie.replace(/^ +/, '').replace(/=.*/, `=;expires=${new Date().toUTCString()};path=/`);\n }\n } catch (error) {\n return Promise.reject(error);\n }\n }\n async clearAllCookies() {\n try {\n await this.clearCookies();\n } catch (error) {\n return Promise.reject(error);\n }\n }\n}\nconst CapacitorCookies = registerPlugin('CapacitorCookies', {\n web: () => new CapacitorCookiesPluginWeb()\n});\n// UTILITY FUNCTIONS\n/**\n * Read in a Blob value and return it as a base64 string\n * @param blob The blob value to convert to a base64 string\n */\nconst readBlobAsBase64 = async blob => new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n const base64String = reader.result;\n // remove prefix \"data:application/pdf;base64,\"\n resolve(base64String.indexOf(',') >= 0 ? base64String.split(',')[1] : base64String);\n };\n reader.onerror = error => reject(error);\n reader.readAsDataURL(blob);\n});\n/**\n * Normalize an HttpHeaders map by lowercasing all of the values\n * @param headers The HttpHeaders object to normalize\n */\nconst normalizeHttpHeaders = (headers = {}) => {\n const originalKeys = Object.keys(headers);\n const loweredKeys = Object.keys(headers).map(k => k.toLocaleLowerCase());\n const normalized = loweredKeys.reduce((acc, key, index) => {\n acc[key] = headers[originalKeys[index]];\n return acc;\n }, {});\n return normalized;\n};\n/**\n * Builds a string of url parameters that\n * @param params A map of url parameters\n * @param shouldEncode true if you should encodeURIComponent() the values (true by default)\n */\nconst buildUrlParams = (params, shouldEncode = true) => {\n if (!params) return null;\n const output = Object.entries(params).reduce((accumulator, entry) => {\n const [key, value] = entry;\n let encodedValue;\n let item;\n if (Array.isArray(value)) {\n item = '';\n value.forEach(str => {\n encodedValue = shouldEncode ? encodeURIComponent(str) : str;\n item += `${key}=${encodedValue}&`;\n });\n // last character will always be \"&\" so slice it off\n item.slice(0, -1);\n } else {\n encodedValue = shouldEncode ? encodeURIComponent(value) : value;\n item = `${key}=${encodedValue}`;\n }\n return `${accumulator}&${item}`;\n }, '');\n // Remove initial \"&\" from the reduce\n return output.substr(1);\n};\n/**\n * Build the RequestInit object based on the options passed into the initial request\n * @param options The Http plugin options\n * @param extra Any extra RequestInit values\n */\nconst buildRequestInit = (options, extra = {}) => {\n const output = Object.assign({\n method: options.method || 'GET',\n headers: options.headers\n }, extra);\n // Get the content-type\n const headers = normalizeHttpHeaders(options.headers);\n const type = headers['content-type'] || '';\n // If body is already a string, then pass it through as-is.\n if (typeof options.data === 'string') {\n output.body = options.data;\n }\n // Build request initializers based off of content-type\n else if (type.includes('application/x-www-form-urlencoded')) {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(options.data || {})) {\n params.set(key, value);\n }\n output.body = params.toString();\n } else if (type.includes('multipart/form-data')) {\n const form = new FormData();\n if (options.data instanceof FormData) {\n options.data.forEach((value, key) => {\n form.append(key, value);\n });\n } else {\n for (const key of Object.keys(options.data)) {\n form.append(key, options.data[key]);\n }\n }\n output.body = form;\n const headers = new Headers(output.headers);\n headers.delete('content-type'); // content-type will be set by `window.fetch` to includy boundary\n output.headers = headers;\n } else if (type.includes('application/json') || typeof options.data === 'object') {\n output.body = JSON.stringify(options.data);\n }\n return output;\n};\n// WEB IMPLEMENTATION\nclass CapacitorHttpPluginWeb extends WebPlugin {\n /**\n * Perform an Http request given a set of options\n * @param options Options to build the HTTP request\n */\n async request(options) {\n const requestInit = buildRequestInit(options, options.webFetchExtra);\n const urlParams = buildUrlParams(options.params, options.shouldEncodeUrlParams);\n const url = urlParams ? `${options.url}?${urlParams}` : options.url;\n const response = await fetch(url, requestInit);\n const contentType = response.headers.get('content-type') || '';\n // Default to 'text' responseType so no parsing happens\n let {\n responseType = 'text'\n } = response.ok ? options : {};\n // If the response content-type is json, force the response to be json\n if (contentType.includes('application/json')) {\n responseType = 'json';\n }\n let data;\n let blob;\n switch (responseType) {\n case 'arraybuffer':\n case 'blob':\n blob = await response.blob();\n data = await readBlobAsBase64(blob);\n break;\n case 'json':\n data = await response.json();\n break;\n case 'document':\n case 'text':\n default:\n data = await response.text();\n }\n // Convert fetch headers to Capacitor HttpHeaders\n const headers = {};\n response.headers.forEach((value, key) => {\n headers[key] = value;\n });\n return {\n data,\n headers,\n status: response.status,\n url: response.url\n };\n }\n /**\n * Perform an Http GET request given a set of options\n * @param options Options to build the HTTP request\n */\n async get(options) {\n return this.request(Object.assign(Object.assign({}, options), {\n method: 'GET'\n }));\n }\n /**\n * Perform an Http POST request given a set of options\n * @param options Options to build the HTTP request\n */\n async post(options) {\n return this.request(Object.assign(Object.assign({}, options), {\n method: 'POST'\n }));\n }\n /**\n * Perform an Http PUT request given a set of options\n * @param options Options to build the HTTP request\n */\n async put(options) {\n return this.request(Object.assign(Object.assign({}, options), {\n method: 'PUT'\n }));\n }\n /**\n * Perform an Http PATCH request given a set of options\n * @param options Options to build the HTTP request\n */\n async patch(options) {\n return this.request(Object.assign(Object.assign({}, options), {\n method: 'PATCH'\n }));\n }\n /**\n * Perform an Http DELETE request given a set of options\n * @param options Options to build the HTTP request\n */\n async delete(options) {\n return this.request(Object.assign(Object.assign({}, options), {\n method: 'DELETE'\n }));\n }\n}\nconst CapacitorHttp = registerPlugin('CapacitorHttp', {\n web: () => new CapacitorHttpPluginWeb()\n});\n/******** END HTTP PLUGIN ********/\n\n\n\n//# sourceURL=webpack://jandl/./node_modules/@capacitor/core/dist/index.js?\n}");
-
-/***/ }),
-
-/***/ "./node_modules/@capacitor/preferences/dist/esm/definitions.js":
-/*!*********************************************************************!*\
- !*** ./node_modules/@capacitor/preferences/dist/esm/definitions.js ***!
- \*********************************************************************/
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n\n\n//# sourceURL=webpack://jandl/./node_modules/@capacitor/preferences/dist/esm/definitions.js?\n}");
-
-/***/ }),
-
-/***/ "./node_modules/@capacitor/preferences/dist/esm/index.js":
-/*!***************************************************************!*\
- !*** ./node_modules/@capacitor/preferences/dist/esm/index.js ***!
- \***************************************************************/
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Preferences: function() { return /* binding */ Preferences; }\n/* harmony export */ });\n/* harmony import */ var _capacitor_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @capacitor/core */ \"./node_modules/@capacitor/core/dist/index.js\");\n/* harmony import */ var _definitions__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./definitions */ \"./node_modules/@capacitor/preferences/dist/esm/definitions.js\");\n\nconst Preferences = (0,_capacitor_core__WEBPACK_IMPORTED_MODULE_0__.registerPlugin)('Preferences', {\n web: () => __webpack_require__.e(/*! import() */ \"node_modules_capacitor_preferences_dist_esm_web_js\").then(__webpack_require__.bind(__webpack_require__, /*! ./web */ \"./node_modules/@capacitor/preferences/dist/esm/web.js\")).then(m => new m.PreferencesWeb())\n});\n\n\n\n//# sourceURL=webpack://jandl/./node_modules/@capacitor/preferences/dist/esm/index.js?\n}");
-
-/***/ }),
-
-/***/ "./node_modules/@intlify/core-base/dist/core-base.mjs":
-/*!************************************************************!*\
- !*** ./node_modules/@intlify/core-base/dist/core-base.mjs ***!
- \************************************************************/
-/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AST_NODE_PROPS_KEYS: function() { return /* binding */ AST_NODE_PROPS_KEYS; },\n/* harmony export */ CompileErrorCodes: function() { return /* reexport safe */ _intlify_message_compiler__WEBPACK_IMPORTED_MODULE_7__.CompileErrorCodes; },\n/* harmony export */ CoreErrorCodes: function() { return /* binding */ CoreErrorCodes; },\n/* harmony export */ CoreWarnCodes: function() { return /* binding */ CoreWarnCodes; },\n/* harmony export */ DATETIME_FORMAT_OPTIONS_KEYS: function() { return /* binding */ DATETIME_FORMAT_OPTIONS_KEYS; },\n/* harmony export */ DEFAULT_LOCALE: function() { return /* binding */ DEFAULT_LOCALE; },\n/* harmony export */ DEFAULT_MESSAGE_DATA_TYPE: function() { return /* binding */ DEFAULT_MESSAGE_DATA_TYPE; },\n/* harmony export */ MISSING_RESOLVE_VALUE: function() { return /* binding */ MISSING_RESOLVE_VALUE; },\n/* harmony export */ NOT_REOSLVED: function() { return /* binding */ NOT_REOSLVED; },\n/* harmony export */ NUMBER_FORMAT_OPTIONS_KEYS: function() { return /* binding */ NUMBER_FORMAT_OPTIONS_KEYS; },\n/* harmony export */ VERSION: function() { return /* binding */ VERSION; },\n/* harmony export */ clearCompileCache: function() { return /* binding */ clearCompileCache; },\n/* harmony export */ clearDateTimeFormat: function() { return /* binding */ clearDateTimeFormat; },\n/* harmony export */ clearNumberFormat: function() { return /* binding */ clearNumberFormat; },\n/* harmony export */ compile: function() { return /* binding */ compile; },\n/* harmony export */ compileToFunction: function() { return /* binding */ compileToFunction; },\n/* harmony export */ createCompileError: function() { return /* reexport safe */ _intlify_message_compiler__WEBPACK_IMPORTED_MODULE_7__.createCompileError; },\n/* harmony export */ createCoreContext: function() { return /* binding */ createCoreContext; },\n/* harmony export */ createCoreError: function() { return /* binding */ createCoreError; },\n/* harmony export */ createMessageContext: function() { return /* binding */ createMessageContext; },\n/* harmony export */ datetime: function() { return /* binding */ datetime; },\n/* harmony export */ fallbackWithLocaleChain: function() { return /* binding */ fallbackWithLocaleChain; },\n/* harmony export */ fallbackWithSimple: function() { return /* binding */ fallbackWithSimple; },\n/* harmony export */ getAdditionalMeta: function() { return /* binding */ getAdditionalMeta; },\n/* harmony export */ getDevToolsHook: function() { return /* binding */ getDevToolsHook; },\n/* harmony export */ getFallbackContext: function() { return /* binding */ getFallbackContext; },\n/* harmony export */ getLocale: function() { return /* binding */ getLocale; },\n/* harmony export */ getWarnMessage: function() { return /* binding */ getWarnMessage; },\n/* harmony export */ handleMissing: function() { return /* binding */ handleMissing; },\n/* harmony export */ initI18nDevTools: function() { return /* binding */ initI18nDevTools; },\n/* harmony export */ isAlmostSameLocale: function() { return /* binding */ isAlmostSameLocale; },\n/* harmony export */ isImplicitFallback: function() { return /* binding */ isImplicitFallback; },\n/* harmony export */ isMessageAST: function() { return /* binding */ isMessageAST; },\n/* harmony export */ isMessageFunction: function() { return /* binding */ isMessageFunction; },\n/* harmony export */ isTranslateFallbackWarn: function() { return /* binding */ isTranslateFallbackWarn; },\n/* harmony export */ isTranslateMissingWarn: function() { return /* binding */ isTranslateMissingWarn; },\n/* harmony export */ number: function() { return /* binding */ number; },\n/* harmony export */ parse: function() { return /* binding */ parse; },\n/* harmony export */ parseDateTimeArgs: function() { return /* binding */ parseDateTimeArgs; },\n/* harmony export */ parseNumberArgs: function() { return /* binding */ parseNumberArgs; },\n/* harmony export */ parseTranslateArgs: function() { return /* binding */ parseTranslateArgs; },\n/* harmony export */ registerLocaleFallbacker: function() { return /* binding */ registerLocaleFallbacker; },\n/* harmony export */ registerMessageCompiler: function() { return /* binding */ registerMessageCompiler; },\n/* harmony export */ registerMessageResolver: function() { return /* binding */ registerMessageResolver; },\n/* harmony export */ resolveLocale: function() { return /* binding */ resolveLocale; },\n/* harmony export */ resolveValue: function() { return /* binding */ resolveValue; },\n/* harmony export */ resolveWithKeyValue: function() { return /* binding */ resolveWithKeyValue; },\n/* harmony export */ setAdditionalMeta: function() { return /* binding */ setAdditionalMeta; },\n/* harmony export */ setDevToolsHook: function() { return /* binding */ setDevToolsHook; },\n/* harmony export */ setFallbackContext: function() { return /* binding */ setFallbackContext; },\n/* harmony export */ translate: function() { return /* binding */ translate; },\n/* harmony export */ translateDevTools: function() { return /* binding */ translateDevTools; },\n/* harmony export */ updateFallbackLocale: function() { return /* binding */ updateFallbackLocale; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ \"./node_modules/core-js/modules/esnext.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_reduce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.iterator.reduce.js */ \"./node_modules/core-js/modules/esnext.iterator.reduce.js\");\n/* harmony import */ var _intlify_shared__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @intlify/shared */ \"./node_modules/@intlify/shared/dist/shared.mjs\");\n/* harmony import */ var _intlify_message_compiler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @intlify/message-compiler */ \"./node_modules/@intlify/message-compiler/dist/message-compiler.esm-browser.js\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n/*!\n * core-base v9.14.5\n * (c) 2025 kazuya kawaguchi\n * Released under the MIT License.\n */\n\n\n\n\n/**\n * This is only called in esm-bundler builds.\n * istanbul-ignore-next\n */\nfunction initFeatureFlags() {\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.getGlobalThis)().__INTLIFY_PROD_DEVTOOLS__ = false;\n }\n if (typeof __INTLIFY_JIT_COMPILATION__ !== 'boolean') {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.getGlobalThis)().__INTLIFY_JIT_COMPILATION__ = false;\n }\n if (typeof __INTLIFY_DROP_MESSAGE_COMPILER__ !== 'boolean') {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.getGlobalThis)().__INTLIFY_DROP_MESSAGE_COMPILER__ = false;\n }\n}\nfunction isMessageAST(val) {\n return (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(val) && resolveType(val) === 0 && ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.hasOwn)(val, 'b') || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.hasOwn)(val, 'body'));\n}\nconst PROPS_BODY = ['b', 'body'];\nfunction resolveBody(node) {\n return resolveProps(node, PROPS_BODY);\n}\nconst PROPS_CASES = ['c', 'cases'];\nfunction resolveCases(node) {\n return resolveProps(node, PROPS_CASES, []);\n}\nconst PROPS_STATIC = ['s', 'static'];\nfunction resolveStatic(node) {\n return resolveProps(node, PROPS_STATIC);\n}\nconst PROPS_ITEMS = ['i', 'items'];\nfunction resolveItems(node) {\n return resolveProps(node, PROPS_ITEMS, []);\n}\nconst PROPS_TYPE = ['t', 'type'];\nfunction resolveType(node) {\n return resolveProps(node, PROPS_TYPE);\n}\nconst PROPS_VALUE = ['v', 'value'];\nfunction resolveValue$1(node, type) {\n const resolved = resolveProps(node, PROPS_VALUE);\n if (resolved != null) {\n return resolved;\n } else {\n throw createUnhandleNodeError(type);\n }\n}\nconst PROPS_MODIFIER = ['m', 'modifier'];\nfunction resolveLinkedModifier(node) {\n return resolveProps(node, PROPS_MODIFIER);\n}\nconst PROPS_KEY = ['k', 'key'];\nfunction resolveLinkedKey(node) {\n const resolved = resolveProps(node, PROPS_KEY);\n if (resolved) {\n return resolved;\n } else {\n throw createUnhandleNodeError(6 /* NodeTypes.Linked */);\n }\n}\nfunction resolveProps(node, props, defaultValue) {\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.hasOwn)(node, prop) && node[prop] != null) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return node[prop];\n }\n }\n return defaultValue;\n}\nconst AST_NODE_PROPS_KEYS = [...PROPS_BODY, ...PROPS_CASES, ...PROPS_STATIC, ...PROPS_ITEMS, ...PROPS_KEY, ...PROPS_MODIFIER, ...PROPS_VALUE, ...PROPS_TYPE];\nfunction createUnhandleNodeError(type) {\n return new Error(`unhandled node type: ${type}`);\n}\nconst pathStateMachine = [];\npathStateMachine[0 /* States.BEFORE_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [0 /* States.BEFORE_PATH */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[1 /* States.IN_PATH */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */]\n};\npathStateMachine[2 /* States.BEFORE_IDENT */] = {\n [\"w\" /* PathCharTypes.WORKSPACE */]: [2 /* States.BEFORE_IDENT */],\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */]\n};\npathStateMachine[3 /* States.IN_IDENT */] = {\n [\"i\" /* PathCharTypes.IDENT */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"0\" /* PathCharTypes.ZERO */]: [3 /* States.IN_IDENT */, 0 /* Actions.APPEND */],\n [\"w\" /* PathCharTypes.WORKSPACE */]: [1 /* States.IN_PATH */, 1 /* Actions.PUSH */],\n [\".\" /* PathCharTypes.DOT */]: [2 /* States.BEFORE_IDENT */, 1 /* Actions.PUSH */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */, 1 /* Actions.PUSH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: [7 /* States.AFTER_PATH */, 1 /* Actions.PUSH */]\n};\npathStateMachine[4 /* States.IN_SUB_PATH */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */],\n [\"[\" /* PathCharTypes.LEFT_BRACKET */]: [4 /* States.IN_SUB_PATH */, 2 /* Actions.INC_SUB_PATH_DEPTH */],\n [\"]\" /* PathCharTypes.RIGHT_BRACKET */]: [1 /* States.IN_PATH */, 3 /* Actions.PUSH_SUB_PATH */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */]\n};\npathStateMachine[5 /* States.IN_SINGLE_QUOTE */] = {\n [\"'\" /* PathCharTypes.SINGLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [5 /* States.IN_SINGLE_QUOTE */, 0 /* Actions.APPEND */]\n};\npathStateMachine[6 /* States.IN_DOUBLE_QUOTE */] = {\n [\"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */]: [4 /* States.IN_SUB_PATH */, 0 /* Actions.APPEND */],\n [\"o\" /* PathCharTypes.END_OF_FAIL */]: 8 /* States.ERROR */,\n [\"l\" /* PathCharTypes.ELSE */]: [6 /* States.IN_DOUBLE_QUOTE */, 0 /* Actions.APPEND */]\n};\n/**\n * Check if an expression is a literal value.\n */\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral(exp) {\n return literalValueRE.test(exp);\n}\n/**\n * Strip quotes from a string\n */\nfunction stripQuotes(str) {\n const a = str.charCodeAt(0);\n const b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27) ? str.slice(1, -1) : str;\n}\n/**\n * Determine the type of a character in a keypath.\n */\nfunction getPathCharType(ch) {\n if (ch === undefined || ch === null) {\n return \"o\" /* PathCharTypes.END_OF_FAIL */;\n }\n const code = ch.charCodeAt(0);\n switch (code) {\n case 0x5b: // [\n case 0x5d: // ]\n case 0x2e: // .\n case 0x22: // \"\n case 0x27:\n // '\n return ch;\n case 0x5f: // _\n case 0x24: // $\n case 0x2d:\n // -\n return \"i\" /* PathCharTypes.IDENT */;\n case 0x09: // Tab (HT)\n case 0x0a: // Newline (LF)\n case 0x0d: // Return (CR)\n case 0xa0: // No-break space (NBSP)\n case 0xfeff: // Byte Order Mark (BOM)\n case 0x2028: // Line Separator (LS)\n case 0x2029:\n // Paragraph Separator (PS)\n return \"w\" /* PathCharTypes.WORKSPACE */;\n }\n return \"i\" /* PathCharTypes.IDENT */;\n}\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\nfunction formatSubPath(path) {\n const trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(parseInt(path))) {\n return false;\n }\n return isLiteral(trimmed) ? stripQuotes(trimmed) : \"*\" /* PathCharTypes.ASTARISK */ + trimmed;\n}\n/**\n * Parse a string path into an array of segments\n */\nfunction parse(path) {\n const keys = [];\n let index = -1;\n let mode = 0 /* States.BEFORE_PATH */;\n let subPathDepth = 0;\n let c;\n let key; // eslint-disable-line\n let newChar;\n let type;\n let transition;\n let action;\n let typeMap;\n const actions = [];\n actions[0 /* Actions.APPEND */] = () => {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n actions[1 /* Actions.PUSH */] = () => {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n actions[2 /* Actions.INC_SUB_PATH_DEPTH */] = () => {\n actions[0 /* Actions.APPEND */]();\n subPathDepth++;\n };\n actions[3 /* Actions.PUSH_SUB_PATH */] = () => {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = 4 /* States.IN_SUB_PATH */;\n actions[0 /* Actions.APPEND */]();\n } else {\n subPathDepth = 0;\n if (key === undefined) {\n return false;\n }\n key = formatSubPath(key);\n if (key === false) {\n return false;\n } else {\n actions[1 /* Actions.PUSH */]();\n }\n }\n };\n function maybeUnescapeQuote() {\n const nextChar = path[index + 1];\n if (mode === 5 /* States.IN_SINGLE_QUOTE */ && nextChar === \"'\" /* PathCharTypes.SINGLE_QUOTE */ || mode === 6 /* States.IN_DOUBLE_QUOTE */ && nextChar === \"\\\"\" /* PathCharTypes.DOUBLE_QUOTE */) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[0 /* Actions.APPEND */]();\n return true;\n }\n }\n while (mode !== null) {\n index++;\n c = path[index];\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue;\n }\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap[\"l\" /* PathCharTypes.ELSE */] || 8 /* States.ERROR */;\n // check parse error\n if (transition === 8 /* States.ERROR */) {\n return;\n }\n mode = transition[0];\n if (transition[1] !== undefined) {\n action = actions[transition[1]];\n if (action) {\n newChar = c;\n if (action() === false) {\n return;\n }\n }\n }\n // check parse finish\n if (mode === 7 /* States.AFTER_PATH */) {\n return keys;\n }\n }\n}\n// path token cache\nconst cache = new Map();\n/**\n * key-value message resolver\n *\n * @remarks\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveWithKeyValue(obj, path) {\n return (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(obj) ? obj[path] : null;\n}\n/**\n * message resolver\n *\n * @remarks\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\n *\n * @param obj - A target object to be resolved with path\n * @param path - A {@link Path | path} to resolve the value of message\n *\n * @returns A resolved {@link PathValue | path value}\n *\n * @VueI18nGeneral\n */\nfunction resolveValue(obj, path) {\n // check object\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(obj)) {\n return null;\n }\n // parse path\n let hit = cache.get(path);\n if (!hit) {\n hit = parse(path);\n if (hit) {\n cache.set(path, hit);\n }\n }\n // check hit\n if (!hit) {\n return null;\n }\n // resolve path value\n const len = hit.length;\n let last = obj;\n let i = 0;\n while (i < len) {\n const key = hit[i];\n /**\n * NOTE:\n * if `key` is intlify message format AST node key and `last` is intlify message format AST, skip it.\n * because the AST node is not a key-value structure.\n */\n if (AST_NODE_PROPS_KEYS.includes(key) && isMessageAST(last)) {\n return null;\n }\n const val = last[key];\n if (val === undefined) {\n return null;\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(last)) {\n return null;\n }\n last = val;\n i++;\n }\n return last;\n}\nconst DEFAULT_MODIFIER = str => str;\nconst DEFAULT_MESSAGE = ctx => ''; // eslint-disable-line\nconst DEFAULT_MESSAGE_DATA_TYPE = 'text';\nconst DEFAULT_NORMALIZE = values => values.length === 0 ? '' : (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.join)(values);\nconst DEFAULT_INTERPOLATE = _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.toDisplayString;\nfunction pluralDefault(choice, choicesLength) {\n choice = Math.abs(choice);\n if (choicesLength === 2) {\n // prettier-ignore\n return choice ? choice > 1 ? 1 : 0 : 1;\n }\n return choice ? Math.min(choice, 2) : 0;\n}\nfunction getPluralIndex(options) {\n // prettier-ignore\n const index = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(options.pluralIndex) ? options.pluralIndex : -1;\n // prettier-ignore\n return options.named && ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(options.named.count) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(options.named.n)) ? (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(options.named.count) ? options.named.count : (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(options.named.n) ? options.named.n : index : index;\n}\nfunction normalizeNamed(pluralIndex, props) {\n if (!props.count) {\n props.count = pluralIndex;\n }\n if (!props.n) {\n props.n = pluralIndex;\n }\n}\nfunction createMessageContext(options = {}) {\n const locale = options.locale;\n const pluralIndex = getPluralIndex(options);\n const pluralRule = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(options.pluralRules) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(locale) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(options.pluralRules[locale]) ? options.pluralRules[locale] : pluralDefault;\n const orgPluralRule = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(options.pluralRules) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(locale) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(options.pluralRules[locale]) ? pluralDefault : undefined;\n const plural = messages => {\n return messages[pluralRule(pluralIndex, messages.length, orgPluralRule)];\n };\n const _list = options.list || [];\n const list = index => _list[index];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const _named = options.named || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)();\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(options.pluralIndex) && normalizeNamed(pluralIndex, _named);\n const named = key => _named[key];\n function message(key) {\n // prettier-ignore\n const msg = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(options.messages) ? options.messages(key) : (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(options.messages) ? options.messages[key] : false;\n return !msg ? options.parent ? options.parent.message(key) // resolve from parent messages\n : DEFAULT_MESSAGE : msg;\n }\n const _modifier = name => options.modifiers ? options.modifiers[name] : DEFAULT_MODIFIER;\n const normalize = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(options.processor) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(options.processor.normalize) ? options.processor.normalize : DEFAULT_NORMALIZE;\n const interpolate = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(options.processor) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(options.processor.interpolate) ? options.processor.interpolate : DEFAULT_INTERPOLATE;\n const type = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(options.processor) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(options.processor.type) ? options.processor.type : DEFAULT_MESSAGE_DATA_TYPE;\n const linked = (key, ...args) => {\n const [arg1, arg2] = args;\n let type = 'text';\n let modifier = '';\n if (args.length === 1) {\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(arg1)) {\n modifier = arg1.modifier || modifier;\n type = arg1.type || type;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(arg1)) {\n modifier = arg1 || modifier;\n }\n } else if (args.length === 2) {\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(arg1)) {\n modifier = arg1 || modifier;\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(arg2)) {\n type = arg2 || type;\n }\n }\n const ret = message(key)(ctx);\n const msg =\n // The message in vnode resolved with linked are returned as an array by processor.nomalize\n type === 'vnode' && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isArray)(ret) && modifier ? ret[0] : ret;\n return modifier ? _modifier(modifier)(msg, type) : msg;\n };\n const ctx = {\n [\"list\" /* HelperNameMap.LIST */]: list,\n [\"named\" /* HelperNameMap.NAMED */]: named,\n [\"plural\" /* HelperNameMap.PLURAL */]: plural,\n [\"linked\" /* HelperNameMap.LINKED */]: linked,\n [\"message\" /* HelperNameMap.MESSAGE */]: message,\n [\"type\" /* HelperNameMap.TYPE */]: type,\n [\"interpolate\" /* HelperNameMap.INTERPOLATE */]: interpolate,\n [\"normalize\" /* HelperNameMap.NORMALIZE */]: normalize,\n [\"values\" /* HelperNameMap.VALUES */]: (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.assign)((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)(), _list, _named)\n };\n return ctx;\n}\nlet devtools = null;\nfunction setDevToolsHook(hook) {\n devtools = hook;\n}\nfunction getDevToolsHook() {\n return devtools;\n}\nfunction initI18nDevTools(i18n, version, meta) {\n // TODO: queue if devtools is undefined\n devtools && devtools.emit(\"i18n:init\" /* IntlifyDevToolsHooks.I18nInit */, {\n timestamp: Date.now(),\n i18n,\n version,\n meta\n });\n}\nconst translateDevTools = /* #__PURE__*/createDevToolsHook(\"function:translate\" /* IntlifyDevToolsHooks.FunctionTranslate */);\nfunction createDevToolsHook(hook) {\n return payloads => devtools && devtools.emit(hook, payloads);\n}\nconst code$1 = _intlify_message_compiler__WEBPACK_IMPORTED_MODULE_7__.CompileWarnCodes.__EXTEND_POINT__;\nconst inc$1 = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.incrementer)(code$1);\nconst CoreWarnCodes = {\n NOT_FOUND_KEY: code$1,\n // 2\n FALLBACK_TO_TRANSLATE: inc$1(),\n // 3\n CANNOT_FORMAT_NUMBER: inc$1(),\n // 4\n FALLBACK_TO_NUMBER_FORMAT: inc$1(),\n // 5\n CANNOT_FORMAT_DATE: inc$1(),\n // 6\n FALLBACK_TO_DATE_FORMAT: inc$1(),\n // 7\n EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER: inc$1(),\n // 8\n __EXTEND_POINT__: inc$1() // 9\n};\n/** @internal */\nconst warnMessages = {\n [CoreWarnCodes.NOT_FOUND_KEY]: `Not found '{key}' key in '{locale}' locale messages.`,\n [CoreWarnCodes.FALLBACK_TO_TRANSLATE]: `Fall back to translate '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_NUMBER]: `Cannot format a number value due to not supported Intl.NumberFormat.`,\n [CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT]: `Fall back to number format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.CANNOT_FORMAT_DATE]: `Cannot format a date value due to not supported Intl.DateTimeFormat.`,\n [CoreWarnCodes.FALLBACK_TO_DATE_FORMAT]: `Fall back to datetime format '{key}' key with '{target}' locale.`,\n [CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER]: `This project is using Custom Message Compiler, which is an experimental feature. It may receive breaking changes or be removed in the future.`\n};\nfunction getWarnMessage(code, ...args) {\n return (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.format)(warnMessages[code], ...args);\n}\nconst code = _intlify_message_compiler__WEBPACK_IMPORTED_MODULE_7__.CompileErrorCodes.__EXTEND_POINT__;\nconst inc = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.incrementer)(code);\nconst CoreErrorCodes = {\n INVALID_ARGUMENT: code,\n // 17\n INVALID_DATE_ARGUMENT: inc(),\n // 18\n INVALID_ISO_DATE_ARGUMENT: inc(),\n // 19\n NOT_SUPPORT_NON_STRING_MESSAGE: inc(),\n // 20\n NOT_SUPPORT_LOCALE_PROMISE_VALUE: inc(),\n // 21\n NOT_SUPPORT_LOCALE_ASYNC_FUNCTION: inc(),\n // 22\n NOT_SUPPORT_LOCALE_TYPE: inc(),\n // 23\n __EXTEND_POINT__: inc() // 24\n};\nfunction createCoreError(code) {\n return (0,_intlify_message_compiler__WEBPACK_IMPORTED_MODULE_7__.createCompileError)(code, null, true ? {\n messages: errorMessages\n } : 0);\n}\n/** @internal */\nconst errorMessages = {\n [CoreErrorCodes.INVALID_ARGUMENT]: 'Invalid arguments',\n [CoreErrorCodes.INVALID_DATE_ARGUMENT]: 'The date provided is an invalid Date object.' + 'Make sure your Date represents a valid date.',\n [CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT]: 'The argument provided is not a valid ISO date string',\n [CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE]: 'Not support non-string message',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE]: 'cannot support promise value',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION]: 'cannot support async function',\n [CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE]: 'cannot support locale type'\n};\n\n/** @internal */\nfunction getLocale(context, options) {\n return options.locale != null ? resolveLocale(options.locale) : resolveLocale(context.locale);\n}\nlet _resolveLocale;\n/** @internal */\nfunction resolveLocale(locale) {\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(locale)) {\n return locale;\n } else {\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(locale)) {\n if (locale.resolvedOnce && _resolveLocale != null) {\n return _resolveLocale;\n } else if (locale.constructor.name === 'Function') {\n const resolve = locale();\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPromise)(resolve)) {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_PROMISE_VALUE);\n }\n return _resolveLocale = resolve;\n } else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION);\n }\n } else {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_LOCALE_TYPE);\n }\n }\n}\n/**\n * Fallback with simple implemenation\n *\n * @remarks\n * A fallback locale function implemented with a simple fallback algorithm.\n *\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithSimple(ctx, fallback, start // eslint-disable-line @typescript-eslint/no-unused-vars\n) {\n // prettier-ignore\n return [...new Set([start, ...((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isArray)(fallback) ? fallback : (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(fallback) ? Object.keys(fallback) : (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(fallback) ? [fallback] : [start])])];\n}\n/**\n * Fallback with locale chain\n *\n * @remarks\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\n *\n * @param ctx - A {@link CoreContext | context}\n * @param fallback - A {@link FallbackLocale | fallback locale}\n * @param start - A starting {@link Locale | locale}\n *\n * @returns Fallback locales\n *\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\n *\n * @VueI18nGeneral\n */\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\n const startLocale = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(start) ? start : DEFAULT_LOCALE;\n const context = ctx;\n if (!context.__localeChainCache) {\n context.__localeChainCache = new Map();\n }\n let chain = context.__localeChainCache.get(startLocale);\n if (!chain) {\n chain = [];\n // first block defined by start\n let block = [start];\n // while any intervening block found\n while ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isArray)(block)) {\n block = appendBlockToChain(chain, block, fallback);\n }\n // prettier-ignore\n // last block defined by default\n const defaults = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isArray)(fallback) || !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(fallback) ? fallback : fallback['default'] ? fallback['default'] : null;\n // convert defaults to array\n block = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(defaults) ? [defaults] : defaults;\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isArray)(block)) {\n appendBlockToChain(chain, block, false);\n }\n context.__localeChainCache.set(startLocale, chain);\n }\n return chain;\n}\nfunction appendBlockToChain(chain, block, blocks) {\n let follow = true;\n for (let i = 0; i < block.length && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(follow); i++) {\n const locale = block[i];\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(locale)) {\n follow = appendLocaleToChain(chain, block[i], blocks);\n }\n }\n return follow;\n}\nfunction appendLocaleToChain(chain, locale, blocks) {\n let follow;\n const tokens = locale.split('-');\n do {\n const target = tokens.join('-');\n follow = appendItemToChain(chain, target, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && follow === true);\n return follow;\n}\nfunction appendItemToChain(chain, target, blocks) {\n let follow = false;\n if (!chain.includes(target)) {\n follow = true;\n if (target) {\n follow = target[target.length - 1] !== '!';\n const locale = target.replace(/!/g, '');\n chain.push(locale);\n if (((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isArray)(blocks) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(blocks)) && blocks[locale] // eslint-disable-line @typescript-eslint/no-explicit-any\n ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n follow = blocks[locale];\n }\n }\n }\n return follow;\n}\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Intlify core-base version\n * @internal\n */\nconst VERSION = '9.14.5';\nconst NOT_REOSLVED = -1;\nconst DEFAULT_LOCALE = 'en-US';\nconst MISSING_RESOLVE_VALUE = '';\nconst capitalize = str => `${str.charAt(0).toLocaleUpperCase()}${str.substr(1)}`;\nfunction getDefaultLinkedModifiers() {\n return {\n upper: (val, type) => {\n // prettier-ignore\n return type === 'text' && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(val) ? val.toUpperCase() : type === 'vnode' && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(val) && '__v_isVNode' in val ? val.children.toUpperCase() : val;\n },\n lower: (val, type) => {\n // prettier-ignore\n return type === 'text' && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(val) ? val.toLowerCase() : type === 'vnode' && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(val) && '__v_isVNode' in val ? val.children.toLowerCase() : val;\n },\n capitalize: (val, type) => {\n // prettier-ignore\n return type === 'text' && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(val) ? capitalize(val) : type === 'vnode' && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(val) && '__v_isVNode' in val ? capitalize(val.children) : val;\n }\n };\n}\nlet _compiler;\nfunction registerMessageCompiler(compiler) {\n _compiler = compiler;\n}\nlet _resolver;\n/**\n * Register the message resolver\n *\n * @param resolver - A {@link MessageResolver} function\n *\n * @VueI18nGeneral\n */\nfunction registerMessageResolver(resolver) {\n _resolver = resolver;\n}\nlet _fallbacker;\n/**\n * Register the locale fallbacker\n *\n * @param fallbacker - A {@link LocaleFallbacker} function\n *\n * @VueI18nGeneral\n */\nfunction registerLocaleFallbacker(fallbacker) {\n _fallbacker = fallbacker;\n}\n// Additional Meta for Intlify DevTools\nlet _additionalMeta = null;\n/* #__NO_SIDE_EFFECTS__ */\nconst setAdditionalMeta = meta => {\n _additionalMeta = meta;\n};\n/* #__NO_SIDE_EFFECTS__ */\nconst getAdditionalMeta = () => _additionalMeta;\nlet _fallbackContext = null;\nconst setFallbackContext = context => {\n _fallbackContext = context;\n};\nconst getFallbackContext = () => _fallbackContext;\n// ID for CoreContext\nlet _cid = 0;\nfunction createCoreContext(options = {}) {\n // setup options\n const onWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(options.onWarn) ? options.onWarn : _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.warn;\n const version = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(options.version) ? options.version : VERSION;\n const locale = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(options.locale) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(options.locale) ? options.locale : DEFAULT_LOCALE;\n const _locale = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(locale) ? DEFAULT_LOCALE : locale;\n const fallbackLocale = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isArray)(options.fallbackLocale) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(options.fallbackLocale) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : _locale;\n const messages = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(options.messages) ? options.messages : createResources(_locale);\n const datetimeFormats = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(options.datetimeFormats) ? options.datetimeFormats : createResources(_locale);\n const numberFormats = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(options.numberFormats) ? options.numberFormats : createResources(_locale);\n const modifiers = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.assign)((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)(), options.modifiers, getDefaultLinkedModifiers());\n const pluralRules = options.pluralRules || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)();\n const missing = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(options.missing) ? options.missing : null;\n const missingWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(options.missingWarn) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isRegExp)(options.missingWarn) ? options.missingWarn : true;\n const fallbackWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(options.fallbackWarn) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isRegExp)(options.fallbackWarn) ? options.fallbackWarn : true;\n const fallbackFormat = !!options.fallbackFormat;\n const unresolving = !!options.unresolving;\n const postTranslation = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(options.postTranslation) ? options.postTranslation : null;\n const processor = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(options.processor) ? options.processor : null;\n const warnHtmlMessage = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(options.warnHtmlMessage) ? options.warnHtmlMessage : true;\n const escapeParameter = !!options.escapeParameter;\n const messageCompiler = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(options.messageCompiler) ? options.messageCompiler : _compiler;\n if ( true && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(options.messageCompiler)) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.warnOnce)(getWarnMessage(CoreWarnCodes.EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER));\n }\n const messageResolver = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(options.messageResolver) ? options.messageResolver : _resolver || resolveWithKeyValue;\n const localeFallbacker = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(options.localeFallbacker) ? options.localeFallbacker : _fallbacker || fallbackWithSimple;\n const fallbackContext = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(options.fallbackContext) ? options.fallbackContext : undefined;\n // setup internal options\n const internalOptions = options;\n const __datetimeFormatters = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(internalOptions.__datetimeFormatters) ? internalOptions.__datetimeFormatters : new Map();\n const __numberFormatters = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(internalOptions.__numberFormatters) ? internalOptions.__numberFormatters : new Map();\n const __meta = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(internalOptions.__meta) ? internalOptions.__meta : {};\n _cid++;\n const context = {\n version,\n cid: _cid,\n locale,\n fallbackLocale,\n messages,\n modifiers,\n pluralRules,\n missing,\n missingWarn,\n fallbackWarn,\n fallbackFormat,\n unresolving,\n postTranslation,\n processor,\n warnHtmlMessage,\n escapeParameter,\n messageCompiler,\n messageResolver,\n localeFallbacker,\n fallbackContext,\n onWarn,\n __meta\n };\n {\n context.datetimeFormats = datetimeFormats;\n context.numberFormats = numberFormats;\n context.__datetimeFormatters = __datetimeFormatters;\n context.__numberFormatters = __numberFormatters;\n }\n // for vue-devtools timeline event\n if (true) {\n context.__v_emitter = internalOptions.__v_emitter != null ? internalOptions.__v_emitter : undefined;\n }\n // NOTE: experimental !!\n if (true) {\n initI18nDevTools(context, version, __meta);\n }\n return context;\n}\nconst createResources = locale => ({\n [locale]: (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)()\n});\n/** @internal */\nfunction isTranslateFallbackWarn(fallback, key) {\n return fallback instanceof RegExp ? fallback.test(key) : fallback;\n}\n/** @internal */\nfunction isTranslateMissingWarn(missing, key) {\n return missing instanceof RegExp ? missing.test(key) : missing;\n}\n/** @internal */\nfunction handleMissing(context, key, locale, missingWarn, type) {\n const {\n missing,\n onWarn\n } = context;\n // for vue-devtools timeline event\n if (true) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"missing\" /* VueDevToolsTimelineEvents.MISSING */, {\n locale,\n key,\n type,\n groupId: `${type}:${key}`\n });\n }\n }\n if (missing !== null) {\n const ret = missing(context, locale, key, type);\n return (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(ret) ? ret : key;\n } else {\n if ( true && isTranslateMissingWarn(missingWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.NOT_FOUND_KEY, {\n key,\n locale\n }));\n }\n return key;\n }\n}\n/** @internal */\nfunction updateFallbackLocale(ctx, locale, fallback) {\n const context = ctx;\n context.__localeChainCache = new Map();\n ctx.localeFallbacker(ctx, fallback, locale);\n}\n/** @internal */\nfunction isAlmostSameLocale(locale, compareLocale) {\n if (locale === compareLocale) return false;\n return locale.split('-')[0] === compareLocale.split('-')[0];\n}\n/** @internal */\nfunction isImplicitFallback(targetLocale, locales) {\n const index = locales.indexOf(targetLocale);\n if (index === -1) {\n return false;\n }\n for (let i = index + 1; i < locales.length; i++) {\n if (isAlmostSameLocale(targetLocale, locales[i])) {\n return true;\n }\n }\n return false;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\nfunction format(ast) {\n const msg = ctx => formatParts(ctx, ast);\n return msg;\n}\nfunction formatParts(ctx, ast) {\n const body = resolveBody(ast);\n if (body == null) {\n throw createUnhandleNodeError(0 /* NodeTypes.Resource */);\n }\n const type = resolveType(body);\n if (type === 1 /* NodeTypes.Plural */) {\n const plural = body;\n const cases = resolveCases(plural);\n return ctx.plural(cases.reduce((messages, c) => [...messages, formatMessageParts(ctx, c)], []));\n } else {\n return formatMessageParts(ctx, body);\n }\n}\nfunction formatMessageParts(ctx, node) {\n const static_ = resolveStatic(node);\n if (static_ != null) {\n return ctx.type === 'text' ? static_ : ctx.normalize([static_]);\n } else {\n const messages = resolveItems(node).reduce((acm, c) => [...acm, formatMessagePart(ctx, c)], []);\n return ctx.normalize(messages);\n }\n}\nfunction formatMessagePart(ctx, node) {\n const type = resolveType(node);\n switch (type) {\n case 3 /* NodeTypes.Text */:\n {\n return resolveValue$1(node, type);\n }\n case 9 /* NodeTypes.Literal */:\n {\n return resolveValue$1(node, type);\n }\n case 4 /* NodeTypes.Named */:\n {\n const named = node;\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.hasOwn)(named, 'k') && named.k) {\n return ctx.interpolate(ctx.named(named.k));\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.hasOwn)(named, 'key') && named.key) {\n return ctx.interpolate(ctx.named(named.key));\n }\n throw createUnhandleNodeError(type);\n }\n case 5 /* NodeTypes.List */:\n {\n const list = node;\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.hasOwn)(list, 'i') && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(list.i)) {\n return ctx.interpolate(ctx.list(list.i));\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.hasOwn)(list, 'index') && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(list.index)) {\n return ctx.interpolate(ctx.list(list.index));\n }\n throw createUnhandleNodeError(type);\n }\n case 6 /* NodeTypes.Linked */:\n {\n const linked = node;\n const modifier = resolveLinkedModifier(linked);\n const key = resolveLinkedKey(linked);\n return ctx.linked(formatMessagePart(ctx, key), modifier ? formatMessagePart(ctx, modifier) : undefined, ctx.type);\n }\n case 7 /* NodeTypes.LinkedKey */:\n {\n return resolveValue$1(node, type);\n }\n case 8 /* NodeTypes.LinkedModifier */:\n {\n return resolveValue$1(node, type);\n }\n default:\n throw new Error(`unhandled node on format message part: ${type}`);\n }\n}\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\nfunction checkHtmlMessage(source, warnHtmlMessage) {\n if (warnHtmlMessage && (0,_intlify_message_compiler__WEBPACK_IMPORTED_MODULE_7__.detectHtmlTag)(source)) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.warn)((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.format)(WARN_MESSAGE, {\n source\n }));\n }\n}\nconst defaultOnCacheKey = message => message;\nlet compileCache = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)();\nfunction onCompileWarn(_warn) {\n if (_warn.code === _intlify_message_compiler__WEBPACK_IMPORTED_MODULE_7__.CompileWarnCodes.USE_MODULO_SYNTAX) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.warn)(`The use of named interpolation with modulo syntax is deprecated. ` + `It will be removed in v10.\\n` + `reference: https://vue-i18n.intlify.dev/guide/essentials/syntax#rails-i18n-format \\n` + `(message compiler warning message: ${_warn.message})`);\n }\n}\nfunction clearCompileCache() {\n compileCache = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)();\n}\nfunction baseCompile(message, options = {}) {\n // error detecting on compile\n let detectError = false;\n const onError = options.onError || _intlify_message_compiler__WEBPACK_IMPORTED_MODULE_7__.defaultOnError;\n options.onError = err => {\n detectError = true;\n onError(err);\n };\n // compile with mesasge-compiler\n return {\n ...(0,_intlify_message_compiler__WEBPACK_IMPORTED_MODULE_7__.baseCompile)(message, options),\n detectError\n };\n}\n/* #__NO_SIDE_EFFECTS__ */\nconst compileToFunction = (message, context) => {\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(message)) {\n throw createCoreError(CoreErrorCodes.NOT_SUPPORT_NON_STRING_MESSAGE);\n }\n // set onWarn\n if (true) {\n context.onWarn = onCompileWarn;\n }\n {\n // check HTML message\n const warnHtmlMessage = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(context.warnHtmlMessage) ? context.warnHtmlMessage : true;\n true && checkHtmlMessage(message, warnHtmlMessage);\n // check caches\n const onCacheKey = context.onCacheKey || defaultOnCacheKey;\n const cacheKey = onCacheKey(message);\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compile\n const {\n code,\n detectError\n } = baseCompile(message, context);\n // evaluate function\n const msg = new Function(`return ${code}`)();\n // if occurred compile error, don't cache\n return !detectError ? compileCache[cacheKey] = msg : msg;\n }\n};\nfunction compile(message, context) {\n // set onWarn\n if (true) {\n context.onWarn = onCompileWarn;\n }\n if (__INTLIFY_JIT_COMPILATION__ && !__INTLIFY_DROP_MESSAGE_COMPILER__ && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(message)) {\n // check HTML message\n const warnHtmlMessage = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(context.warnHtmlMessage) ? context.warnHtmlMessage : true;\n true && checkHtmlMessage(message, warnHtmlMessage);\n // check caches\n const onCacheKey = context.onCacheKey || defaultOnCacheKey;\n const cacheKey = onCacheKey(message);\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compile with JIT mode\n const {\n ast,\n detectError\n } = baseCompile(message, {\n ...context,\n location: \"development\" !== 'production',\n jit: true\n });\n // compose message function from AST\n const msg = format(ast);\n // if occurred compile error, don't cache\n return !detectError ? compileCache[cacheKey] = msg : msg;\n } else {\n if ( true && !isMessageAST(message)) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.warn)(`the message that is resolve with key '${context.key}' is not supported for jit compilation`);\n return () => message;\n }\n // AST case (passed from bundler)\n const cacheKey = message.cacheKey;\n if (cacheKey) {\n const cached = compileCache[cacheKey];\n if (cached) {\n return cached;\n }\n // compose message function from message (AST)\n return compileCache[cacheKey] = format(message);\n } else {\n return format(message);\n }\n }\n}\nconst NOOP_MESSAGE_FUNCTION = () => '';\nconst isMessageFunction = val => (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isFunction)(val);\n// implementation of `translate` function\nfunction translate(context, ...args) {\n const {\n fallbackFormat,\n postTranslation,\n unresolving,\n messageCompiler,\n fallbackLocale,\n messages\n } = context;\n const [key, options] = parseTranslateArgs(...args);\n const missingWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(options.missingWarn) ? options.missingWarn : context.missingWarn;\n const fallbackWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn;\n const escapeParameter = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(options.escapeParameter) ? options.escapeParameter : context.escapeParameter;\n const resolvedMessage = !!options.resolvedMessage;\n // prettier-ignore\n const defaultMsgOrKey = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(options.default) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(options.default) // default by function option\n ? !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(options.default) ? options.default : !messageCompiler ? () => key : key : fallbackFormat // default by `fallbackFormat` option\n ? !messageCompiler ? () => key : key : '';\n const enableDefaultMsg = fallbackFormat || defaultMsgOrKey !== '';\n const locale = getLocale(context, options);\n // escape params\n escapeParameter && escapeParams(options);\n // resolve message format\n // eslint-disable-next-line prefer-const\n let [formatScope, targetLocale, message] = !resolvedMessage ? resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) : [key, locale, messages[locale] || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)()];\n // NOTE:\n // Fix to work around `ssrTransfrom` bug in Vite.\n // https://github.com/vitejs/vite/issues/4306\n // To get around this, use temporary variables.\n // https://github.com/nuxt/framework/issues/1461#issuecomment-954606243\n let format = formatScope;\n // if you use default message, set it as message format!\n let cacheBaseKey = key;\n if (!resolvedMessage && !((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(format) || isMessageAST(format) || isMessageFunction(format))) {\n if (enableDefaultMsg) {\n format = defaultMsgOrKey;\n cacheBaseKey = format;\n }\n }\n // checking message format and target locale\n if (!resolvedMessage && (!((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(format) || isMessageAST(format) || isMessageFunction(format)) || !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(targetLocale))) {\n return unresolving ? NOT_REOSLVED : key;\n }\n // TODO: refactor\n if ( true && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(format) && context.messageCompiler == null) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.warn)(`The message format compilation is not supported in this build. ` + `Because message compiler isn't included. ` + `You need to pre-compilation all message format. ` + `So translate function return '${key}'.`);\n return key;\n }\n // setup compile error detecting\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n // compile message format\n const msg = !isMessageFunction(format) ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError) : format;\n // if occurred compile error, return the message format\n if (occurred) {\n return format;\n }\n // evaluate message with context\n const ctxOptions = getMessageContextOptions(context, targetLocale, message, options);\n const msgContext = createMessageContext(ctxOptions);\n const messaged = evaluateMessage(context, msg, msgContext);\n // if use post translation option, proceed it with handler\n let ret = postTranslation ? postTranslation(messaged, key) : messaged;\n // apply HTML sanitization for security\n if (escapeParameter && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(ret)) {\n ret = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.sanitizeTranslatedHtml)(ret);\n }\n // NOTE: experimental !!\n if (true) {\n // prettier-ignore\n const payloads = {\n timestamp: Date.now(),\n key: (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(key) ? key : isMessageFunction(format) ? format.key : '',\n locale: targetLocale || (isMessageFunction(format) ? format.locale : ''),\n format: (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(format) ? format : isMessageFunction(format) ? format.source : '',\n message: ret\n };\n payloads.meta = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.assign)({}, context.__meta, getAdditionalMeta() || {});\n translateDevTools(payloads);\n }\n return ret;\n}\nfunction escapeParams(options) {\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isArray)(options.list)) {\n options.list = options.list.map(item => (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(item) ? (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.escapeHtml)(item) : item);\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isObject)(options.named)) {\n Object.keys(options.named).forEach(key => {\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(options.named[key])) {\n options.named[key] = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.escapeHtml)(options.named[key]);\n }\n });\n }\n}\nfunction resolveMessageFormat(context, key, locale, fallbackLocale, fallbackWarn, missingWarn) {\n const {\n messages,\n onWarn,\n messageResolver: resolveValue,\n localeFallbacker\n } = context;\n const locales = localeFallbacker(context, fallbackLocale, locale); // eslint-disable-line @typescript-eslint/no-explicit-any\n let message = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)();\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'translate';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ( true && locale !== targetLocale && !isAlmostSameLocale(locale, targetLocale) && isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_TRANSLATE, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ( true && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n message = messages[targetLocale] || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)();\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ( true && _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-resolve-start';\n endTag = 'intlify-message-resolve-end';\n _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.mark && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.mark)(startTag);\n }\n if ((format = resolveValue(message, key)) === null) {\n // if null, resolve with object key path\n format = message[key]; // eslint-disable-line @typescript-eslint/no-explicit-any\n }\n // for vue-devtools timeline event\n if ( true && _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start && format) {\n emitter.emit(\"message-resolve\" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */, {\n type: \"message-resolve\" /* VueDevToolsTimelineEvents.MESSAGE_RESOLVE */,\n key,\n message: format,\n time: end - start,\n groupId: `${type}:${key}`\n });\n }\n if (startTag && endTag && _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.mark && _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.measure) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.mark)(endTag);\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.measure)('intlify message resolve', startTag, endTag);\n }\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(format) || isMessageAST(format) || isMessageFunction(format)) {\n break;\n }\n if (!isImplicitFallback(targetLocale, locales)) {\n const missingRet = handleMissing(context,\n // eslint-disable-line @typescript-eslint/no-explicit-any\n key, targetLocale, missingWarn, type);\n if (missingRet !== key) {\n format = missingRet;\n }\n }\n from = to;\n }\n return [format, targetLocale, message];\n}\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, onError) {\n const {\n messageCompiler,\n warnHtmlMessage\n } = context;\n if (isMessageFunction(format)) {\n const msg = format;\n msg.locale = msg.locale || targetLocale;\n msg.key = msg.key || key;\n return msg;\n }\n if (messageCompiler == null) {\n const msg = () => format;\n msg.locale = targetLocale;\n msg.key = key;\n return msg;\n }\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ( true && _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-compilation-start';\n endTag = 'intlify-message-compilation-end';\n _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.mark && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.mark)(startTag);\n }\n const msg = messageCompiler(format, getCompileContext(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, onError));\n // for vue-devtools timeline event\n if ( true && _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start) {\n emitter.emit(\"message-compilation\" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */, {\n type: \"message-compilation\" /* VueDevToolsTimelineEvents.MESSAGE_COMPILATION */,\n message: format,\n time: end - start,\n groupId: `${'translate'}:${key}`\n });\n }\n if (startTag && endTag && _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.mark && _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.measure) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.mark)(endTag);\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.measure)('intlify message compilation', startTag, endTag);\n }\n }\n msg.locale = targetLocale;\n msg.key = key;\n msg.source = format;\n return msg;\n}\nfunction evaluateMessage(context, msg, msgCtx) {\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ( true && _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-evaluation-start';\n endTag = 'intlify-message-evaluation-end';\n _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.mark && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.mark)(startTag);\n }\n const messaged = msg(msgCtx);\n // for vue-devtools timeline event\n if ( true && _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start) {\n emitter.emit(\"message-evaluation\" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */, {\n type: \"message-evaluation\" /* VueDevToolsTimelineEvents.MESSAGE_EVALUATION */,\n value: messaged,\n time: end - start,\n groupId: `${'translate'}:${msg.key}`\n });\n }\n if (startTag && endTag && _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.mark && _intlify_shared__WEBPACK_IMPORTED_MODULE_6__.measure) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.mark)(endTag);\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.measure)('intlify message evaluation', startTag, endTag);\n }\n }\n return messaged;\n}\n/** @internal */\nfunction parseTranslateArgs(...args) {\n const [arg1, arg2, arg3] = args;\n const options = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)();\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(arg1) && !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(arg1) && !isMessageFunction(arg1) && !isMessageAST(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n // prettier-ignore\n const key = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(arg1) ? String(arg1) : isMessageFunction(arg1) ? arg1 : arg1;\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(arg2)) {\n options.plural = arg2;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(arg2)) {\n options.default = arg2;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(arg2) && !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isEmptyObject)(arg2)) {\n options.named = arg2;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isArray)(arg2)) {\n options.list = arg2;\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(arg3)) {\n options.plural = arg3;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(arg3)) {\n options.default = arg3;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(arg3)) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.assign)(options, arg3);\n }\n return [key, options];\n}\nfunction getCompileContext(context, locale, key, source, warnHtmlMessage, onError) {\n return {\n locale,\n key,\n warnHtmlMessage,\n onError: err => {\n onError && onError(err);\n if (true) {\n const _source = getSourceForCodeFrame(source);\n const message = `Message compilation error: ${err.message}`;\n const codeFrame = err.location && _source && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.generateCodeFrame)(_source, err.location.start.offset, err.location.end.offset);\n const emitter = context.__v_emitter;\n if (emitter && _source) {\n emitter.emit(\"compile-error\" /* VueDevToolsTimelineEvents.COMPILE_ERROR */, {\n message: _source,\n error: err.message,\n start: err.location && err.location.start.offset,\n end: err.location && err.location.end.offset,\n groupId: `${'translate'}:${key}`\n });\n }\n console.error(codeFrame ? `${message}\\n${codeFrame}` : message);\n } else // removed by dead control flow\n{}\n },\n onCacheKey: source => (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.generateFormatCacheKey)(locale, key, source)\n };\n}\nfunction getSourceForCodeFrame(source) {\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(source)) {\n return source;\n } else {\n if (source.loc && source.loc.source) {\n return source.loc.source;\n }\n }\n}\nfunction getMessageContextOptions(context, locale, message, options) {\n const {\n modifiers,\n pluralRules,\n messageResolver: resolveValue,\n fallbackLocale,\n fallbackWarn,\n missingWarn,\n fallbackContext\n } = context;\n const resolveMessage = key => {\n let val = resolveValue(message, key);\n // fallback to root context\n if (val == null && fallbackContext) {\n const [,, message] = resolveMessageFormat(fallbackContext, key, locale, fallbackLocale, fallbackWarn, missingWarn);\n val = resolveValue(message, key);\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(val) || isMessageAST(val)) {\n let occurred = false;\n const onError = () => {\n occurred = true;\n };\n const msg = compileMessageFormat(context, key, locale, val, key, onError);\n return !occurred ? msg : NOOP_MESSAGE_FUNCTION;\n } else if (isMessageFunction(val)) {\n return val;\n } else {\n // TODO: should be implemented warning message\n return NOOP_MESSAGE_FUNCTION;\n }\n };\n const ctxOptions = {\n locale,\n modifiers,\n pluralRules,\n messages: resolveMessage\n };\n if (context.processor) {\n ctxOptions.processor = context.processor;\n }\n if (options.list) {\n ctxOptions.list = options.list;\n }\n if (options.named) {\n ctxOptions.named = options.named;\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(options.plural)) {\n ctxOptions.pluralIndex = options.plural;\n }\n return ctxOptions;\n}\nconst intlDefined = typeof Intl !== 'undefined';\nconst Availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n};\n\n// implementation of `datetime` function\nfunction datetime(context, ...args) {\n const {\n datetimeFormats,\n unresolving,\n fallbackLocale,\n onWarn,\n localeFallbacker\n } = context;\n const {\n __datetimeFormatters\n } = context;\n if ( true && !Availabilities.dateTimeFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_DATE));\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseDateTimeArgs(...args);\n const missingWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(options.missingWarn) ? options.missingWarn : context.missingWarn;\n const fallbackWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context,\n // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(key) || key === '') {\n return new Intl.DateTimeFormat(locale, overrides).format(value);\n }\n // resolve format\n let datetimeFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'datetime format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ( true && locale !== targetLocale && isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_DATE_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ( true && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n datetimeFormat = datetimeFormats[targetLocale] || {};\n format = datetimeFormat[key];\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(format)) break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(format) || !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isEmptyObject)(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __datetimeFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat(targetLocale, (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.assign)({}, format, overrides));\n __datetimeFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst DATETIME_FORMAT_OPTIONS_KEYS = ['localeMatcher', 'weekday', 'era', 'year', 'month', 'day', 'hour', 'minute', 'second', 'timeZoneName', 'formatMatcher', 'hour12', 'timeZone', 'dateStyle', 'timeStyle', 'calendar', 'dayPeriod', 'numberingSystem', 'hourCycle', 'fractionalSecondDigits'];\n/** @internal */\nfunction parseDateTimeArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)();\n let overrides = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)();\n let value;\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(arg1)) {\n // Only allow ISO strings - other date formats are often supported,\n // but may cause different results in different browsers.\n const matches = arg1.match(/(\\d{4}-\\d{2}-\\d{2})(T|\\s)?(.*)/);\n if (!matches) {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n // Some browsers can not parse the iso datetime separated by space,\n // this is a compromise solution by replace the 'T'/' ' with 'T'\n const dateTime = matches[3] ? matches[3].trim().startsWith('T') ? `${matches[1].trim()}${matches[3].trim()}` : `${matches[1].trim()}T${matches[3].trim()}` : matches[1].trim();\n value = new Date(dateTime);\n try {\n // This will fail if the date is not valid\n value.toISOString();\n } catch (e) {\n throw createCoreError(CoreErrorCodes.INVALID_ISO_DATE_ARGUMENT);\n }\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isDate)(arg1)) {\n if (isNaN(arg1.getTime())) {\n throw createCoreError(CoreErrorCodes.INVALID_DATE_ARGUMENT);\n }\n value = arg1;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(arg1)) {\n value = arg1;\n } else {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(arg2)) {\n options.key = arg2;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (DATETIME_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n } else {\n options[key] = arg2[key];\n }\n });\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(arg3)) {\n options.locale = arg3;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(arg3)) {\n overrides = arg3;\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearDateTimeFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__datetimeFormatters.has(id)) {\n continue;\n }\n context.__datetimeFormatters.delete(id);\n }\n}\n\n// implementation of `number` function\nfunction number(context, ...args) {\n const {\n numberFormats,\n unresolving,\n fallbackLocale,\n onWarn,\n localeFallbacker\n } = context;\n const {\n __numberFormatters\n } = context;\n if ( true && !Availabilities.numberFormat) {\n onWarn(getWarnMessage(CoreWarnCodes.CANNOT_FORMAT_NUMBER));\n return MISSING_RESOLVE_VALUE;\n }\n const [key, value, options, overrides] = parseNumberArgs(...args);\n const missingWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(options.missingWarn) ? options.missingWarn : context.missingWarn;\n const fallbackWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isBoolean)(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn;\n const part = !!options.part;\n const locale = getLocale(context, options);\n const locales = localeFallbacker(context,\n // eslint-disable-line @typescript-eslint/no-explicit-any\n fallbackLocale, locale);\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(key) || key === '') {\n return new Intl.NumberFormat(locale, overrides).format(value);\n }\n // resolve format\n let numberFormat = {};\n let targetLocale;\n let format = null;\n let from = locale;\n let to = null;\n const type = 'number format';\n for (let i = 0; i < locales.length; i++) {\n targetLocale = to = locales[i];\n if ( true && locale !== targetLocale && isTranslateFallbackWarn(fallbackWarn, key)) {\n onWarn(getWarnMessage(CoreWarnCodes.FALLBACK_TO_NUMBER_FORMAT, {\n key,\n target: targetLocale\n }));\n }\n // for vue-devtools timeline event\n if ( true && locale !== targetLocale) {\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"fallback\" /* VueDevToolsTimelineEvents.FALBACK */, {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n numberFormat = numberFormats[targetLocale] || {};\n format = numberFormat[key];\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(format)) break;\n handleMissing(context, key, targetLocale, missingWarn, type); // eslint-disable-line @typescript-eslint/no-explicit-any\n from = to;\n }\n // checking format and target locale\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(format) || !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isEmptyObject)(overrides)) {\n id = `${id}__${JSON.stringify(overrides)}`;\n }\n let formatter = __numberFormatters.get(id);\n if (!formatter) {\n formatter = new Intl.NumberFormat(targetLocale, (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.assign)({}, format, overrides));\n __numberFormatters.set(id, formatter);\n }\n return !part ? formatter.format(value) : formatter.formatToParts(value);\n}\n/** @internal */\nconst NUMBER_FORMAT_OPTIONS_KEYS = ['localeMatcher', 'style', 'currency', 'currencyDisplay', 'currencySign', 'useGrouping', 'minimumIntegerDigits', 'minimumFractionDigits', 'maximumFractionDigits', 'minimumSignificantDigits', 'maximumSignificantDigits', 'compactDisplay', 'notation', 'signDisplay', 'unit', 'unitDisplay', 'roundingMode', 'roundingPriority', 'roundingIncrement', 'trailingZeroDisplay'];\n/** @internal */\nfunction parseNumberArgs(...args) {\n const [arg1, arg2, arg3, arg4] = args;\n const options = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)();\n let overrides = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.create)();\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isNumber)(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n const value = arg1;\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(arg2)) {\n options.key = arg2;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(arg2)) {\n Object.keys(arg2).forEach(key => {\n if (NUMBER_FORMAT_OPTIONS_KEYS.includes(key)) {\n overrides[key] = arg2[key];\n } else {\n options[key] = arg2[key];\n }\n });\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isString)(arg3)) {\n options.locale = arg3;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(arg3)) {\n overrides = arg3;\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_6__.isPlainObject)(arg4)) {\n overrides = arg4;\n }\n return [options.key || '', value, options, overrides];\n}\n/** @internal */\nfunction clearNumberFormat(ctx, locale, format) {\n const context = ctx;\n for (const key in format) {\n const id = `${locale}__${key}`;\n if (!context.__numberFormatters.has(id)) {\n continue;\n }\n context.__numberFormatters.delete(id);\n }\n}\n{\n initFeatureFlags();\n}\n\n\n//# sourceURL=webpack://jandl/./node_modules/@intlify/core-base/dist/core-base.mjs?\n}");
-
-/***/ }),
-
-/***/ "./node_modules/@intlify/message-compiler/dist/message-compiler.esm-browser.js":
-/*!*************************************************************************************!*\
- !*** ./node_modules/@intlify/message-compiler/dist/message-compiler.esm-browser.js ***!
- \*************************************************************************************/
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CompileErrorCodes: function() { return /* binding */ CompileErrorCodes; },\n/* harmony export */ CompileWarnCodes: function() { return /* binding */ CompileWarnCodes; },\n/* harmony export */ ERROR_DOMAIN: function() { return /* binding */ ERROR_DOMAIN$2; },\n/* harmony export */ LOCATION_STUB: function() { return /* binding */ LOCATION_STUB; },\n/* harmony export */ baseCompile: function() { return /* binding */ baseCompile; },\n/* harmony export */ createCompileError: function() { return /* binding */ createCompileError; },\n/* harmony export */ createCompileWarn: function() { return /* binding */ createCompileWarn; },\n/* harmony export */ createLocation: function() { return /* binding */ createLocation; },\n/* harmony export */ createParser: function() { return /* binding */ createParser; },\n/* harmony export */ createPosition: function() { return /* binding */ createPosition; },\n/* harmony export */ defaultOnError: function() { return /* binding */ defaultOnError; },\n/* harmony export */ detectHtmlTag: function() { return /* binding */ detectHtmlTag; },\n/* harmony export */ errorMessages: function() { return /* binding */ errorMessages; },\n/* harmony export */ warnMessages: function() { return /* binding */ warnMessages; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ \"./node_modules/core-js/modules/esnext.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var core_js_modules_esnext_iterator_reduce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.iterator.reduce.js */ \"./node_modules/core-js/modules/esnext.iterator.reduce.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_reduce_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_reduce_js__WEBPACK_IMPORTED_MODULE_5__);\n\n\n\n\n\n\n/*!\n * message-compiler v9.14.5\n * (c) 2025 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst LOCATION_STUB = {\n start: {\n line: 1,\n column: 1,\n offset: 0\n },\n end: {\n line: 1,\n column: 1,\n offset: 0\n }\n};\nfunction createPosition(line, column, offset) {\n return {\n line,\n column,\n offset\n };\n}\nfunction createLocation(start, end, source) {\n const loc = {\n start,\n end\n };\n if (source != null) {\n loc.source = source;\n }\n return loc;\n}\n\n/**\n * Original Utilities\n * written by kazuya kawaguchi\n */\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\n/* eslint-disable */\nfunction format(message, ...args) {\n if (args.length === 1 && isObject(args[0])) {\n args = args[0];\n }\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n return message.replace(RE_ARGS, (match, identifier) => {\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\n });\n}\nconst assign = Object.assign;\nconst isString = val => typeof val === 'string';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isObject = val => val !== null && typeof val === 'object';\nfunction join(items, separator = '') {\n return items.reduce((str, item, index) => index === 0 ? str + item : str + separator + item, '');\n}\nconst CompileWarnCodes = {\n USE_MODULO_SYNTAX: 1,\n __EXTEND_POINT__: 2\n};\n/** @internal */\nconst warnMessages = {\n [CompileWarnCodes.USE_MODULO_SYNTAX]: `Use modulo before '{{0}}'.`\n};\nfunction createCompileWarn(code, loc, ...args) {\n const msg = format(warnMessages[code] || '', ...(args || []));\n const message = {\n message: String(msg),\n code\n };\n if (loc) {\n message.location = loc;\n }\n return message;\n}\nconst CompileErrorCodes = {\n // tokenizer error codes\n EXPECTED_TOKEN: 1,\n INVALID_TOKEN_IN_PLACEHOLDER: 2,\n UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER: 3,\n UNKNOWN_ESCAPE_SEQUENCE: 4,\n INVALID_UNICODE_ESCAPE_SEQUENCE: 5,\n UNBALANCED_CLOSING_BRACE: 6,\n UNTERMINATED_CLOSING_BRACE: 7,\n EMPTY_PLACEHOLDER: 8,\n NOT_ALLOW_NEST_PLACEHOLDER: 9,\n INVALID_LINKED_FORMAT: 10,\n // parser error codes\n MUST_HAVE_MESSAGES_IN_PLURAL: 11,\n UNEXPECTED_EMPTY_LINKED_MODIFIER: 12,\n UNEXPECTED_EMPTY_LINKED_KEY: 13,\n UNEXPECTED_LEXICAL_ANALYSIS: 14,\n // generator error codes\n UNHANDLED_CODEGEN_NODE_TYPE: 15,\n // minifier error codes\n UNHANDLED_MINIFIER_NODE_TYPE: 16,\n // Special value for higher-order compilers to pick up the last code\n // to avoid collision of error codes. This should always be kept as the last\n // item.\n __EXTEND_POINT__: 17\n};\n/** @internal */\nconst errorMessages = {\n // tokenizer error messages\n [CompileErrorCodes.EXPECTED_TOKEN]: `Expected token: '{0}'`,\n [CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER]: `Invalid token in placeholder: '{0}'`,\n [CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]: `Unterminated single quote in placeholder`,\n [CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE]: `Unknown escape sequence: \\\\{0}`,\n [CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE]: `Invalid unicode escape sequence: {0}`,\n [CompileErrorCodes.UNBALANCED_CLOSING_BRACE]: `Unbalanced closing brace`,\n [CompileErrorCodes.UNTERMINATED_CLOSING_BRACE]: `Unterminated closing brace`,\n [CompileErrorCodes.EMPTY_PLACEHOLDER]: `Empty placeholder`,\n [CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER]: `Not allowed nest placeholder`,\n [CompileErrorCodes.INVALID_LINKED_FORMAT]: `Invalid linked format`,\n // parser error messages\n [CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL]: `Plural must have messages`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER]: `Unexpected empty linked modifier`,\n [CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY]: `Unexpected empty linked key`,\n [CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS]: `Unexpected lexical analysis in token: '{0}'`,\n // generator error messages\n [CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE]: `unhandled codegen node type: '{0}'`,\n // minimizer error messages\n [CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE]: `unhandled mimifier node type: '{0}'`\n};\nfunction createCompileError(code, loc, options = {}) {\n const {\n domain,\n messages,\n args\n } = options;\n const msg = format((messages || errorMessages)[code] || '', ...(args || []));\n const error = new SyntaxError(String(msg));\n error.code = code;\n if (loc) {\n error.location = loc;\n }\n error.domain = domain;\n return error;\n}\n/** @internal */\nfunction defaultOnError(error) {\n throw error;\n}\n\n// eslint-disable-next-line no-useless-escape\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nconst detectHtmlTag = source => RE_HTML_TAG.test(source);\nconst CHAR_SP = ' ';\nconst CHAR_CR = '\\r';\nconst CHAR_LF = '\\n';\nconst CHAR_LS = String.fromCharCode(0x2028);\nconst CHAR_PS = String.fromCharCode(0x2029);\nfunction createScanner(str) {\n const _buf = str;\n let _index = 0;\n let _line = 1;\n let _column = 1;\n let _peekOffset = 0;\n const isCRLF = index => _buf[index] === CHAR_CR && _buf[index + 1] === CHAR_LF;\n const isLF = index => _buf[index] === CHAR_LF;\n const isPS = index => _buf[index] === CHAR_PS;\n const isLS = index => _buf[index] === CHAR_LS;\n const isLineEnd = index => isCRLF(index) || isLF(index) || isPS(index) || isLS(index);\n const index = () => _index;\n const line = () => _line;\n const column = () => _column;\n const peekOffset = () => _peekOffset;\n const charAt = offset => isCRLF(offset) || isPS(offset) || isLS(offset) ? CHAR_LF : _buf[offset];\n const currentChar = () => charAt(_index);\n const currentPeek = () => charAt(_index + _peekOffset);\n function next() {\n _peekOffset = 0;\n if (isLineEnd(_index)) {\n _line++;\n _column = 0;\n }\n if (isCRLF(_index)) {\n _index++;\n }\n _index++;\n _column++;\n return _buf[_index];\n }\n function peek() {\n if (isCRLF(_index + _peekOffset)) {\n _peekOffset++;\n }\n _peekOffset++;\n return _buf[_index + _peekOffset];\n }\n function reset() {\n _index = 0;\n _line = 1;\n _column = 1;\n _peekOffset = 0;\n }\n function resetPeek(offset = 0) {\n _peekOffset = offset;\n }\n function skipToPeek() {\n const target = _index + _peekOffset;\n // eslint-disable-next-line no-unmodified-loop-condition\n while (target !== _index) {\n next();\n }\n _peekOffset = 0;\n }\n return {\n index,\n line,\n column,\n peekOffset,\n charAt,\n currentChar,\n currentPeek,\n next,\n peek,\n reset,\n resetPeek,\n skipToPeek\n };\n}\nconst EOF = undefined;\nconst DOT = '.';\nconst LITERAL_DELIMITER = \"'\";\nconst ERROR_DOMAIN$3 = 'tokenizer';\nfunction createTokenizer(source, options = {}) {\n const location = options.location !== false;\n const _scnr = createScanner(source);\n const currentOffset = () => _scnr.index();\n const currentPosition = () => createPosition(_scnr.line(), _scnr.column(), _scnr.index());\n const _initLoc = currentPosition();\n const _initOffset = currentOffset();\n const _context = {\n currentType: 14 /* TokenTypes.EOF */,\n offset: _initOffset,\n startLoc: _initLoc,\n endLoc: _initLoc,\n lastType: 14 /* TokenTypes.EOF */,\n lastOffset: _initOffset,\n lastStartLoc: _initLoc,\n lastEndLoc: _initLoc,\n braceNest: 0,\n inLinked: false,\n text: ''\n };\n const context = () => _context;\n const {\n onError\n } = options;\n function emitError(code, pos, offset, ...args) {\n const ctx = context();\n pos.column += offset;\n pos.offset += offset;\n if (onError) {\n const loc = location ? createLocation(ctx.startLoc, pos) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$3,\n args\n });\n onError(err);\n }\n }\n function getToken(context, type, value) {\n context.endLoc = currentPosition();\n context.currentType = type;\n const token = {\n type\n };\n if (location) {\n token.loc = createLocation(context.startLoc, context.endLoc);\n }\n if (value != null) {\n token.value = value;\n }\n return token;\n }\n const getEndToken = context => getToken(context, 14 /* TokenTypes.EOF */);\n function eat(scnr, ch) {\n if (scnr.currentChar() === ch) {\n scnr.next();\n return ch;\n } else {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n return '';\n }\n }\n function peekSpaces(scnr) {\n let buf = '';\n while (scnr.currentPeek() === CHAR_SP || scnr.currentPeek() === CHAR_LF) {\n buf += scnr.currentPeek();\n scnr.peek();\n }\n return buf;\n }\n function skipSpaces(scnr) {\n const buf = peekSpaces(scnr);\n scnr.skipToPeek();\n return buf;\n }\n function isIdentifierStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return cc >= 97 && cc <= 122 ||\n // a-z\n cc >= 65 && cc <= 90 ||\n // A-Z\n cc === 95 // _\n ;\n }\n function isNumberStart(ch) {\n if (ch === EOF) {\n return false;\n }\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function isNamedIdentifierStart(scnr, context) {\n const {\n currentType\n } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isListIdentifierStart(scnr, context) {\n const {\n currentType\n } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ch = scnr.currentPeek() === '-' ? scnr.peek() : scnr.currentPeek();\n const ret = isNumberStart(ch);\n scnr.resetPeek();\n return ret;\n }\n function isLiteralStart(scnr, context) {\n const {\n currentType\n } = context;\n if (currentType !== 2 /* TokenTypes.BraceLeft */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === LITERAL_DELIMITER;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDotStart(scnr, context) {\n const {\n currentType\n } = context;\n if (currentType !== 8 /* TokenTypes.LinkedAlias */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \".\" /* TokenChars.LinkedDot */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedModifierStart(scnr, context) {\n const {\n currentType\n } = context;\n if (currentType !== 9 /* TokenTypes.LinkedDot */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = isIdentifierStart(scnr.currentPeek());\n scnr.resetPeek();\n return ret;\n }\n function isLinkedDelimiterStart(scnr, context) {\n const {\n currentType\n } = context;\n if (!(currentType === 8 /* TokenTypes.LinkedAlias */ || currentType === 12 /* TokenTypes.LinkedModifier */)) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \":\" /* TokenChars.LinkedDelimiter */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedReferStart(scnr, context) {\n const {\n currentType\n } = context;\n if (currentType !== 10 /* TokenTypes.LinkedDelimiter */) {\n return false;\n }\n const fn = () => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return isIdentifierStart(scnr.peek());\n } else if (ch === \"@\" /* TokenChars.LinkedAlias */ || ch === \"%\" /* TokenChars.Modulo */ || ch === \"|\" /* TokenChars.Pipe */ || ch === \":\" /* TokenChars.LinkedDelimiter */ || ch === \".\" /* TokenChars.LinkedDot */ || ch === CHAR_SP || !ch) {\n return false;\n } else if (ch === CHAR_LF) {\n scnr.peek();\n return fn();\n } else {\n // other characters\n return isTextStart(scnr, false);\n }\n };\n const ret = fn();\n scnr.resetPeek();\n return ret;\n }\n function isPluralStart(scnr) {\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"|\" /* TokenChars.Pipe */;\n scnr.resetPeek();\n return ret;\n }\n function detectModuloStart(scnr) {\n const spaces = peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"%\" /* TokenChars.Modulo */ && scnr.peek() === \"{\" /* TokenChars.BraceLeft */;\n scnr.resetPeek();\n return {\n isModulo: ret,\n hasSpace: spaces.length > 0\n };\n }\n function isTextStart(scnr, reset = true) {\n const fn = (hasSpace = false, prev = '', detectModulo = false) => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n return prev === \"%\" /* TokenChars.Modulo */ ? false : hasSpace;\n } else if (ch === \"@\" /* TokenChars.LinkedAlias */ || !ch) {\n return prev === \"%\" /* TokenChars.Modulo */ ? true : hasSpace;\n } else if (ch === \"%\" /* TokenChars.Modulo */) {\n scnr.peek();\n return fn(hasSpace, \"%\" /* TokenChars.Modulo */, true);\n } else if (ch === \"|\" /* TokenChars.Pipe */) {\n return prev === \"%\" /* TokenChars.Modulo */ || detectModulo ? true : !(prev === CHAR_SP || prev === CHAR_LF);\n } else if (ch === CHAR_SP) {\n scnr.peek();\n return fn(true, CHAR_SP, detectModulo);\n } else if (ch === CHAR_LF) {\n scnr.peek();\n return fn(true, CHAR_LF, detectModulo);\n } else {\n return true;\n }\n };\n const ret = fn();\n reset && scnr.resetPeek();\n return ret;\n }\n function takeChar(scnr, fn) {\n const ch = scnr.currentChar();\n if (ch === EOF) {\n return EOF;\n }\n if (fn(ch)) {\n scnr.next();\n return ch;\n }\n return null;\n }\n function isIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return cc >= 97 && cc <= 122 ||\n // a-z\n cc >= 65 && cc <= 90 ||\n // A-Z\n cc >= 48 && cc <= 57 ||\n // 0-9\n cc === 95 ||\n // _\n cc === 36 // $\n ;\n }\n function takeIdentifierChar(scnr) {\n return takeChar(scnr, isIdentifier);\n }\n function isNamedIdentifier(ch) {\n const cc = ch.charCodeAt(0);\n return cc >= 97 && cc <= 122 ||\n // a-z\n cc >= 65 && cc <= 90 ||\n // A-Z\n cc >= 48 && cc <= 57 ||\n // 0-9\n cc === 95 ||\n // _\n cc === 36 ||\n // $\n cc === 45 // -\n ;\n }\n function takeNamedIdentifierChar(scnr) {\n return takeChar(scnr, isNamedIdentifier);\n }\n function isDigit(ch) {\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n }\n function takeDigit(scnr) {\n return takeChar(scnr, isDigit);\n }\n function isHexDigit(ch) {\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57 ||\n // 0-9\n cc >= 65 && cc <= 70 ||\n // A-F\n cc >= 97 && cc <= 102; // a-f\n }\n function takeHexDigit(scnr) {\n return takeChar(scnr, isHexDigit);\n }\n function getDigits(scnr) {\n let ch = '';\n let num = '';\n while (ch = takeDigit(scnr)) {\n num += ch;\n }\n return num;\n }\n function readModulo(scnr) {\n skipSpaces(scnr);\n const ch = scnr.currentChar();\n if (ch !== \"%\" /* TokenChars.Modulo */) {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n }\n scnr.next();\n return \"%\" /* TokenChars.Modulo */;\n }\n function readText(scnr) {\n let buf = '';\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ || ch === \"}\" /* TokenChars.BraceRight */ || ch === \"@\" /* TokenChars.LinkedAlias */ || ch === \"|\" /* TokenChars.Pipe */ || !ch) {\n break;\n } else if (ch === \"%\" /* TokenChars.Modulo */) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n } else {\n break;\n }\n } else if (ch === CHAR_SP || ch === CHAR_LF) {\n if (isTextStart(scnr)) {\n buf += ch;\n scnr.next();\n } else if (isPluralStart(scnr)) {\n break;\n } else {\n buf += ch;\n scnr.next();\n }\n } else {\n buf += ch;\n scnr.next();\n }\n }\n return buf;\n }\n function readNamedIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let name = '';\n while (ch = takeNamedIdentifierChar(scnr)) {\n name += ch;\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return name;\n }\n function readListIdentifier(scnr) {\n skipSpaces(scnr);\n let value = '';\n if (scnr.currentChar() === '-') {\n scnr.next();\n value += `-${getDigits(scnr)}`;\n } else {\n value += getDigits(scnr);\n }\n if (scnr.currentChar() === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n return value;\n }\n function isLiteral(ch) {\n return ch !== LITERAL_DELIMITER && ch !== CHAR_LF;\n }\n function readLiteral(scnr) {\n skipSpaces(scnr);\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n let ch = '';\n let literal = '';\n while (ch = takeChar(scnr, isLiteral)) {\n if (ch === '\\\\') {\n literal += readEscapeSequence(scnr);\n } else {\n literal += ch;\n }\n }\n const current = scnr.currentChar();\n if (current === CHAR_LF || current === EOF) {\n emitError(CompileErrorCodes.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER, currentPosition(), 0);\n // TODO: Is it correct really?\n if (current === CHAR_LF) {\n scnr.next();\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n }\n return literal;\n }\n // eslint-disable-next-line no-useless-escape\n eat(scnr, `\\'`);\n return literal;\n }\n function readEscapeSequence(scnr) {\n const ch = scnr.currentChar();\n switch (ch) {\n case '\\\\':\n case `\\'`:\n // eslint-disable-line no-useless-escape\n scnr.next();\n return `\\\\${ch}`;\n case 'u':\n return readUnicodeEscapeSequence(scnr, ch, 4);\n case 'U':\n return readUnicodeEscapeSequence(scnr, ch, 6);\n default:\n emitError(CompileErrorCodes.UNKNOWN_ESCAPE_SEQUENCE, currentPosition(), 0, ch);\n return '';\n }\n }\n function readUnicodeEscapeSequence(scnr, unicode, digits) {\n eat(scnr, unicode);\n let sequence = '';\n for (let i = 0; i < digits; i++) {\n const ch = takeHexDigit(scnr);\n if (!ch) {\n emitError(CompileErrorCodes.INVALID_UNICODE_ESCAPE_SEQUENCE, currentPosition(), 0, `\\\\${unicode}${sequence}${scnr.currentChar()}`);\n break;\n }\n sequence += ch;\n }\n return `\\\\${unicode}${sequence}`;\n }\n function isInvalidIdentifier(ch) {\n return ch !== \"{\" /* TokenChars.BraceLeft */ && ch !== \"}\" /* TokenChars.BraceRight */ && ch !== CHAR_SP && ch !== CHAR_LF;\n }\n function readInvalidIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let identifiers = '';\n while (ch = takeChar(scnr, isInvalidIdentifier)) {\n identifiers += ch;\n }\n return identifiers;\n }\n function readLinkedModifier(scnr) {\n let ch = '';\n let name = '';\n while (ch = takeIdentifierChar(scnr)) {\n name += ch;\n }\n return name;\n }\n function readLinkedRefer(scnr) {\n const fn = buf => {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* TokenChars.BraceLeft */ || ch === \"%\" /* TokenChars.Modulo */ || ch === \"@\" /* TokenChars.LinkedAlias */ || ch === \"|\" /* TokenChars.Pipe */ || ch === \"(\" /* TokenChars.ParenLeft */ || ch === \")\" /* TokenChars.ParenRight */ || !ch) {\n return buf;\n } else if (ch === CHAR_SP) {\n return buf;\n } else if (ch === CHAR_LF || ch === DOT) {\n buf += ch;\n scnr.next();\n return fn(buf);\n } else {\n buf += ch;\n scnr.next();\n return fn(buf);\n }\n };\n return fn('');\n }\n function readPlural(scnr) {\n skipSpaces(scnr);\n const plural = eat(scnr, \"|\" /* TokenChars.Pipe */);\n skipSpaces(scnr);\n return plural;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInPlaceholder(scnr, context) {\n let token = null;\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n if (context.braceNest >= 1) {\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 2 /* TokenTypes.BraceLeft */, \"{\" /* TokenChars.BraceLeft */);\n skipSpaces(scnr);\n context.braceNest++;\n return token;\n case \"}\" /* TokenChars.BraceRight */:\n if (context.braceNest > 0 && context.currentType === 2 /* TokenTypes.BraceLeft */) {\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n context.braceNest--;\n context.braceNest > 0 && skipSpaces(scnr);\n if (context.inLinked && context.braceNest === 0) {\n context.inLinked = false;\n }\n return token;\n case \"@\" /* TokenChars.LinkedAlias */:\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = readTokenInLinked(scnr, context) || getEndToken(context);\n context.braceNest = 0;\n return token;\n default:\n {\n let validNamedIdentifier = true;\n let validListIdentifier = true;\n let validLiteral = true;\n if (isPluralStart(scnr)) {\n if (context.braceNest > 0) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n }\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (context.braceNest > 0 && (context.currentType === 5 /* TokenTypes.Named */ || context.currentType === 6 /* TokenTypes.List */ || context.currentType === 7 /* TokenTypes.Literal */)) {\n emitError(CompileErrorCodes.UNTERMINATED_CLOSING_BRACE, currentPosition(), 0);\n context.braceNest = 0;\n return readToken(scnr, context);\n }\n if (validNamedIdentifier = isNamedIdentifierStart(scnr, context)) {\n token = getToken(context, 5 /* TokenTypes.Named */, readNamedIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if (validListIdentifier = isListIdentifierStart(scnr, context)) {\n token = getToken(context, 6 /* TokenTypes.List */, readListIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if (validLiteral = isLiteralStart(scnr, context)) {\n token = getToken(context, 7 /* TokenTypes.Literal */, readLiteral(scnr));\n skipSpaces(scnr);\n return token;\n }\n if (!validNamedIdentifier && !validListIdentifier && !validLiteral) {\n // TODO: we should be re-designed invalid cases, when we will extend message syntax near the future ...\n token = getToken(context, 13 /* TokenTypes.InvalidPlace */, readInvalidIdentifier(scnr));\n emitError(CompileErrorCodes.INVALID_TOKEN_IN_PLACEHOLDER, currentPosition(), 0, token.value);\n skipSpaces(scnr);\n return token;\n }\n break;\n }\n }\n return token;\n }\n // TODO: We need refactoring of token parsing ...\n function readTokenInLinked(scnr, context) {\n const {\n currentType\n } = context;\n let token = null;\n const ch = scnr.currentChar();\n if ((currentType === 8 /* TokenTypes.LinkedAlias */ || currentType === 9 /* TokenTypes.LinkedDot */ || currentType === 12 /* TokenTypes.LinkedModifier */ || currentType === 10 /* TokenTypes.LinkedDelimiter */) && (ch === CHAR_LF || ch === CHAR_SP)) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n switch (ch) {\n case \"@\" /* TokenChars.LinkedAlias */:\n scnr.next();\n token = getToken(context, 8 /* TokenTypes.LinkedAlias */, \"@\" /* TokenChars.LinkedAlias */);\n context.inLinked = true;\n return token;\n case \".\" /* TokenChars.LinkedDot */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 9 /* TokenTypes.LinkedDot */, \".\" /* TokenChars.LinkedDot */);\n case \":\" /* TokenChars.LinkedDelimiter */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 10 /* TokenTypes.LinkedDelimiter */, \":\" /* TokenChars.LinkedDelimiter */);\n default:\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n if (isLinkedDotStart(scnr, context) || isLinkedDelimiterStart(scnr, context)) {\n skipSpaces(scnr);\n return readTokenInLinked(scnr, context);\n }\n if (isLinkedModifierStart(scnr, context)) {\n skipSpaces(scnr);\n return getToken(context, 12 /* TokenTypes.LinkedModifier */, readLinkedModifier(scnr));\n }\n if (isLinkedReferStart(scnr, context)) {\n skipSpaces(scnr);\n if (ch === \"{\" /* TokenChars.BraceLeft */) {\n // scan the placeholder\n return readTokenInPlaceholder(scnr, context) || token;\n } else {\n return getToken(context, 11 /* TokenTypes.LinkedKey */, readLinkedRefer(scnr));\n }\n }\n if (currentType === 8 /* TokenTypes.LinkedAlias */) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n context.braceNest = 0;\n context.inLinked = false;\n return readToken(scnr, context);\n }\n }\n // TODO: We need refactoring of token parsing ...\n function readToken(scnr, context) {\n let token = {\n type: 14 /* TokenTypes.EOF */\n };\n if (context.braceNest > 0) {\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n }\n if (context.inLinked) {\n return readTokenInLinked(scnr, context) || getEndToken(context);\n }\n const ch = scnr.currentChar();\n switch (ch) {\n case \"{\" /* TokenChars.BraceLeft */:\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n case \"}\" /* TokenChars.BraceRight */:\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\n scnr.next();\n return getToken(context, 3 /* TokenTypes.BraceRight */, \"}\" /* TokenChars.BraceRight */);\n case \"@\" /* TokenChars.LinkedAlias */:\n return readTokenInLinked(scnr, context) || getEndToken(context);\n default:\n {\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* TokenTypes.Pipe */, readPlural(scnr));\n // reset\n context.braceNest = 0;\n context.inLinked = false;\n return token;\n }\n const {\n isModulo,\n hasSpace\n } = detectModuloStart(scnr);\n if (isModulo) {\n return hasSpace ? getToken(context, 0 /* TokenTypes.Text */, readText(scnr)) : getToken(context, 4 /* TokenTypes.Modulo */, readModulo(scnr));\n }\n if (isTextStart(scnr)) {\n return getToken(context, 0 /* TokenTypes.Text */, readText(scnr));\n }\n break;\n }\n }\n return token;\n }\n function nextToken() {\n const {\n currentType,\n offset,\n startLoc,\n endLoc\n } = _context;\n _context.lastType = currentType;\n _context.lastOffset = offset;\n _context.lastStartLoc = startLoc;\n _context.lastEndLoc = endLoc;\n _context.offset = currentOffset();\n _context.startLoc = currentPosition();\n if (_scnr.currentChar() === EOF) {\n return getToken(_context, 14 /* TokenTypes.EOF */);\n }\n return readToken(_scnr, _context);\n }\n return {\n nextToken,\n currentOffset,\n currentPosition,\n context\n };\n}\nconst ERROR_DOMAIN$2 = 'parser';\n// Backslash backslash, backslash quote, uHHHH, UHHHHHH.\nconst KNOWN_ESCAPES = /(?:\\\\\\\\|\\\\'|\\\\u([0-9a-fA-F]{4})|\\\\U([0-9a-fA-F]{6}))/g;\nfunction fromEscapeSequence(match, codePoint4, codePoint6) {\n switch (match) {\n case `\\\\\\\\`:\n return `\\\\`;\n // eslint-disable-next-line no-useless-escape\n case `\\\\\\'`:\n // eslint-disable-next-line no-useless-escape\n return `\\'`;\n default:\n {\n const codePoint = parseInt(codePoint4 || codePoint6, 16);\n if (codePoint <= 0xd7ff || codePoint >= 0xe000) {\n return String.fromCodePoint(codePoint);\n }\n // invalid ...\n // Replace them with U+FFFD REPLACEMENT CHARACTER.\n return '�';\n }\n }\n}\nfunction createParser(options = {}) {\n const location = options.location !== false;\n const {\n onError,\n onWarn\n } = options;\n function emitError(tokenzer, code, start, offset, ...args) {\n const end = tokenzer.currentPosition();\n end.offset += offset;\n end.column += offset;\n if (onError) {\n const loc = location ? createLocation(start, end) : null;\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$2,\n args\n });\n onError(err);\n }\n }\n function emitWarn(tokenzer, code, start, offset, ...args) {\n const end = tokenzer.currentPosition();\n end.offset += offset;\n end.column += offset;\n if (onWarn) {\n const loc = location ? createLocation(start, end) : null;\n onWarn(createCompileWarn(code, loc, args));\n }\n }\n function startNode(type, offset, loc) {\n const node = {\n type\n };\n if (location) {\n node.start = offset;\n node.end = offset;\n node.loc = {\n start: loc,\n end: loc\n };\n }\n return node;\n }\n function endNode(node, offset, pos, type) {\n if (type) {\n node.type = type;\n }\n if (location) {\n node.end = offset;\n if (node.loc) {\n node.loc.end = pos;\n }\n }\n }\n function parseText(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(3 /* NodeTypes.Text */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseList(tokenizer, index) {\n const context = tokenizer.context();\n const {\n lastOffset: offset,\n lastStartLoc: loc\n } = context; // get brace left loc\n const node = startNode(5 /* NodeTypes.List */, offset, loc);\n node.index = parseInt(index, 10);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseNamed(tokenizer, key, modulo) {\n const context = tokenizer.context();\n const {\n lastOffset: offset,\n lastStartLoc: loc\n } = context; // get brace left loc\n const node = startNode(4 /* NodeTypes.Named */, offset, loc);\n node.key = key;\n if (modulo === true) {\n node.modulo = true;\n }\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLiteral(tokenizer, value) {\n const context = tokenizer.context();\n const {\n lastOffset: offset,\n lastStartLoc: loc\n } = context; // get brace left loc\n const node = startNode(9 /* NodeTypes.Literal */, offset, loc);\n node.value = value.replace(KNOWN_ESCAPES, fromEscapeSequence);\n tokenizer.nextToken(); // skip brach right\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinkedModifier(tokenizer) {\n const token = tokenizer.nextToken();\n const context = tokenizer.context();\n const {\n lastOffset: offset,\n lastStartLoc: loc\n } = context; // get linked dot loc\n const node = startNode(8 /* NodeTypes.LinkedModifier */, offset, loc);\n if (token.type !== 12 /* TokenTypes.LinkedModifier */) {\n // empty modifier\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_MODIFIER, context.lastStartLoc, 0);\n node.value = '';\n endNode(node, offset, loc);\n return {\n nextConsumeToken: token,\n node\n };\n }\n // check token\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.value = token.value || '';\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node\n };\n }\n function parseLinkedKey(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(7 /* NodeTypes.LinkedKey */, context.offset, context.startLoc);\n node.value = value;\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseLinked(tokenizer) {\n const context = tokenizer.context();\n const linkedNode = startNode(6 /* NodeTypes.Linked */, context.offset, context.startLoc);\n let token = tokenizer.nextToken();\n if (token.type === 9 /* TokenTypes.LinkedDot */) {\n const parsed = parseLinkedModifier(tokenizer);\n linkedNode.modifier = parsed.node;\n token = parsed.nextConsumeToken || tokenizer.nextToken();\n }\n // asset check token\n if (token.type !== 10 /* TokenTypes.LinkedDelimiter */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n token = tokenizer.nextToken();\n // skip brace left\n if (token.type === 2 /* TokenTypes.BraceLeft */) {\n token = tokenizer.nextToken();\n }\n switch (token.type) {\n case 11 /* TokenTypes.LinkedKey */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLinkedKey(tokenizer, token.value || '');\n break;\n case 5 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseNamed(tokenizer, token.value || '');\n break;\n case 6 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseList(tokenizer, token.value || '');\n break;\n case 7 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n linkedNode.key = parseLiteral(tokenizer, token.value || '');\n break;\n default:\n {\n // empty key\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\n const nextContext = tokenizer.context();\n const emptyLinkedKeyNode = startNode(7 /* NodeTypes.LinkedKey */, nextContext.offset, nextContext.startLoc);\n emptyLinkedKeyNode.value = '';\n endNode(emptyLinkedKeyNode, nextContext.offset, nextContext.startLoc);\n linkedNode.key = emptyLinkedKeyNode;\n endNode(linkedNode, nextContext.offset, nextContext.startLoc);\n return {\n nextConsumeToken: token,\n node: linkedNode\n };\n }\n }\n endNode(linkedNode, tokenizer.currentOffset(), tokenizer.currentPosition());\n return {\n node: linkedNode\n };\n }\n function parseMessage(tokenizer) {\n const context = tokenizer.context();\n const startOffset = context.currentType === 1 /* TokenTypes.Pipe */ ? tokenizer.currentOffset() : context.offset;\n const startLoc = context.currentType === 1 /* TokenTypes.Pipe */ ? context.endLoc : context.startLoc;\n const node = startNode(2 /* NodeTypes.Message */, startOffset, startLoc);\n node.items = [];\n let nextToken = null;\n let modulo = null;\n do {\n const token = nextToken || tokenizer.nextToken();\n nextToken = null;\n switch (token.type) {\n case 0 /* TokenTypes.Text */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseText(tokenizer, token.value || ''));\n break;\n case 6 /* TokenTypes.List */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseList(tokenizer, token.value || ''));\n break;\n case 4 /* TokenTypes.Modulo */:\n modulo = true;\n break;\n case 5 /* TokenTypes.Named */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseNamed(tokenizer, token.value || '', !!modulo));\n if (modulo) {\n emitWarn(tokenizer, CompileWarnCodes.USE_MODULO_SYNTAX, context.lastStartLoc, 0, getTokenCaption(token));\n modulo = null;\n }\n break;\n case 7 /* TokenTypes.Literal */:\n if (token.value == null) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, getTokenCaption(token));\n }\n node.items.push(parseLiteral(tokenizer, token.value || ''));\n break;\n case 8 /* TokenTypes.LinkedAlias */:\n {\n const parsed = parseLinked(tokenizer);\n node.items.push(parsed.node);\n nextToken = parsed.nextConsumeToken || null;\n break;\n }\n }\n } while (context.currentType !== 14 /* TokenTypes.EOF */ && context.currentType !== 1 /* TokenTypes.Pipe */);\n // adjust message node loc\n const endOffset = context.currentType === 1 /* TokenTypes.Pipe */ ? context.lastOffset : tokenizer.currentOffset();\n const endLoc = context.currentType === 1 /* TokenTypes.Pipe */ ? context.lastEndLoc : tokenizer.currentPosition();\n endNode(node, endOffset, endLoc);\n return node;\n }\n function parsePlural(tokenizer, offset, loc, msgNode) {\n const context = tokenizer.context();\n let hasEmptyMessage = msgNode.items.length === 0;\n const node = startNode(1 /* NodeTypes.Plural */, offset, loc);\n node.cases = [];\n node.cases.push(msgNode);\n do {\n const msg = parseMessage(tokenizer);\n if (!hasEmptyMessage) {\n hasEmptyMessage = msg.items.length === 0;\n }\n node.cases.push(msg);\n } while (context.currentType !== 14 /* TokenTypes.EOF */);\n if (hasEmptyMessage) {\n emitError(tokenizer, CompileErrorCodes.MUST_HAVE_MESSAGES_IN_PLURAL, loc, 0);\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n function parseResource(tokenizer) {\n const context = tokenizer.context();\n const {\n offset,\n startLoc\n } = context;\n const msgNode = parseMessage(tokenizer);\n if (context.currentType === 14 /* TokenTypes.EOF */) {\n return msgNode;\n } else {\n return parsePlural(tokenizer, offset, startLoc, msgNode);\n }\n }\n function parse(source) {\n const tokenizer = createTokenizer(source, assign({}, options));\n const context = tokenizer.context();\n const node = startNode(0 /* NodeTypes.Resource */, context.offset, context.startLoc);\n if (location && node.loc) {\n node.loc.source = source;\n }\n node.body = parseResource(tokenizer);\n if (options.onCacheKey) {\n node.cacheKey = options.onCacheKey(source);\n }\n // assert whether achieved to EOF\n if (context.currentType !== 14 /* TokenTypes.EOF */) {\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_LEXICAL_ANALYSIS, context.lastStartLoc, 0, source[context.offset] || '');\n }\n endNode(node, tokenizer.currentOffset(), tokenizer.currentPosition());\n return node;\n }\n return {\n parse\n };\n}\nfunction getTokenCaption(token) {\n if (token.type === 14 /* TokenTypes.EOF */) {\n return 'EOF';\n }\n const name = (token.value || '').replace(/\\r?\\n/gu, '\\\\n');\n return name.length > 10 ? name.slice(0, 9) + '…' : name;\n}\nfunction createTransformer(ast, options = {} // eslint-disable-line\n) {\n const _context = {\n ast,\n helpers: new Set()\n };\n const context = () => _context;\n const helper = name => {\n _context.helpers.add(name);\n return name;\n };\n return {\n context,\n helper\n };\n}\nfunction traverseNodes(nodes, transformer) {\n for (let i = 0; i < nodes.length; i++) {\n traverseNode(nodes[i], transformer);\n }\n}\nfunction traverseNode(node, transformer) {\n // TODO: if we need pre-hook of transform, should be implemented to here\n switch (node.type) {\n case 1 /* NodeTypes.Plural */:\n traverseNodes(node.cases, transformer);\n transformer.helper(\"plural\" /* HelperNameMap.PLURAL */);\n break;\n case 2 /* NodeTypes.Message */:\n traverseNodes(node.items, transformer);\n break;\n case 6 /* NodeTypes.Linked */:\n {\n const linked = node;\n traverseNode(linked.key, transformer);\n transformer.helper(\"linked\" /* HelperNameMap.LINKED */);\n transformer.helper(\"type\" /* HelperNameMap.TYPE */);\n break;\n }\n case 5 /* NodeTypes.List */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"list\" /* HelperNameMap.LIST */);\n break;\n case 4 /* NodeTypes.Named */:\n transformer.helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */);\n transformer.helper(\"named\" /* HelperNameMap.NAMED */);\n break;\n }\n // TODO: if we need post-hook of transform, should be implemented to here\n}\n// transform AST\nfunction transform(ast, options = {} // eslint-disable-line\n) {\n const transformer = createTransformer(ast);\n transformer.helper(\"normalize\" /* HelperNameMap.NORMALIZE */);\n // traverse\n ast.body && traverseNode(ast.body, transformer);\n // set meta information\n const context = transformer.context();\n ast.helpers = Array.from(context.helpers);\n}\nfunction optimize(ast) {\n const body = ast.body;\n if (body.type === 2 /* NodeTypes.Message */) {\n optimizeMessageNode(body);\n } else {\n body.cases.forEach(c => optimizeMessageNode(c));\n }\n return ast;\n}\nfunction optimizeMessageNode(message) {\n if (message.items.length === 1) {\n const item = message.items[0];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n message.static = item.value;\n delete item.value; // optimization for size\n }\n } else {\n const values = [];\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (!(item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */)) {\n break;\n }\n if (item.value == null) {\n break;\n }\n values.push(item.value);\n }\n if (values.length === message.items.length) {\n message.static = join(values);\n for (let i = 0; i < message.items.length; i++) {\n const item = message.items[i];\n if (item.type === 3 /* NodeTypes.Text */ || item.type === 9 /* NodeTypes.Literal */) {\n delete item.value; // optimization for size\n }\n }\n }\n }\n}\nconst ERROR_DOMAIN$1 = 'minifier';\n/* eslint-disable @typescript-eslint/no-explicit-any */\nfunction minify(node) {\n node.t = node.type;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */:\n {\n const resource = node;\n minify(resource.body);\n resource.b = resource.body;\n delete resource.body;\n break;\n }\n case 1 /* NodeTypes.Plural */:\n {\n const plural = node;\n const cases = plural.cases;\n for (let i = 0; i < cases.length; i++) {\n minify(cases[i]);\n }\n plural.c = cases;\n delete plural.cases;\n break;\n }\n case 2 /* NodeTypes.Message */:\n {\n const message = node;\n const items = message.items;\n for (let i = 0; i < items.length; i++) {\n minify(items[i]);\n }\n message.i = items;\n delete message.items;\n if (message.static) {\n message.s = message.static;\n delete message.static;\n }\n break;\n }\n case 3 /* NodeTypes.Text */:\n case 9 /* NodeTypes.Literal */:\n case 8 /* NodeTypes.LinkedModifier */:\n case 7 /* NodeTypes.LinkedKey */:\n {\n const valueNode = node;\n if (valueNode.value) {\n valueNode.v = valueNode.value;\n delete valueNode.value;\n }\n break;\n }\n case 6 /* NodeTypes.Linked */:\n {\n const linked = node;\n minify(linked.key);\n linked.k = linked.key;\n delete linked.key;\n if (linked.modifier) {\n minify(linked.modifier);\n linked.m = linked.modifier;\n delete linked.modifier;\n }\n break;\n }\n case 5 /* NodeTypes.List */:\n {\n const list = node;\n list.i = list.index;\n delete list.index;\n break;\n }\n case 4 /* NodeTypes.Named */:\n {\n const named = node;\n named.k = named.key;\n delete named.key;\n break;\n }\n default:\n {\n throw createCompileError(CompileErrorCodes.UNHANDLED_MINIFIER_NODE_TYPE, null, {\n domain: ERROR_DOMAIN$1,\n args: [node.type]\n });\n }\n }\n delete node.type;\n}\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// \nconst ERROR_DOMAIN = 'parser';\nfunction createCodeGenerator(ast, options) {\n const {\n sourceMap,\n filename,\n breakLineCode,\n needIndent: _needIndent\n } = options;\n const location = options.location !== false;\n const _context = {\n filename,\n code: '',\n column: 1,\n line: 1,\n offset: 0,\n map: undefined,\n breakLineCode,\n needIndent: _needIndent,\n indentLevel: 0\n };\n if (location && ast.loc) {\n _context.source = ast.loc.source;\n }\n const context = () => _context;\n function push(code, node) {\n _context.code += code;\n }\n function _newline(n, withBreakLine = true) {\n const _breakLineCode = withBreakLine ? breakLineCode : '';\n push(_needIndent ? _breakLineCode + ` `.repeat(n) : _breakLineCode);\n }\n function indent(withNewLine = true) {\n const level = ++_context.indentLevel;\n withNewLine && _newline(level);\n }\n function deindent(withNewLine = true) {\n const level = --_context.indentLevel;\n withNewLine && _newline(level);\n }\n function newline() {\n _newline(_context.indentLevel);\n }\n const helper = key => `_${key}`;\n const needIndent = () => _context.needIndent;\n return {\n context,\n push,\n indent,\n deindent,\n newline,\n helper,\n needIndent\n };\n}\nfunction generateLinkedNode(generator, node) {\n const {\n helper\n } = generator;\n generator.push(`${helper(\"linked\" /* HelperNameMap.LINKED */)}(`);\n generateNode(generator, node.key);\n if (node.modifier) {\n generator.push(`, `);\n generateNode(generator, node.modifier);\n generator.push(`, _type`);\n } else {\n generator.push(`, undefined, _type`);\n }\n generator.push(`)`);\n}\nfunction generateMessageNode(generator, node) {\n const {\n helper,\n needIndent\n } = generator;\n generator.push(`${helper(\"normalize\" /* HelperNameMap.NORMALIZE */)}([`);\n generator.indent(needIndent());\n const length = node.items.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.items[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push('])');\n}\nfunction generatePluralNode(generator, node) {\n const {\n helper,\n needIndent\n } = generator;\n if (node.cases.length > 1) {\n generator.push(`${helper(\"plural\" /* HelperNameMap.PLURAL */)}([`);\n generator.indent(needIndent());\n const length = node.cases.length;\n for (let i = 0; i < length; i++) {\n generateNode(generator, node.cases[i]);\n if (i === length - 1) {\n break;\n }\n generator.push(', ');\n }\n generator.deindent(needIndent());\n generator.push(`])`);\n }\n}\nfunction generateResource(generator, node) {\n if (node.body) {\n generateNode(generator, node.body);\n } else {\n generator.push('null');\n }\n}\nfunction generateNode(generator, node) {\n const {\n helper\n } = generator;\n switch (node.type) {\n case 0 /* NodeTypes.Resource */:\n generateResource(generator, node);\n break;\n case 1 /* NodeTypes.Plural */:\n generatePluralNode(generator, node);\n break;\n case 2 /* NodeTypes.Message */:\n generateMessageNode(generator, node);\n break;\n case 6 /* NodeTypes.Linked */:\n generateLinkedNode(generator, node);\n break;\n case 8 /* NodeTypes.LinkedModifier */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 7 /* NodeTypes.LinkedKey */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 5 /* NodeTypes.List */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"list\" /* HelperNameMap.LIST */)}(${node.index}))`, node);\n break;\n case 4 /* NodeTypes.Named */:\n generator.push(`${helper(\"interpolate\" /* HelperNameMap.INTERPOLATE */)}(${helper(\"named\" /* HelperNameMap.NAMED */)}(${JSON.stringify(node.key)}))`, node);\n break;\n case 9 /* NodeTypes.Literal */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 3 /* NodeTypes.Text */:\n generator.push(JSON.stringify(node.value), node);\n break;\n default:\n {\n throw createCompileError(CompileErrorCodes.UNHANDLED_CODEGEN_NODE_TYPE, null, {\n domain: ERROR_DOMAIN,\n args: [node.type]\n });\n }\n }\n}\n// generate code from AST\nconst generate = (ast, options = {} // eslint-disable-line\n) => {\n const mode = isString(options.mode) ? options.mode : 'normal';\n const filename = isString(options.filename) ? options.filename : 'message.intl';\n const sourceMap = !!options.sourceMap;\n // prettier-ignore\n const breakLineCode = options.breakLineCode != null ? options.breakLineCode : mode === 'arrow' ? ';' : '\\n';\n const needIndent = options.needIndent ? options.needIndent : mode !== 'arrow';\n const helpers = ast.helpers || [];\n const generator = createCodeGenerator(ast, {\n mode,\n filename,\n sourceMap,\n breakLineCode,\n needIndent\n });\n generator.push(mode === 'normal' ? `function __msg__ (ctx) {` : `(ctx) => {`);\n generator.indent(needIndent);\n if (helpers.length > 0) {\n generator.push(`const { ${join(helpers.map(s => `${s}: _${s}`), ', ')} } = ctx`);\n generator.newline();\n }\n generator.push(`return `);\n generateNode(generator, ast);\n generator.deindent(needIndent);\n generator.push(`}`);\n delete ast.helpers;\n const {\n code,\n map\n } = generator.context();\n return {\n ast,\n code,\n map: map ? map.toJSON() : undefined // eslint-disable-line @typescript-eslint/no-explicit-any\n };\n};\nfunction baseCompile(source, options = {}) {\n const assignedOptions = assign({}, options);\n const jit = !!assignedOptions.jit;\n const enalbeMinify = !!assignedOptions.minify;\n const enambeOptimize = assignedOptions.optimize == null ? true : assignedOptions.optimize;\n // parse source codes\n const parser = createParser(assignedOptions);\n const ast = parser.parse(source);\n if (!jit) {\n // transform ASTs\n transform(ast, assignedOptions);\n // generate javascript codes\n return generate(ast, assignedOptions);\n } else {\n // optimize ASTs\n enambeOptimize && optimize(ast);\n // minimize ASTs\n enalbeMinify && minify(ast);\n // In JIT mode, no ast transform, no code generation.\n return {\n ast,\n code: ''\n };\n }\n}\n\n\n//# sourceURL=webpack://jandl/./node_modules/@intlify/message-compiler/dist/message-compiler.esm-browser.js?\n}");
-
-/***/ }),
-
-/***/ "./node_modules/@intlify/shared/dist/shared.mjs":
-/*!******************************************************!*\
- !*** ./node_modules/@intlify/shared/dist/shared.mjs ***!
- \******************************************************/
-/***/ (function(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ assign: function() { return /* binding */ assign; },\n/* harmony export */ create: function() { return /* binding */ create; },\n/* harmony export */ createEmitter: function() { return /* binding */ createEmitter; },\n/* harmony export */ deepCopy: function() { return /* binding */ deepCopy; },\n/* harmony export */ escapeHtml: function() { return /* binding */ escapeHtml; },\n/* harmony export */ format: function() { return /* binding */ format; },\n/* harmony export */ friendlyJSONstringify: function() { return /* binding */ friendlyJSONstringify; },\n/* harmony export */ generateCodeFrame: function() { return /* binding */ generateCodeFrame; },\n/* harmony export */ generateFormatCacheKey: function() { return /* binding */ generateFormatCacheKey; },\n/* harmony export */ getGlobalThis: function() { return /* binding */ getGlobalThis; },\n/* harmony export */ hasOwn: function() { return /* binding */ hasOwn; },\n/* harmony export */ inBrowser: function() { return /* binding */ inBrowser; },\n/* harmony export */ incrementer: function() { return /* binding */ incrementer; },\n/* harmony export */ isArray: function() { return /* binding */ isArray; },\n/* harmony export */ isBoolean: function() { return /* binding */ isBoolean; },\n/* harmony export */ isDate: function() { return /* binding */ isDate; },\n/* harmony export */ isEmptyObject: function() { return /* binding */ isEmptyObject; },\n/* harmony export */ isFunction: function() { return /* binding */ isFunction; },\n/* harmony export */ isNumber: function() { return /* binding */ isNumber; },\n/* harmony export */ isObject: function() { return /* binding */ isObject; },\n/* harmony export */ isPlainObject: function() { return /* binding */ isPlainObject; },\n/* harmony export */ isPromise: function() { return /* binding */ isPromise; },\n/* harmony export */ isRegExp: function() { return /* binding */ isRegExp; },\n/* harmony export */ isString: function() { return /* binding */ isString; },\n/* harmony export */ isSymbol: function() { return /* binding */ isSymbol; },\n/* harmony export */ join: function() { return /* binding */ join; },\n/* harmony export */ makeSymbol: function() { return /* binding */ makeSymbol; },\n/* harmony export */ mark: function() { return /* binding */ mark; },\n/* harmony export */ measure: function() { return /* binding */ measure; },\n/* harmony export */ objectToString: function() { return /* binding */ objectToString; },\n/* harmony export */ sanitizeTranslatedHtml: function() { return /* binding */ sanitizeTranslatedHtml; },\n/* harmony export */ toDisplayString: function() { return /* binding */ toDisplayString; },\n/* harmony export */ toTypeString: function() { return /* binding */ toTypeString; },\n/* harmony export */ warn: function() { return /* binding */ warn; },\n/* harmony export */ warnOnce: function() { return /* binding */ warnOnce; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_json_stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ \"./node_modules/core-js/modules/esnext.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_reduce_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! core-js/modules/esnext.iterator.reduce.js */ \"./node_modules/core-js/modules/esnext.iterator.reduce.js\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n\n/*!\n * shared v9.14.5\n * (c) 2025 kazuya kawaguchi\n * Released under the MIT License.\n */\nfunction warn(msg, err) {\n if (typeof console !== 'undefined') {\n console.warn(`[intlify] ` + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\nconst hasWarned = {};\nfunction warnOnce(msg) {\n if (!hasWarned[msg]) {\n hasWarned[msg] = true;\n warn(msg);\n }\n}\n\n/**\n * Original Utilities\n * written by kazuya kawaguchi\n */\nconst inBrowser = typeof window !== 'undefined';\nlet mark;\nlet measure;\nif (true) {\n const perf = inBrowser && window.performance;\n if (perf && perf.mark && perf.measure && perf.clearMarks &&\n // @ts-ignore browser compat\n perf.clearMeasures) {\n mark = tag => {\n perf.mark(tag);\n };\n measure = (name, startTag, endTag) => {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n };\n }\n}\nconst RE_ARGS = /\\{([0-9a-zA-Z]+)\\}/g;\n/* eslint-disable */\nfunction format(message, ...args) {\n if (args.length === 1 && isObject(args[0])) {\n args = args[0];\n }\n if (!args || !args.hasOwnProperty) {\n args = {};\n }\n return message.replace(RE_ARGS, (match, identifier) => {\n return args.hasOwnProperty(identifier) ? args[identifier] : '';\n });\n}\nconst makeSymbol = (name, shareable = false) => !shareable ? Symbol(name) : Symbol.for(name);\nconst generateFormatCacheKey = (locale, key, source) => friendlyJSONstringify({\n l: locale,\n k: key,\n s: source\n});\nconst friendlyJSONstringify = json => JSON.stringify(json).replace(/\\u2028/g, '\\\\u2028').replace(/\\u2029/g, '\\\\u2029').replace(/\\u0027/g, '\\\\u0027');\nconst isNumber = val => typeof val === 'number' && isFinite(val);\nconst isDate = val => toTypeString(val) === '[object Date]';\nconst isRegExp = val => toTypeString(val) === '[object RegExp]';\nconst isEmptyObject = val => isPlainObject(val) && Object.keys(val).length === 0;\nconst assign = Object.assign;\nconst _create = Object.create;\nconst create = (obj = null) => _create(obj);\nlet _globalThis;\nconst getGlobalThis = () => {\n // prettier-ignore\n return _globalThis || (_globalThis = typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : create());\n};\nfunction escapeHtml(rawText) {\n return rawText.replace(/&/g, '&') // escape `&` first to avoid double escaping\n .replace(//g, '>').replace(/\"/g, '"').replace(/'/g, ''').replace(/\\//g, '/') // escape `/` to prevent closing tags or JavaScript URLs\n .replace(/=/g, '='); // escape `=` to prevent attribute injection\n}\nfunction escapeAttributeValue(value) {\n return value.replace(/&(?![a-zA-Z0-9#]{2,6};)/g, '&') // escape unescaped `&`\n .replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction sanitizeTranslatedHtml(html) {\n // Escape dangerous characters in attribute values\n // Process attributes with double quotes\n html = html.replace(/(\\w+)\\s*=\\s*\"([^\"]*)\"/g, (_, attrName, attrValue) => `${attrName}=\"${escapeAttributeValue(attrValue)}\"`);\n // Process attributes with single quotes\n html = html.replace(/(\\w+)\\s*=\\s*'([^']*)'/g, (_, attrName, attrValue) => `${attrName}='${escapeAttributeValue(attrValue)}'`);\n // Detect and neutralize event handler attributes\n const eventHandlerPattern = /\\s*on\\w+\\s*=\\s*[\"']?[^\"'>]+[\"']?/gi;\n if (eventHandlerPattern.test(html)) {\n if (true) {\n warn('Potentially dangerous event handlers detected in translation. ' + 'Consider removing onclick, onerror, etc. from your translation messages.');\n }\n // Neutralize event handler attributes by escaping 'on'\n html = html.replace(/(\\s+)(on)(\\w+\\s*=)/gi, '$1on$3');\n }\n // Disable javascript: URLs in various contexts\n const javascriptUrlPattern = [\n // In href, src, action, formaction attributes\n /(\\s+(?:href|src|action|formaction)\\s*=\\s*[\"']?)\\s*javascript:/gi,\n // In style attributes within url()\n /(style\\s*=\\s*[\"'][^\"']*url\\s*\\(\\s*)javascript:/gi];\n javascriptUrlPattern.forEach(pattern => {\n html = html.replace(pattern, '$1javascript:');\n });\n return html;\n}\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/* eslint-enable */\n/**\n * Useful Utilities By Evan you\n * Modified by kazuya kawaguchi\n * MIT License\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\n */\nconst isArray = Array.isArray;\nconst isFunction = val => typeof val === 'function';\nconst isString = val => typeof val === 'string';\nconst isBoolean = val => typeof val === 'boolean';\nconst isSymbol = val => typeof val === 'symbol';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isObject = val => val !== null && typeof val === 'object';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isPromise = val => {\n return isObject(val) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = value => objectToString.call(value);\nconst isPlainObject = val => {\n if (!isObject(val)) return false;\n const proto = Object.getPrototypeOf(val);\n return proto === null || proto.constructor === Object;\n};\n// for converting list and named values to displayed strings.\nconst toDisplayString = val => {\n return val == null ? '' : isArray(val) || isPlainObject(val) && val.toString === objectToString ? JSON.stringify(val, null, 2) : String(val);\n};\nfunction join(items, separator = '') {\n return items.reduce((str, item, index) => index === 0 ? str + item : str + separator + item, '');\n}\nconst RANGE = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n const lines = source.split(/\\r?\\n/);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + 1;\n if (count >= start) {\n for (let j = i - RANGE; j <= i + RANGE || end > count; j++) {\n if (j < 0 || j >= lines.length) continue;\n const line = j + 1;\n res.push(`${line}${' '.repeat(3 - String(line).length)}| ${lines[j]}`);\n const lineLength = lines[j].length;\n if (j === i) {\n // push underline\n const pad = start - (count - lineLength) + 1;\n const length = Math.max(1, end > count ? lineLength - pad : end - start);\n res.push(` | ` + ' '.repeat(pad) + '^'.repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + '^'.repeat(length));\n }\n count += lineLength + 1;\n }\n }\n break;\n }\n }\n return res.join('\\n');\n}\nfunction incrementer(code) {\n let current = code;\n return () => ++current;\n}\n\n/**\n * Event emitter, forked from the below:\n * - original repository url: https://github.com/developit/mitt\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\n * - author: Jason Miller (https://github.com/developit)\n * - license: MIT\n */\n/**\n * Create a event emitter\n *\n * @returns An event emitter\n */\nfunction createEmitter() {\n const events = new Map();\n const emitter = {\n events,\n on(event, handler) {\n const handlers = events.get(event);\n const added = handlers && handlers.push(handler);\n if (!added) {\n events.set(event, [handler]);\n }\n },\n off(event, handler) {\n const handlers = events.get(event);\n if (handlers) {\n handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n }\n },\n emit(event, payload) {\n (events.get(event) || []).slice().map(handler => handler(payload));\n (events.get('*') || []).slice().map(handler => handler(event, payload));\n }\n };\n return emitter;\n}\nconst isNotObjectOrIsArray = val => !isObject(val) || isArray(val);\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nfunction deepCopy(src, des) {\n // src and des should both be objects, and none of them can be a array\n if (isNotObjectOrIsArray(src) || isNotObjectOrIsArray(des)) {\n throw new Error('Invalid value');\n }\n const stack = [{\n src,\n des\n }];\n while (stack.length) {\n const {\n src,\n des\n } = stack.pop();\n // using `Object.keys` which skips prototype properties\n Object.keys(src).forEach(key => {\n if (key === '__proto__') {\n return;\n }\n // if src[key] is an object/array, set des[key]\n // to empty object/array to prevent setting by reference\n if (isObject(src[key]) && !isObject(des[key])) {\n des[key] = Array.isArray(src[key]) ? [] : create();\n }\n if (isNotObjectOrIsArray(des[key]) || isNotObjectOrIsArray(src[key])) {\n // replace with src[key] when:\n // src[key] or des[key] is not an object, or\n // src[key] or des[key] is an array\n des[key] = src[key];\n } else {\n // src[key] and des[key] are both objects, merge them\n stack.push({\n src: src[key],\n des: des[key]\n });\n }\n });\n }\n}\n\n\n//# sourceURL=webpack://jandl/./node_modules/@intlify/shared/dist/shared.mjs?\n}");
-
-/***/ }),
-
-/***/ "./node_modules/@ionic/core/components/action-sheet.js":
-/*!*************************************************************!*\
- !*** ./node_modules/@ionic/core/components/action-sheet.js ***!
- \*************************************************************/
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ A: function() { return /* binding */ ActionSheet; },\n/* harmony export */ d: function() { return /* binding */ defineCustomElement; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ \"./node_modules/core-js/modules/esnext.iterator.find.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @stencil/core/internal/client */ \"./node_modules/@stencil/core/internal/client/index.js\");\n/* harmony import */ var _ionic_global_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ionic-global.js */ \"./node_modules/@ionic/core/components/ionic-global.js\");\n/* harmony import */ var _button_active_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./button-active.js */ \"./node_modules/@ionic/core/components/button-active.js\");\n/* harmony import */ var _overlays_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./overlays.js */ \"./node_modules/@ionic/core/components/overlays.js\");\n/* harmony import */ var _theme_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./theme.js */ \"./node_modules/@ionic/core/components/theme.js\");\n/* harmony import */ var _animation_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./animation.js */ \"./node_modules/@ionic/core/components/animation.js\");\n/* harmony import */ var _backdrop_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./backdrop.js */ \"./node_modules/@ionic/core/components/backdrop.js\");\n/* harmony import */ var _icon_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./icon.js */ \"./node_modules/@ionic/core/components/icon.js\");\n/* harmony import */ var _ripple_effect_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./ripple-effect.js */ \"./node_modules/@ionic/core/components/ripple-effect.js\");\n\n\n\n\n/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n\n\n\n\n\n\n\n\n\n\n/**\n * iOS Action Sheet Enter Animation\n */\nconst iosEnterAnimation = baseEl => {\n const baseAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_9__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_9__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_9__.c)();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 0.01, 'var(--backdrop-opacity)').beforeStyles({\n 'pointer-events': 'none'\n }).afterClearStyles(['pointer-events']);\n wrapperAnimation.addElement(baseEl.querySelector('.action-sheet-wrapper')).fromTo('transform', 'translateY(100%)', 'translateY(0%)');\n return baseAnimation.addElement(baseEl).easing('cubic-bezier(.36,.66,.04,1)').duration(400).addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * iOS Action Sheet Leave Animation\n */\nconst iosLeaveAnimation = baseEl => {\n const baseAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_9__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_9__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_9__.c)();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 'var(--backdrop-opacity)', 0);\n wrapperAnimation.addElement(baseEl.querySelector('.action-sheet-wrapper')).fromTo('transform', 'translateY(0%)', 'translateY(100%)');\n return baseAnimation.addElement(baseEl).easing('cubic-bezier(.36,.66,.04,1)').duration(450).addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * MD Action Sheet Enter Animation\n */\nconst mdEnterAnimation = baseEl => {\n const baseAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_9__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_9__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_9__.c)();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 0.01, 'var(--backdrop-opacity)').beforeStyles({\n 'pointer-events': 'none'\n }).afterClearStyles(['pointer-events']);\n wrapperAnimation.addElement(baseEl.querySelector('.action-sheet-wrapper')).fromTo('transform', 'translateY(100%)', 'translateY(0%)');\n return baseAnimation.addElement(baseEl).easing('cubic-bezier(.36,.66,.04,1)').duration(400).addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * MD Action Sheet Leave Animation\n */\nconst mdLeaveAnimation = baseEl => {\n const baseAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_9__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_9__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_9__.c)();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 'var(--backdrop-opacity)', 0);\n wrapperAnimation.addElement(baseEl.querySelector('.action-sheet-wrapper')).fromTo('transform', 'translateY(0%)', 'translateY(100%)');\n return baseAnimation.addElement(baseEl).easing('cubic-bezier(.36,.66,.04,1)').duration(450).addAnimation([backdropAnimation, wrapperAnimation]);\n};\nconst actionSheetIosCss = \".sc-ion-action-sheet-ios-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:100%;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-ios-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-ios{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button-inner.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:100%}.action-sheet-group.sc-ion-action-sheet-ios{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}.action-sheet-group.sc-ion-action-sheet-ios::-webkit-scrollbar{display:none}.action-sheet-group-cancel.sc-ion-action-sheet-ios{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}.action-sheet-selected.sc-ion-action-sheet-ios{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-ios:hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-ios:hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, #f9f9f9));--backdrop-opacity:var(--ion-backdrop-opacity, 0.4);--button-background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;--button-background-activated:var(--ion-text-color, #000);--button-background-activated-opacity:.08;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-background-selected:var(--ion-color-step-150, var(--ion-background-color, #fff));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-400, #999999);text-align:center}.action-sheet-wrapper.sc-ion-action-sheet-ios{margin-left:auto;margin-right:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:var(--ion-safe-area-bottom, 0)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-wrapper.sc-ion-action-sheet-ios{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.action-sheet-container.sc-ion-action-sheet-ios{padding-left:8px;padding-right:8px;padding-top:0;padding-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-container.sc-ion-action-sheet-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}.action-sheet-group.sc-ion-action-sheet-ios{border-radius:13px;margin-bottom:8px}.action-sheet-group.sc-ion-action-sheet-ios:first-child{margin-top:10px}.action-sheet-group.sc-ion-action-sheet-ios:last-child{margin-bottom:10px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-group.sc-ion-action-sheet-ios{background-color:transparent;-webkit-backdrop-filter:saturate(280%) blur(20px);backdrop-filter:saturate(280%) blur(20px)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-title.sc-ion-action-sheet-ios,.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.sc-ion-action-sheet-ios{background-color:transparent;background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8))), -webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background-image:linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%), linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4) 50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 50%);background-repeat:no-repeat;background-position:top, bottom;background-size:100% calc(100% - 1px), 100% 1px;-webkit-backdrop-filter:saturate(120%);backdrop-filter:saturate(120%)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.ion-activated.sc-ion-action-sheet-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.7);background-image:none}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-cancel.sc-ion-action-sheet-ios{background:var(--button-background-selected)}}.action-sheet-title.sc-ion-action-sheet-ios{background:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, transparent)) bottom/100% 1px no-repeat transparent;background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent}.action-sheet-title.sc-ion-action-sheet-ios{padding-left:10px;padding-right:10px;padding-top:14px;padding-bottom:13px;color:var(--color, var(--ion-color-step-400, #999999));font-size:13px;font-weight:400;text-align:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-title.sc-ion-action-sheet-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px}}.action-sheet-title.action-sheet-has-sub-title.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-sub-title.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:6px;padding-bottom:0;font-size:13px;font-weight:400}.action-sheet-button.sc-ion-action-sheet-ios{padding-left:18px;padding-right:18px;padding-top:18px;padding-bottom:18px;height:56px;font-size:20px;contain:strict}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-button.sc-ion-action-sheet-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:18px;padding-inline-start:18px;-webkit-padding-end:18px;padding-inline-end:18px}}.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{margin-right:0.3em;font-size:28px;pointer-events:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{margin-right:unset;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}.action-sheet-button.sc-ion-action-sheet-ios:last-child{background-image:none}.action-sheet-selected.sc-ion-action-sheet-ios{font-weight:bold}.action-sheet-cancel.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-cancel.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-destructive.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-activated.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-focused.sc-ion-action-sheet-ios{color:var(--ion-color-danger, #eb445a)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #eb445a)}}\";\nconst actionSheetMdCss = \".sc-ion-action-sheet-md-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:100%;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-md-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-md{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-md{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button-inner.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:100%}.action-sheet-group.sc-ion-action-sheet-md{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}.action-sheet-group.sc-ion-action-sheet-md::-webkit-scrollbar{display:none}.action-sheet-group-cancel.sc-ion-action-sheet-md{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}.action-sheet-selected.sc-ion-action-sheet-md{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-md::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-md:hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-md:hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);--button-background:transparent;--button-background-selected:currentColor;--button-background-selected-opacity:0;--button-background-activated:transparent;--button-background-activated-opacity:0;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-color:var(--ion-color-step-850, #262626);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}.action-sheet-wrapper.sc-ion-action-sheet-md{margin-left:auto;margin-right:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-wrapper.sc-ion-action-sheet-md{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.action-sheet-title.sc-ion-action-sheet-md{padding-left:16px;padding-right:16px;padding-top:20px;padding-bottom:17px;min-height:60px;color:var(--color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54));font-size:16px;text-align:start}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-title.sc-ion-action-sheet-md{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}.action-sheet-sub-title.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:16px;padding-bottom:0;font-size:14px}.action-sheet-group.sc-ion-action-sheet-md:first-child{padding-top:0}.action-sheet-group.sc-ion-action-sheet-md:last-child{padding-bottom:var(--ion-safe-area-bottom)}.action-sheet-button.sc-ion-action-sheet-md{padding-left:16px;padding-right:16px;padding-top:0;padding-bottom:0;position:relative;height:52px;font-size:16px;text-align:start;contain:strict;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-button.sc-ion-action-sheet-md{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}.action-sheet-icon.sc-ion-action-sheet-md{margin-left:0;margin-right:32px;margin-top:0;margin-bottom:0;color:var(--color);font-size:24px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.action-sheet-icon.sc-ion-action-sheet-md{margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:32px;margin-inline-end:32px}}.action-sheet-button-inner.sc-ion-action-sheet-md{-ms-flex-pack:start;justify-content:flex-start}.action-sheet-selected.sc-ion-action-sheet-md{font-weight:bold}\";\nconst ActionSheet = /*@__PURE__*/(0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.proxyCustomElement)(class extends _stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.didPresent = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.createEvent)(this, \"ionActionSheetDidPresent\", 7);\n this.willPresent = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.createEvent)(this, \"ionActionSheetWillPresent\", 7);\n this.willDismiss = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.createEvent)(this, \"ionActionSheetWillDismiss\", 7);\n this.didDismiss = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.createEvent)(this, \"ionActionSheetDidDismiss\", 7);\n this.presented = false;\n /**\n * If `true`, the keyboard will be automatically dismissed when the overlay is presented.\n */\n this.keyboardClose = true;\n /**\n * An array of buttons for the action sheet.\n */\n this.buttons = [];\n /**\n * If `true`, the action sheet will be dismissed when the backdrop is clicked.\n */\n this.backdropDismiss = true;\n /**\n * If `true`, the action sheet will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n */\n this.translucent = false;\n /**\n * If `true`, the action sheet will animate.\n */\n this.animated = true;\n this.onBackdropTap = () => {\n this.dismiss(undefined, _overlays_js__WEBPACK_IMPORTED_MODULE_7__.B);\n };\n this.dispatchCancelHandler = ev => {\n const role = ev.detail.role;\n if ((0,_overlays_js__WEBPACK_IMPORTED_MODULE_7__.j)(role)) {\n const cancelButton = this.getButtons().find(b => b.role === 'cancel');\n this.callButtonHandler(cancelButton);\n }\n };\n }\n /**\n * Present the action sheet overlay after it has been created.\n */\n present() {\n return (0,_overlays_js__WEBPACK_IMPORTED_MODULE_7__.e)(this, 'actionSheetEnter', iosEnterAnimation, mdEnterAnimation);\n }\n connectedCallback() {\n (0,_overlays_js__WEBPACK_IMPORTED_MODULE_7__.d)(this.el);\n }\n /**\n * Dismiss the action sheet overlay after it has been presented.\n *\n * @param data Any data to emit in the dismiss events.\n * @param role The role of the element that is dismissing the action sheet.\n * This can be useful in a button handler for determining which button was\n * clicked to dismiss the action sheet.\n * Some examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n */\n dismiss(data, role) {\n return (0,_overlays_js__WEBPACK_IMPORTED_MODULE_7__.f)(this, data, role, 'actionSheetLeave', iosLeaveAnimation, mdLeaveAnimation);\n }\n /**\n * Returns a promise that resolves when the action sheet did dismiss.\n */\n onDidDismiss() {\n return (0,_overlays_js__WEBPACK_IMPORTED_MODULE_7__.g)(this.el, 'ionActionSheetDidDismiss');\n }\n /**\n * Returns a promise that resolves when the action sheet will dismiss.\n *\n */\n onWillDismiss() {\n return (0,_overlays_js__WEBPACK_IMPORTED_MODULE_7__.g)(this.el, 'ionActionSheetWillDismiss');\n }\n async buttonClick(button) {\n const role = button.role;\n if ((0,_overlays_js__WEBPACK_IMPORTED_MODULE_7__.j)(role)) {\n return this.dismiss(button.data, role);\n }\n const shouldDismiss = await this.callButtonHandler(button);\n if (shouldDismiss) {\n return this.dismiss(button.data, button.role);\n }\n return Promise.resolve();\n }\n async callButtonHandler(button) {\n if (button) {\n // a handler has been provided, execute it\n // pass the handler the values from the inputs\n const rtn = await (0,_overlays_js__WEBPACK_IMPORTED_MODULE_7__.s)(button.handler);\n if (rtn === false) {\n // if the return value of the handler is false then do not dismiss\n return false;\n }\n }\n return true;\n }\n getButtons() {\n return this.buttons.map(b => {\n return typeof b === 'string' ? {\n text: b\n } : b;\n });\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n componentDidLoad() {\n /**\n * Do not create gesture if:\n * 1. A gesture already exists\n * 2. App is running in MD mode\n * 3. A wrapper ref does not exist\n */\n const {\n groupEl,\n wrapperEl\n } = this;\n if (this.gesture || (0,_ionic_global_js__WEBPACK_IMPORTED_MODULE_5__.b)(this) === 'md' || !wrapperEl || !groupEl) {\n return;\n }\n (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.readTask)(() => {\n const isScrollable = groupEl.scrollHeight > groupEl.clientHeight;\n if (!isScrollable) {\n this.gesture = (0,_button_active_js__WEBPACK_IMPORTED_MODULE_6__.c)(wrapperEl, refEl => refEl.classList.contains('action-sheet-button'));\n this.gesture.enable(true);\n }\n });\n }\n render() {\n const {\n header,\n htmlAttributes,\n overlayIndex\n } = this;\n const mode = (0,_ionic_global_js__WEBPACK_IMPORTED_MODULE_5__.b)(this);\n const allButtons = this.getButtons();\n const cancelButton = allButtons.find(b => b.role === 'cancel');\n const buttons = allButtons.filter(b => b.role !== 'cancel');\n const headerID = `action-sheet-${overlayIndex}-header`;\n return (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.Host, Object.assign({\n role: \"dialog\",\n \"aria-modal\": \"true\",\n \"aria-labelledby\": header !== undefined ? headerID : null,\n tabindex: \"-1\"\n }, htmlAttributes, {\n style: {\n zIndex: `${20000 + this.overlayIndex}`\n },\n class: Object.assign(Object.assign({\n [mode]: true\n }, (0,_theme_js__WEBPACK_IMPORTED_MODULE_8__.g)(this.cssClass)), {\n 'overlay-hidden': true,\n 'action-sheet-translucent': this.translucent\n }),\n onIonActionSheetWillDismiss: this.dispatchCancelHandler,\n onIonBackdropTap: this.onBackdropTap\n }), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"ion-backdrop\", {\n tappable: this.backdropDismiss\n }), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"div\", {\n tabindex: \"0\"\n }), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"div\", {\n class: \"action-sheet-wrapper ion-overlay-wrapper\",\n ref: el => this.wrapperEl = el\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"div\", {\n class: \"action-sheet-container\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"div\", {\n class: \"action-sheet-group\",\n ref: el => this.groupEl = el\n }, header !== undefined && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"div\", {\n id: headerID,\n class: {\n 'action-sheet-title': true,\n 'action-sheet-has-sub-title': this.subHeader !== undefined\n }\n }, header, this.subHeader && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"div\", {\n class: \"action-sheet-sub-title\"\n }, this.subHeader)), buttons.map(b => (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"button\", {\n type: \"button\",\n id: b.id,\n class: buttonClass(b),\n onClick: () => this.buttonClick(b)\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"span\", {\n class: \"action-sheet-button-inner\"\n }, b.icon && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"ion-icon\", {\n icon: b.icon,\n lazy: false,\n class: \"action-sheet-icon\"\n }), b.text), mode === 'md' && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"ion-ripple-effect\", null)))), cancelButton && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"div\", {\n class: \"action-sheet-group action-sheet-group-cancel\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"button\", {\n type: \"button\",\n class: buttonClass(cancelButton),\n onClick: () => this.buttonClick(cancelButton)\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"span\", {\n class: \"action-sheet-button-inner\"\n }, cancelButton.icon && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"ion-icon\", {\n icon: cancelButton.icon,\n lazy: false,\n class: \"action-sheet-icon\"\n }), cancelButton.text), mode === 'md' && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"ion-ripple-effect\", null))))), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_4__.h)(\"div\", {\n tabindex: \"0\"\n }));\n }\n get el() {\n return this;\n }\n static get style() {\n return {\n ios: actionSheetIosCss,\n md: actionSheetMdCss\n };\n }\n}, [34, \"ion-action-sheet\", {\n \"overlayIndex\": [2, \"overlay-index\"],\n \"keyboardClose\": [4, \"keyboard-close\"],\n \"enterAnimation\": [16],\n \"leaveAnimation\": [16],\n \"buttons\": [16],\n \"cssClass\": [1, \"css-class\"],\n \"backdropDismiss\": [4, \"backdrop-dismiss\"],\n \"header\": [1],\n \"subHeader\": [1, \"sub-header\"],\n \"translucent\": [4],\n \"animated\": [4],\n \"htmlAttributes\": [16],\n \"present\": [64],\n \"dismiss\": [64],\n \"onDidDismiss\": [64],\n \"onWillDismiss\": [64]\n}]);\nconst buttonClass = button => {\n return Object.assign({\n 'action-sheet-button': true,\n 'ion-activatable': true,\n 'ion-focusable': true,\n [`action-sheet-${button.role}`]: button.role !== undefined\n }, (0,_theme_js__WEBPACK_IMPORTED_MODULE_8__.g)(button.cssClass));\n};\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-action-sheet\", \"ion-backdrop\", \"ion-icon\", \"ion-ripple-effect\"];\n components.forEach(tagName => {\n switch (tagName) {\n case \"ion-action-sheet\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, ActionSheet);\n }\n break;\n case \"ion-backdrop\":\n if (!customElements.get(tagName)) {\n (0,_backdrop_js__WEBPACK_IMPORTED_MODULE_10__.d)();\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n (0,_icon_js__WEBPACK_IMPORTED_MODULE_11__.d)();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n (0,_ripple_effect_js__WEBPACK_IMPORTED_MODULE_12__.d)();\n }\n break;\n }\n });\n}\n\n\n//# sourceURL=webpack://jandl/./node_modules/@ionic/core/components/action-sheet.js?\n}");
-
-/***/ }),
-
-/***/ "./node_modules/@ionic/core/components/alert.js":
-/*!******************************************************!*\
- !*** ./node_modules/@ionic/core/components/alert.js ***!
- \******************************************************/
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ A: function() { return /* binding */ Alert; },\n/* harmony export */ d: function() { return /* binding */ defineCustomElement; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.filter.js */ \"./node_modules/core-js/modules/esnext.iterator.filter.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_filter_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ \"./node_modules/core-js/modules/esnext.iterator.find.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ \"./node_modules/core-js/modules/esnext.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @stencil/core/internal/client */ \"./node_modules/@stencil/core/internal/client/index.js\");\n/* harmony import */ var _ionic_global_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ionic-global.js */ \"./node_modules/@ionic/core/components/ionic-global.js\");\n/* harmony import */ var _button_active_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./button-active.js */ \"./node_modules/@ionic/core/components/button-active.js\");\n/* harmony import */ var _overlays_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./overlays.js */ \"./node_modules/@ionic/core/components/overlays.js\");\n/* harmony import */ var _index3_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./index3.js */ \"./node_modules/@ionic/core/components/index3.js\");\n/* harmony import */ var _theme_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./theme.js */ \"./node_modules/@ionic/core/components/theme.js\");\n/* harmony import */ var _animation_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./animation.js */ \"./node_modules/@ionic/core/components/animation.js\");\n/* harmony import */ var _backdrop_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./backdrop.js */ \"./node_modules/@ionic/core/components/backdrop.js\");\n/* harmony import */ var _ripple_effect_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ripple-effect.js */ \"./node_modules/@ionic/core/components/ripple-effect.js\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n\n/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n\n\n\n\n\n\n\n\n\n\n/**\n * iOS Alert Enter Animation\n */\nconst iosEnterAnimation = baseEl => {\n const baseAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_11__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_11__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_11__.c)();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 0.01, 'var(--backdrop-opacity)').beforeStyles({\n 'pointer-events': 'none'\n }).afterClearStyles(['pointer-events']);\n wrapperAnimation.addElement(baseEl.querySelector('.alert-wrapper')).keyframes([{\n offset: 0,\n opacity: '0.01',\n transform: 'scale(1.1)'\n }, {\n offset: 1,\n opacity: '1',\n transform: 'scale(1)'\n }]);\n return baseAnimation.addElement(baseEl).easing('ease-in-out').duration(200).addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * iOS Alert Leave Animation\n */\nconst iosLeaveAnimation = baseEl => {\n const baseAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_11__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_11__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_11__.c)();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 'var(--backdrop-opacity)', 0);\n wrapperAnimation.addElement(baseEl.querySelector('.alert-wrapper')).keyframes([{\n offset: 0,\n opacity: 0.99,\n transform: 'scale(1)'\n }, {\n offset: 1,\n opacity: 0,\n transform: 'scale(0.9)'\n }]);\n return baseAnimation.addElement(baseEl).easing('ease-in-out').duration(200).addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * Md Alert Enter Animation\n */\nconst mdEnterAnimation = baseEl => {\n const baseAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_11__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_11__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_11__.c)();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 0.01, 'var(--backdrop-opacity)').beforeStyles({\n 'pointer-events': 'none'\n }).afterClearStyles(['pointer-events']);\n wrapperAnimation.addElement(baseEl.querySelector('.alert-wrapper')).keyframes([{\n offset: 0,\n opacity: '0.01',\n transform: 'scale(0.9)'\n }, {\n offset: 1,\n opacity: '1',\n transform: 'scale(1)'\n }]);\n return baseAnimation.addElement(baseEl).easing('ease-in-out').duration(150).addAnimation([backdropAnimation, wrapperAnimation]);\n};\n\n/**\n * Md Alert Leave Animation\n */\nconst mdLeaveAnimation = baseEl => {\n const baseAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_11__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_11__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_11__.c)();\n backdropAnimation.addElement(baseEl.querySelector('ion-backdrop')).fromTo('opacity', 'var(--backdrop-opacity)', 0);\n wrapperAnimation.addElement(baseEl.querySelector('.alert-wrapper')).fromTo('opacity', 0.99, 0);\n return baseAnimation.addElement(baseEl).easing('ease-in-out').duration(150).addAnimation([backdropAnimation, wrapperAnimation]);\n};\nconst alertIosCss = \".sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:14px;line-height:20px;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, #e6e6e6)}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:strict}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, #f9f9f9));--max-width:270px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:14px}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{padding-left:16px;padding-right:16px;padding-top:12px;padding-bottom:7px;text-align:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-head.sc-ion-alert-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:17px;font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, #666666);font-size:14px}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{padding-left:16px;padding-right:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:13px;text-align:center}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:4px;margin-top:10px;padding-left:6px;padding-right:6px;padding-top:6px;padding-bottom:6px;border:0.55px solid var(--ion-color-step-250, #bfbfbf);background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-input.sc-ion-alert-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:6px;padding-inline-start:6px;-webkit-padding-end:6px;padding-inline-end:6px}}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{height:44px}.alert-radio-label.sc-ion-alert-ios{padding-left:13px;padding-right:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;-ms-flex-order:0;order:0;color:var(--ion-text-color, #000);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-radio-label.sc-ion-alert-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px}}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #3880ff)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-order:1;order:1;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{left:7px;top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #3880ff)}[dir=rtl].sc-ion-alert-ios [aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios,[dir=rtl].sc-ion-alert-ios-h [aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios,[dir=rtl] .sc-ion-alert-ios-h [aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{left:unset;right:unset;right:7px}.alert-checkbox-label.sc-ion-alert-ios{padding-left:13px;padding-right:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-text-color, #000);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-checkbox-label.sc-ion-alert-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px}}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;margin-left:16px;margin-right:6px;margin-top:10px;margin-bottom:10px;position:relative;width:24px;height:24px;border-width:1px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-checkbox-icon.sc-ion-alert-ios{margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px}}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #3880ff);background-color:var(--ion-color-primary, #3880ff)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{left:9px;top:4px;position:absolute;width:5px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:1px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[dir=rtl].sc-ion-alert-ios [aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios,[dir=rtl].sc-ion-alert-ios-h [aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios,[dir=rtl] .sc-ion-alert-ios-h [aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{left:unset;right:unset;right:9px}.alert-button-group.sc-ion-alert-ios{margin-right:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-button-group.sc-ion-alert-ios{margin-right:unset;-webkit-margin-end:-0.55px;margin-inline-end:-0.55px}}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:44px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #3880ff);font-size:17px;overflow:hidden}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child,[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #eb445a)}\";\nconst alertMdCss = \".sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:14px;line-height:20px;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, #e6e6e6)}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:strict}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:14px}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{padding-left:23px;padding-right:23px;padding-top:20px;padding-bottom:15px;text-align:start}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-head.sc-ion-alert-md{padding-left:unset;padding-right:unset;-webkit-padding-start:23px;padding-inline-start:23px;-webkit-padding-end:23px;padding-inline-end:23px}}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:20px;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:16px}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{padding-left:24px;padding-right:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, #737373)}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{padding-left:unset;padding-right:unset;-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px}}.alert-message.sc-ion-alert-md{max-height:266px;font-size:16px}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, #d9d9d9);color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #3880ff)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;max-height:266px;border-top:1px solid var(--ion-color-step-150, #d9d9d9);border-bottom:1px solid var(--ion-color-step-150, #d9d9d9);overflow:auto}.alert-tappable.sc-ion-alert-md{position:relative;height:48px;overflow:hidden}.alert-radio-label.sc-ion-alert-md{padding-left:52px;padding-right:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-color-step-850, #262626);font-size:16px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-radio-label.sc-ion-alert-md{padding-left:unset;padding-right:unset;-webkit-padding-start:52px;padding-inline-start:52px;-webkit-padding-end:26px;padding-inline-end:26px}}.alert-radio-icon.sc-ion-alert-md{left:26px;top:0;border-radius:50%;display:block;position:relative;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, #737373)}[dir=rtl].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md,[dir=rtl].sc-ion-alert-md-h .alert-radio-icon.sc-ion-alert-md,[dir=rtl] .sc-ion-alert-md-h .alert-radio-icon.sc-ion-alert-md{left:unset;right:unset;right:26px}.alert-radio-inner.sc-ion-alert-md{left:3px;top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #3880ff)}[dir=rtl].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md,[dir=rtl].sc-ion-alert-md-h .alert-radio-inner.sc-ion-alert-md,[dir=rtl] .sc-ion-alert-md-h .alert-radio-inner.sc-ion-alert-md{left:unset;right:unset;right:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, #262626)}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #3880ff)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{padding-left:53px;padding-right:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-color-step-850, #262626);font-size:16px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-checkbox-label.sc-ion-alert-md{padding-left:unset;padding-right:unset;-webkit-padding-start:53px;padding-inline-start:53px;-webkit-padding-end:26px;padding-inline-end:26px}}.alert-checkbox-icon.sc-ion-alert-md{left:26px;top:0;border-radius:2px;position:relative;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, #737373);contain:strict}[dir=rtl].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md,[dir=rtl].sc-ion-alert-md-h .alert-checkbox-icon.sc-ion-alert-md,[dir=rtl] .sc-ion-alert-md-h .alert-checkbox-icon.sc-ion-alert-md{left:unset;right:unset;right:26px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #3880ff);background-color:var(--ion-color-primary, #3880ff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{left:3px;top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[dir=rtl].sc-ion-alert-md [aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md,[dir=rtl].sc-ion-alert-md-h [aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md,[dir=rtl] .sc-ion-alert-md-h [aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{left:unset;right:unset;right:3px}.alert-button-group.sc-ion-alert-md{padding-left:8px;padding-right:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-button-group.sc-ion-alert-md{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}.alert-button.sc-ion-alert-md{border-radius:2px;margin-left:0;margin-right:8px;margin-top:0;margin-bottom:0;padding-left:10px;padding-right:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #3880ff);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-button.sc-ion-alert-md{margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px}}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.alert-button.sc-ion-alert-md{padding-left:unset;padding-right:unset;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px}}.alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}\";\nconst Alert = /*@__PURE__*/(0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.proxyCustomElement)(class extends _stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.didPresent = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.createEvent)(this, \"ionAlertDidPresent\", 7);\n this.willPresent = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.createEvent)(this, \"ionAlertWillPresent\", 7);\n this.willDismiss = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.createEvent)(this, \"ionAlertWillDismiss\", 7);\n this.didDismiss = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.createEvent)(this, \"ionAlertDidDismiss\", 7);\n this.processedInputs = [];\n this.processedButtons = [];\n this.presented = false;\n /**\n * If `true`, the keyboard will be automatically dismissed when the overlay is presented.\n */\n this.keyboardClose = true;\n /**\n * Array of buttons to be added to the alert.\n */\n this.buttons = [];\n /**\n * Array of input to show in the alert.\n */\n this.inputs = [];\n /**\n * If `true`, the alert will be dismissed when the backdrop is clicked.\n */\n this.backdropDismiss = true;\n /**\n * If `true`, the alert will be translucent.\n * Only applies when the mode is `\"ios\"` and the device supports\n * [`backdrop-filter`](https://developer.mozilla.org/en-US/docs/Web/CSS/backdrop-filter#Browser_compatibility).\n */\n this.translucent = false;\n /**\n * If `true`, the alert will animate.\n */\n this.animated = true;\n this.onBackdropTap = () => {\n this.dismiss(undefined, _overlays_js__WEBPACK_IMPORTED_MODULE_8__.B);\n };\n this.dispatchCancelHandler = ev => {\n const role = ev.detail.role;\n if ((0,_overlays_js__WEBPACK_IMPORTED_MODULE_8__.j)(role)) {\n const cancelButton = this.processedButtons.find(b => b.role === 'cancel');\n this.callButtonHandler(cancelButton);\n }\n };\n }\n onKeydown(ev) {\n const inputTypes = new Set(this.processedInputs.map(i => i.type));\n // The only inputs we want to navigate between using arrow keys are the radios\n // ignore the keydown event if it is not on a radio button\n if (!inputTypes.has('radio') || ev.target && !this.el.contains(ev.target) || ev.target.classList.contains('alert-button')) {\n return;\n }\n // Get all radios inside of the radio group and then\n // filter out disabled radios since we need to skip those\n const query = this.el.querySelectorAll('.alert-radio');\n const radios = Array.from(query).filter(radio => !radio.disabled);\n // The focused radio is the one that shares the same id as\n // the event target\n const index = radios.findIndex(radio => radio.id === ev.target.id);\n // We need to know what the next radio element should\n // be in order to change the focus\n let nextEl;\n // If hitting arrow down or arrow right, move to the next radio\n // If we're on the last radio, move to the first radio\n if (['ArrowDown', 'ArrowRight'].includes(ev.code)) {\n nextEl = index === radios.length - 1 ? radios[0] : radios[index + 1];\n }\n // If hitting arrow up or arrow left, move to the previous radio\n // If we're on the first radio, move to the last radio\n if (['ArrowUp', 'ArrowLeft'].includes(ev.code)) {\n nextEl = index === 0 ? radios[radios.length - 1] : radios[index - 1];\n }\n if (nextEl && radios.includes(nextEl)) {\n const nextProcessed = this.processedInputs.find(input => input.id === (nextEl === null || nextEl === void 0 ? void 0 : nextEl.id));\n if (nextProcessed) {\n this.rbClick(nextProcessed);\n nextEl.focus();\n }\n }\n }\n buttonsChanged() {\n const buttons = this.buttons;\n this.processedButtons = buttons.map(btn => {\n return typeof btn === 'string' ? {\n text: btn,\n role: btn.toLowerCase() === 'cancel' ? 'cancel' : undefined\n } : btn;\n });\n }\n inputsChanged() {\n const inputs = this.inputs;\n // Get the first input that is not disabled and the checked one\n // If an enabled checked input exists, set it to be the focusable input\n // otherwise we default to focus the first input\n // This will only be used when the input is type radio\n const first = inputs.find(input => !input.disabled);\n const checked = inputs.find(input => input.checked && !input.disabled);\n const focusable = checked || first;\n // An alert can be created with several different inputs. Radios,\n // checkboxes and inputs are all accepted, but they cannot be mixed.\n const inputTypes = new Set(inputs.map(i => i.type));\n if (inputTypes.has('checkbox') && inputTypes.has('radio')) {\n console.warn(`Alert cannot mix input types: ${Array.from(inputTypes.values()).join('/')}. Please see alert docs for more info.`);\n }\n this.inputType = inputTypes.values().next().value;\n this.processedInputs = inputs.map((i, index) => {\n var _a;\n return {\n type: i.type || 'text',\n name: i.name || `${index}`,\n placeholder: i.placeholder || '',\n value: i.value,\n label: i.label,\n checked: !!i.checked,\n disabled: !!i.disabled,\n id: i.id || `alert-input-${this.overlayIndex}-${index}`,\n handler: i.handler,\n min: i.min,\n max: i.max,\n cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',\n attributes: i.attributes || {},\n tabindex: i.type === 'radio' && i !== focusable ? -1 : 0\n };\n });\n }\n connectedCallback() {\n (0,_overlays_js__WEBPACK_IMPORTED_MODULE_8__.d)(this.el);\n }\n componentWillLoad() {\n this.inputsChanged();\n this.buttonsChanged();\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n componentDidLoad() {\n /**\n * Do not create gesture if:\n * 1. A gesture already exists\n * 2. App is running in MD mode\n * 3. A wrapper ref does not exist\n */\n if (this.gesture || (0,_ionic_global_js__WEBPACK_IMPORTED_MODULE_6__.b)(this) === 'md' || !this.wrapperEl) {\n return;\n }\n this.gesture = (0,_button_active_js__WEBPACK_IMPORTED_MODULE_7__.c)(this.wrapperEl, refEl => refEl.classList.contains('alert-button'));\n this.gesture.enable(true);\n }\n /**\n * Present the alert overlay after it has been created.\n */\n present() {\n return (0,_overlays_js__WEBPACK_IMPORTED_MODULE_8__.e)(this, 'alertEnter', iosEnterAnimation, mdEnterAnimation);\n }\n /**\n * Dismiss the alert overlay after it has been presented.\n *\n * @param data Any data to emit in the dismiss events.\n * @param role The role of the element that is dismissing the alert.\n * This can be useful in a button handler for determining which button was\n * clicked to dismiss the alert.\n * Some examples include: ``\"cancel\"`, `\"destructive\"`, \"selected\"`, and `\"backdrop\"`.\n */\n dismiss(data, role) {\n return (0,_overlays_js__WEBPACK_IMPORTED_MODULE_8__.f)(this, data, role, 'alertLeave', iosLeaveAnimation, mdLeaveAnimation);\n }\n /**\n * Returns a promise that resolves when the alert did dismiss.\n */\n onDidDismiss() {\n return (0,_overlays_js__WEBPACK_IMPORTED_MODULE_8__.g)(this.el, 'ionAlertDidDismiss');\n }\n /**\n * Returns a promise that resolves when the alert will dismiss.\n */\n onWillDismiss() {\n return (0,_overlays_js__WEBPACK_IMPORTED_MODULE_8__.g)(this.el, 'ionAlertWillDismiss');\n }\n rbClick(selectedInput) {\n for (const input of this.processedInputs) {\n input.checked = input === selectedInput;\n input.tabindex = input === selectedInput ? 0 : -1;\n }\n this.activeId = selectedInput.id;\n (0,_overlays_js__WEBPACK_IMPORTED_MODULE_8__.s)(selectedInput.handler, selectedInput);\n (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.forceUpdate)(this);\n }\n cbClick(selectedInput) {\n selectedInput.checked = !selectedInput.checked;\n (0,_overlays_js__WEBPACK_IMPORTED_MODULE_8__.s)(selectedInput.handler, selectedInput);\n (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.forceUpdate)(this);\n }\n async buttonClick(button) {\n const role = button.role;\n const values = this.getValues();\n if ((0,_overlays_js__WEBPACK_IMPORTED_MODULE_8__.j)(role)) {\n return this.dismiss({\n values\n }, role);\n }\n const returnData = await this.callButtonHandler(button, values);\n if (returnData !== false) {\n return this.dismiss(Object.assign({\n values\n }, returnData), button.role);\n }\n return false;\n }\n async callButtonHandler(button, data) {\n if (button === null || button === void 0 ? void 0 : button.handler) {\n // a handler has been provided, execute it\n // pass the handler the values from the inputs\n const returnData = await (0,_overlays_js__WEBPACK_IMPORTED_MODULE_8__.s)(button.handler, data);\n if (returnData === false) {\n // if the return value of the handler is false then do not dismiss\n return false;\n }\n if (typeof returnData === 'object') {\n return returnData;\n }\n }\n return {};\n }\n getValues() {\n if (this.processedInputs.length === 0) {\n // this is an alert without any options/inputs at all\n return undefined;\n }\n if (this.inputType === 'radio') {\n // this is an alert with radio buttons (single value select)\n // return the one value which is checked, otherwise undefined\n const checkedInput = this.processedInputs.find(i => !!i.checked);\n return checkedInput ? checkedInput.value : undefined;\n }\n if (this.inputType === 'checkbox') {\n // this is an alert with checkboxes (multiple value select)\n // return an array of all the checked values\n return this.processedInputs.filter(i => i.checked).map(i => i.value);\n }\n // this is an alert with text inputs\n // return an object of all the values with the input name as the key\n const values = {};\n this.processedInputs.forEach(i => {\n values[i.name] = i.value || '';\n });\n return values;\n }\n renderAlertInputs() {\n switch (this.inputType) {\n case 'checkbox':\n return this.renderCheckbox();\n case 'radio':\n return this.renderRadio();\n default:\n return this.renderInput();\n }\n }\n renderCheckbox() {\n const inputs = this.processedInputs;\n const mode = (0,_ionic_global_js__WEBPACK_IMPORTED_MODULE_6__.b)(this);\n if (inputs.length === 0) {\n return null;\n }\n return (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-checkbox-group\"\n }, inputs.map(i => (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"button\", {\n type: \"button\",\n onClick: () => this.cbClick(i),\n \"aria-checked\": `${i.checked}`,\n id: i.id,\n disabled: i.disabled,\n tabIndex: i.tabindex,\n role: \"checkbox\",\n class: Object.assign(Object.assign({}, (0,_theme_js__WEBPACK_IMPORTED_MODULE_10__.g)(i.cssClass)), {\n 'alert-tappable': true,\n 'alert-checkbox': true,\n 'alert-checkbox-button': true,\n 'ion-focusable': true,\n 'alert-checkbox-button-disabled': i.disabled || false\n })\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-button-inner\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-checkbox-icon\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-checkbox-inner\"\n })), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-checkbox-label\"\n }, i.label)), mode === 'md' && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"ion-ripple-effect\", null))));\n }\n renderRadio() {\n const inputs = this.processedInputs;\n if (inputs.length === 0) {\n return null;\n }\n return (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-radio-group\",\n role: \"radiogroup\",\n \"aria-activedescendant\": this.activeId\n }, inputs.map(i => (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"button\", {\n type: \"button\",\n onClick: () => this.rbClick(i),\n \"aria-checked\": `${i.checked}`,\n disabled: i.disabled,\n id: i.id,\n tabIndex: i.tabindex,\n class: Object.assign(Object.assign({}, (0,_theme_js__WEBPACK_IMPORTED_MODULE_10__.g)(i.cssClass)), {\n 'alert-radio-button': true,\n 'alert-tappable': true,\n 'alert-radio': true,\n 'ion-focusable': true,\n 'alert-radio-button-disabled': i.disabled || false\n }),\n role: \"radio\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-button-inner\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-radio-icon\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-radio-inner\"\n })), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-radio-label\"\n }, i.label)))));\n }\n renderInput() {\n const inputs = this.processedInputs;\n if (inputs.length === 0) {\n return null;\n }\n return (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-input-group\"\n }, inputs.map(i => {\n var _a, _b, _c, _d;\n if (i.type === 'textarea') {\n return (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-input-wrapper\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"textarea\", Object.assign({\n placeholder: i.placeholder,\n value: i.value,\n id: i.id,\n tabIndex: i.tabindex\n }, i.attributes, {\n disabled: (_b = (_a = i.attributes) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : i.disabled,\n class: inputClass(i),\n onInput: e => {\n var _a;\n i.value = e.target.value;\n if ((_a = i.attributes) === null || _a === void 0 ? void 0 : _a.onInput) {\n i.attributes.onInput(e);\n }\n }\n })));\n } else {\n return (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-input-wrapper\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"input\", Object.assign({\n placeholder: i.placeholder,\n type: i.type,\n min: i.min,\n max: i.max,\n value: i.value,\n id: i.id,\n tabIndex: i.tabindex\n }, i.attributes, {\n disabled: (_d = (_c = i.attributes) === null || _c === void 0 ? void 0 : _c.disabled) !== null && _d !== void 0 ? _d : i.disabled,\n class: inputClass(i),\n onInput: e => {\n var _a;\n i.value = e.target.value;\n if ((_a = i.attributes) === null || _a === void 0 ? void 0 : _a.onInput) {\n i.attributes.onInput(e);\n }\n }\n })));\n }\n }));\n }\n renderAlertButtons() {\n const buttons = this.processedButtons;\n const mode = (0,_ionic_global_js__WEBPACK_IMPORTED_MODULE_6__.b)(this);\n const alertButtonGroupClass = {\n 'alert-button-group': true,\n 'alert-button-group-vertical': buttons.length > 2\n };\n return (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: alertButtonGroupClass\n }, buttons.map(button => (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"button\", {\n type: \"button\",\n id: button.id,\n class: buttonClass(button),\n tabIndex: 0,\n onClick: () => this.buttonClick(button)\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"span\", {\n class: \"alert-button-inner\"\n }, button.text), mode === 'md' && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"ion-ripple-effect\", null))));\n }\n render() {\n const {\n overlayIndex,\n header,\n subHeader,\n message,\n htmlAttributes\n } = this;\n const mode = (0,_ionic_global_js__WEBPACK_IMPORTED_MODULE_6__.b)(this);\n const hdrId = `alert-${overlayIndex}-hdr`;\n const subHdrId = `alert-${overlayIndex}-sub-hdr`;\n const msgId = `alert-${overlayIndex}-msg`;\n const role = this.inputs.length > 0 || this.buttons.length > 0 ? 'alertdialog' : 'alert';\n /**\n * If the header is defined, use that. Otherwise, fall back to the subHeader.\n * If neither is defined, don't set aria-labelledby.\n */\n const ariaLabelledBy = header ? hdrId : subHeader ? subHdrId : null;\n return (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.Host, Object.assign({\n role: role,\n \"aria-modal\": \"true\",\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": message !== undefined ? msgId : null,\n tabindex: \"-1\"\n }, htmlAttributes, {\n style: {\n zIndex: `${20000 + overlayIndex}`\n },\n class: Object.assign(Object.assign({}, (0,_theme_js__WEBPACK_IMPORTED_MODULE_10__.g)(this.cssClass)), {\n [mode]: true,\n 'overlay-hidden': true,\n 'alert-translucent': this.translucent\n }),\n onIonAlertWillDismiss: this.dispatchCancelHandler,\n onIonBackdropTap: this.onBackdropTap\n }), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"ion-backdrop\", {\n tappable: this.backdropDismiss\n }), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n tabindex: \"0\"\n }), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-wrapper ion-overlay-wrapper\",\n ref: el => this.wrapperEl = el\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n class: \"alert-head\"\n }, header && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"h2\", {\n id: hdrId,\n class: \"alert-title\"\n }, header), subHeader && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"h2\", {\n id: subHdrId,\n class: \"alert-sub-title\"\n }, subHeader)), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n id: msgId,\n class: \"alert-message\",\n innerHTML: (0,_index3_js__WEBPACK_IMPORTED_MODULE_9__.s)(message)\n }), this.renderAlertInputs(), this.renderAlertButtons()), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_5__.h)(\"div\", {\n tabindex: \"0\"\n }));\n }\n get el() {\n return this;\n }\n static get watchers() {\n return {\n \"buttons\": [\"buttonsChanged\"],\n \"inputs\": [\"inputsChanged\"]\n };\n }\n static get style() {\n return {\n ios: alertIosCss,\n md: alertMdCss\n };\n }\n}, [34, \"ion-alert\", {\n \"overlayIndex\": [2, \"overlay-index\"],\n \"keyboardClose\": [4, \"keyboard-close\"],\n \"enterAnimation\": [16],\n \"leaveAnimation\": [16],\n \"cssClass\": [1, \"css-class\"],\n \"header\": [1],\n \"subHeader\": [1, \"sub-header\"],\n \"message\": [1],\n \"buttons\": [16],\n \"inputs\": [1040],\n \"backdropDismiss\": [4, \"backdrop-dismiss\"],\n \"translucent\": [4],\n \"animated\": [4],\n \"htmlAttributes\": [16],\n \"present\": [64],\n \"dismiss\": [64],\n \"onDidDismiss\": [64],\n \"onWillDismiss\": [64]\n}, [[4, \"keydown\", \"onKeydown\"]]]);\nconst inputClass = input => {\n var _a, _b, _c;\n return Object.assign(Object.assign({\n 'alert-input': true,\n 'alert-input-disabled': ((_b = (_a = input.attributes) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : input.disabled) || false\n }, (0,_theme_js__WEBPACK_IMPORTED_MODULE_10__.g)(input.cssClass)), (0,_theme_js__WEBPACK_IMPORTED_MODULE_10__.g)(input.attributes ? (_c = input.attributes.class) === null || _c === void 0 ? void 0 : _c.toString() : ''));\n};\nconst buttonClass = button => {\n return Object.assign({\n 'alert-button': true,\n 'ion-focusable': true,\n 'ion-activatable': true,\n [`alert-button-role-${button.role}`]: button.role !== undefined\n }, (0,_theme_js__WEBPACK_IMPORTED_MODULE_10__.g)(button.cssClass));\n};\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-alert\", \"ion-backdrop\", \"ion-ripple-effect\"];\n components.forEach(tagName => {\n switch (tagName) {\n case \"ion-alert\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Alert);\n }\n break;\n case \"ion-backdrop\":\n if (!customElements.get(tagName)) {\n (0,_backdrop_js__WEBPACK_IMPORTED_MODULE_12__.d)();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n (0,_ripple_effect_js__WEBPACK_IMPORTED_MODULE_13__.d)();\n }\n break;\n }\n });\n}\n\n\n//# sourceURL=webpack://jandl/./node_modules/@ionic/core/components/alert.js?\n}");
-
-/***/ }),
-
-/***/ "./node_modules/@ionic/core/components/animation.js":
-/*!**********************************************************!*\
- !*** ./node_modules/@ionic/core/components/animation.js ***!
- \**********************************************************/
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ c: function() { return /* binding */ createAnimation; }\n/* harmony export */ });\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.array.push.js */ \"./node_modules/core-js/modules/es.array.push.js\");\n/* harmony import */ var core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_array_push_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ \"./node_modules/core-js/modules/esnext.iterator.constructor.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ \"./node_modules/core-js/modules/esnext.iterator.for-each.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\n/* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _helpers_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./helpers.js */ \"./node_modules/@ionic/core/components/helpers.js\");\n/* harmony import */ var _index6_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./index6.js */ \"./node_modules/@ionic/core/components/index6.js\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n\n\n\n/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n\n\nlet animationPrefix;\n/**\n * Web Animations requires hyphenated CSS properties\n * to be written in camelCase when animating\n */\nconst processKeyframes = keyframes => {\n keyframes.forEach(keyframe => {\n for (const key in keyframe) {\n // eslint-disable-next-line no-prototype-builtins\n if (keyframe.hasOwnProperty(key)) {\n const value = keyframe[key];\n if (key === 'easing') {\n const newKey = 'animation-timing-function';\n keyframe[newKey] = value;\n delete keyframe[key];\n } else {\n const newKey = convertCamelCaseToHypen(key);\n if (newKey !== key) {\n keyframe[newKey] = value;\n delete keyframe[key];\n }\n }\n }\n }\n });\n return keyframes;\n};\nconst convertCamelCaseToHypen = str => {\n return str.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n};\nconst getAnimationPrefix = el => {\n if (animationPrefix === undefined) {\n const supportsUnprefixed = el.style.animationName !== undefined;\n const supportsWebkitPrefix = el.style.webkitAnimationName !== undefined;\n animationPrefix = !supportsUnprefixed && supportsWebkitPrefix ? '-webkit-' : '';\n }\n return animationPrefix;\n};\nconst setStyleProperty = (element, propertyName, value) => {\n const prefix = propertyName.startsWith('animation') ? getAnimationPrefix(element) : '';\n element.style.setProperty(prefix + propertyName, value);\n};\nconst removeStyleProperty = (element, propertyName) => {\n const prefix = propertyName.startsWith('animation') ? getAnimationPrefix(element) : '';\n element.style.removeProperty(prefix + propertyName);\n};\nconst animationEnd = (el, callback) => {\n let unRegTrans;\n const opts = {\n passive: true\n };\n const unregister = () => {\n if (unRegTrans) {\n unRegTrans();\n }\n };\n const onTransitionEnd = ev => {\n if (el === ev.target) {\n unregister();\n callback(ev);\n }\n };\n if (el) {\n el.addEventListener('webkitAnimationEnd', onTransitionEnd, opts);\n el.addEventListener('animationend', onTransitionEnd, opts);\n unRegTrans = () => {\n el.removeEventListener('webkitAnimationEnd', onTransitionEnd, opts);\n el.removeEventListener('animationend', onTransitionEnd, opts);\n };\n }\n return unregister;\n};\nconst generateKeyframeRules = (keyframes = []) => {\n return keyframes.map(keyframe => {\n const offset = keyframe.offset;\n const frameString = [];\n for (const property in keyframe) {\n // eslint-disable-next-line no-prototype-builtins\n if (keyframe.hasOwnProperty(property) && property !== 'offset') {\n frameString.push(`${property}: ${keyframe[property]};`);\n }\n }\n return `${offset * 100}% { ${frameString.join(' ')} }`;\n }).join(' ');\n};\nconst keyframeIds = [];\nconst generateKeyframeName = keyframeRules => {\n let index = keyframeIds.indexOf(keyframeRules);\n if (index < 0) {\n index = keyframeIds.push(keyframeRules) - 1;\n }\n return `ion-animation-${index}`;\n};\nconst getStyleContainer = element => {\n // getRootNode is not always available in SSR environments.\n const rootNode = element.getRootNode !== undefined ? element.getRootNode() : element;\n return rootNode.head || rootNode;\n};\nconst createKeyframeStylesheet = (keyframeName, keyframeRules, element) => {\n var _a;\n const styleContainer = getStyleContainer(element);\n const keyframePrefix = getAnimationPrefix(element);\n const existingStylesheet = styleContainer.querySelector('#' + keyframeName);\n if (existingStylesheet) {\n return existingStylesheet;\n }\n const stylesheet = ((_a = element.ownerDocument) !== null && _a !== void 0 ? _a : document).createElement('style');\n stylesheet.id = keyframeName;\n stylesheet.textContent = `@${keyframePrefix}keyframes ${keyframeName} { ${keyframeRules} } @${keyframePrefix}keyframes ${keyframeName}-alt { ${keyframeRules} }`;\n styleContainer.appendChild(stylesheet);\n return stylesheet;\n};\nconst addClassToArray = (classes = [], className) => {\n if (className !== undefined) {\n const classNameToAppend = Array.isArray(className) ? className : [className];\n return [...classes, ...classNameToAppend];\n }\n return classes;\n};\nconst createAnimation = animationId => {\n let _delay;\n let _duration;\n let _easing;\n let _iterations;\n let _fill;\n let _direction;\n let _keyframes = [];\n let beforeAddClasses = [];\n let beforeRemoveClasses = [];\n let initialized = false;\n let parentAnimation;\n let beforeStylesValue = {};\n let afterAddClasses = [];\n let afterRemoveClasses = [];\n let afterStylesValue = {};\n let numAnimationsRunning = 0;\n let shouldForceLinearEasing = false;\n let shouldForceSyncPlayback = false;\n let cssAnimationsTimerFallback;\n let forceDirectionValue;\n let forceDurationValue;\n let forceDelayValue;\n let willComplete = true;\n let finished = false;\n let shouldCalculateNumAnimations = true;\n let keyframeName;\n let ani;\n let paused = false;\n const id = animationId;\n const onFinishCallbacks = [];\n const onFinishOneTimeCallbacks = [];\n const elements = [];\n const childAnimations = [];\n const stylesheets = [];\n const _beforeAddReadFunctions = [];\n const _beforeAddWriteFunctions = [];\n const _afterAddReadFunctions = [];\n const _afterAddWriteFunctions = [];\n const webAnimations = [];\n const supportsAnimationEffect = typeof AnimationEffect === 'function' || _index6_js__WEBPACK_IMPORTED_MODULE_5__.w !== undefined && typeof _index6_js__WEBPACK_IMPORTED_MODULE_5__.w.AnimationEffect === 'function';\n const supportsWebAnimations = typeof Element === 'function' && typeof Element.prototype.animate === 'function' && supportsAnimationEffect;\n const ANIMATION_END_FALLBACK_PADDING_MS = 100;\n const getWebAnimations = () => {\n return webAnimations;\n };\n const destroy = clearStyleSheets => {\n childAnimations.forEach(childAnimation => {\n childAnimation.destroy(clearStyleSheets);\n });\n cleanUp(clearStyleSheets);\n elements.length = 0;\n childAnimations.length = 0;\n _keyframes.length = 0;\n clearOnFinish();\n initialized = false;\n shouldCalculateNumAnimations = true;\n return ani;\n };\n /**\n * Cancels any Web Animations, removes\n * any animation properties from the\n * animation's elements, and removes the\n * animation's stylesheets from the DOM.\n */\n const cleanUp = clearStyleSheets => {\n cleanUpElements();\n if (clearStyleSheets) {\n cleanUpStyleSheets();\n }\n };\n const resetFlags = () => {\n shouldForceLinearEasing = false;\n shouldForceSyncPlayback = false;\n shouldCalculateNumAnimations = true;\n forceDirectionValue = undefined;\n forceDurationValue = undefined;\n forceDelayValue = undefined;\n numAnimationsRunning = 0;\n finished = false;\n willComplete = true;\n paused = false;\n };\n const isRunning = () => {\n return numAnimationsRunning !== 0 && !paused;\n };\n const onFinish = (callback, opts) => {\n const callbacks = (opts === null || opts === void 0 ? void 0 : opts.oneTimeCallback) ? onFinishOneTimeCallbacks : onFinishCallbacks;\n callbacks.push({\n c: callback,\n o: opts\n });\n return ani;\n };\n const clearOnFinish = () => {\n onFinishCallbacks.length = 0;\n onFinishOneTimeCallbacks.length = 0;\n return ani;\n };\n /**\n * Cancels any Web Animations and removes\n * any animation properties from the\n * the animation's elements.\n */\n const cleanUpElements = () => {\n if (supportsWebAnimations) {\n webAnimations.forEach(animation => {\n animation.cancel();\n });\n webAnimations.length = 0;\n } else {\n const elementsArray = elements.slice();\n (0,_helpers_js__WEBPACK_IMPORTED_MODULE_4__.r)(() => {\n elementsArray.forEach(element => {\n removeStyleProperty(element, 'animation-name');\n removeStyleProperty(element, 'animation-duration');\n removeStyleProperty(element, 'animation-timing-function');\n removeStyleProperty(element, 'animation-iteration-count');\n removeStyleProperty(element, 'animation-delay');\n removeStyleProperty(element, 'animation-play-state');\n removeStyleProperty(element, 'animation-fill-mode');\n removeStyleProperty(element, 'animation-direction');\n });\n });\n }\n };\n /**\n * Removes the animation's stylesheets\n * from the DOM.\n */\n const cleanUpStyleSheets = () => {\n stylesheets.forEach(stylesheet => {\n /**\n * When sharing stylesheets, it's possible\n * for another animation to have already\n * cleaned up a particular stylesheet\n */\n if (stylesheet === null || stylesheet === void 0 ? void 0 : stylesheet.parentNode) {\n stylesheet.parentNode.removeChild(stylesheet);\n }\n });\n stylesheets.length = 0;\n };\n const beforeAddRead = readFn => {\n _beforeAddReadFunctions.push(readFn);\n return ani;\n };\n const beforeAddWrite = writeFn => {\n _beforeAddWriteFunctions.push(writeFn);\n return ani;\n };\n const afterAddRead = readFn => {\n _afterAddReadFunctions.push(readFn);\n return ani;\n };\n const afterAddWrite = writeFn => {\n _afterAddWriteFunctions.push(writeFn);\n return ani;\n };\n const beforeAddClass = className => {\n beforeAddClasses = addClassToArray(beforeAddClasses, className);\n return ani;\n };\n const beforeRemoveClass = className => {\n beforeRemoveClasses = addClassToArray(beforeRemoveClasses, className);\n return ani;\n };\n /**\n * Set CSS inline styles to the animation's\n * elements before the animation begins.\n */\n const beforeStyles = (styles = {}) => {\n beforeStylesValue = styles;\n return ani;\n };\n /**\n * Clear CSS inline styles from the animation's\n * elements before the animation begins.\n */\n const beforeClearStyles = (propertyNames = []) => {\n for (const property of propertyNames) {\n beforeStylesValue[property] = '';\n }\n return ani;\n };\n const afterAddClass = className => {\n afterAddClasses = addClassToArray(afterAddClasses, className);\n return ani;\n };\n const afterRemoveClass = className => {\n afterRemoveClasses = addClassToArray(afterRemoveClasses, className);\n return ani;\n };\n const afterStyles = (styles = {}) => {\n afterStylesValue = styles;\n return ani;\n };\n const afterClearStyles = (propertyNames = []) => {\n for (const property of propertyNames) {\n afterStylesValue[property] = '';\n }\n return ani;\n };\n const getFill = () => {\n if (_fill !== undefined) {\n return _fill;\n }\n if (parentAnimation) {\n return parentAnimation.getFill();\n }\n return 'both';\n };\n const getDirection = () => {\n if (forceDirectionValue !== undefined) {\n return forceDirectionValue;\n }\n if (_direction !== undefined) {\n return _direction;\n }\n if (parentAnimation) {\n return parentAnimation.getDirection();\n }\n return 'normal';\n };\n const getEasing = () => {\n if (shouldForceLinearEasing) {\n return 'linear';\n }\n if (_easing !== undefined) {\n return _easing;\n }\n if (parentAnimation) {\n return parentAnimation.getEasing();\n }\n return 'linear';\n };\n const getDuration = () => {\n if (shouldForceSyncPlayback) {\n return 0;\n }\n if (forceDurationValue !== undefined) {\n return forceDurationValue;\n }\n if (_duration !== undefined) {\n return _duration;\n }\n if (parentAnimation) {\n return parentAnimation.getDuration();\n }\n return 0;\n };\n const getIterations = () => {\n if (_iterations !== undefined) {\n return _iterations;\n }\n if (parentAnimation) {\n return parentAnimation.getIterations();\n }\n return 1;\n };\n const getDelay = () => {\n if (forceDelayValue !== undefined) {\n return forceDelayValue;\n }\n if (_delay !== undefined) {\n return _delay;\n }\n if (parentAnimation) {\n return parentAnimation.getDelay();\n }\n return 0;\n };\n const getKeyframes = () => {\n return _keyframes;\n };\n const direction = animationDirection => {\n _direction = animationDirection;\n update(true);\n return ani;\n };\n const fill = animationFill => {\n _fill = animationFill;\n update(true);\n return ani;\n };\n const delay = animationDelay => {\n _delay = animationDelay;\n update(true);\n return ani;\n };\n const easing = animationEasing => {\n _easing = animationEasing;\n update(true);\n return ani;\n };\n const duration = animationDuration => {\n /**\n * CSS Animation Durations of 0ms work fine on Chrome\n * but do not run on Safari, so force it to 1ms to\n * get it to run on both platforms.\n */\n if (!supportsWebAnimations && animationDuration === 0) {\n animationDuration = 1;\n }\n _duration = animationDuration;\n update(true);\n return ani;\n };\n const iterations = animationIterations => {\n _iterations = animationIterations;\n update(true);\n return ani;\n };\n const parent = animation => {\n parentAnimation = animation;\n return ani;\n };\n const addElement = el => {\n if (el != null) {\n if (el.nodeType === 1) {\n elements.push(el);\n } else if (el.length >= 0) {\n for (let i = 0; i < el.length; i++) {\n elements.push(el[i]);\n }\n } else {\n console.error('Invalid addElement value');\n }\n }\n return ani;\n };\n const addAnimation = animationToAdd => {\n if (animationToAdd != null) {\n if (Array.isArray(animationToAdd)) {\n for (const animation of animationToAdd) {\n animation.parent(ani);\n childAnimations.push(animation);\n }\n } else {\n animationToAdd.parent(ani);\n childAnimations.push(animationToAdd);\n }\n }\n return ani;\n };\n const keyframes = keyframeValues => {\n const different = _keyframes !== keyframeValues;\n _keyframes = keyframeValues;\n if (different) {\n updateKeyframes(_keyframes);\n }\n return ani;\n };\n const updateKeyframes = keyframeValues => {\n if (supportsWebAnimations) {\n getWebAnimations().forEach(animation => {\n if (animation.effect.setKeyframes) {\n animation.effect.setKeyframes(keyframeValues);\n } else {\n const newEffect = new KeyframeEffect(animation.effect.target, keyframeValues, animation.effect.getTiming());\n animation.effect = newEffect;\n }\n });\n } else {\n initializeCSSAnimation();\n }\n };\n /**\n * Run all \"before\" animation hooks.\n */\n const beforeAnimation = () => {\n // Runs all before read callbacks\n _beforeAddReadFunctions.forEach(callback => callback());\n // Runs all before write callbacks\n _beforeAddWriteFunctions.forEach(callback => callback());\n // Updates styles and classes before animation runs\n const addClasses = beforeAddClasses;\n const removeClasses = beforeRemoveClasses;\n const styles = beforeStylesValue;\n elements.forEach(el => {\n const elementClassList = el.classList;\n addClasses.forEach(c => elementClassList.add(c));\n removeClasses.forEach(c => elementClassList.remove(c));\n for (const property in styles) {\n // eslint-disable-next-line no-prototype-builtins\n if (styles.hasOwnProperty(property)) {\n setStyleProperty(el, property, styles[property]);\n }\n }\n });\n };\n /**\n * Run all \"after\" animation hooks.\n */\n const afterAnimation = () => {\n clearCSSAnimationsTimeout();\n // Runs all after read callbacks\n _afterAddReadFunctions.forEach(callback => callback());\n // Runs all after write callbacks\n _afterAddWriteFunctions.forEach(callback => callback());\n // Updates styles and classes before animation ends\n const currentStep = willComplete ? 1 : 0;\n const addClasses = afterAddClasses;\n const removeClasses = afterRemoveClasses;\n const styles = afterStylesValue;\n elements.forEach(el => {\n const elementClassList = el.classList;\n addClasses.forEach(c => elementClassList.add(c));\n removeClasses.forEach(c => elementClassList.remove(c));\n for (const property in styles) {\n // eslint-disable-next-line no-prototype-builtins\n if (styles.hasOwnProperty(property)) {\n setStyleProperty(el, property, styles[property]);\n }\n }\n });\n onFinishCallbacks.forEach(onFinishCallback => {\n return onFinishCallback.c(currentStep, ani);\n });\n onFinishOneTimeCallbacks.forEach(onFinishCallback => {\n return onFinishCallback.c(currentStep, ani);\n });\n onFinishOneTimeCallbacks.length = 0;\n shouldCalculateNumAnimations = true;\n if (willComplete) {\n finished = true;\n }\n willComplete = true;\n };\n const animationFinish = () => {\n if (numAnimationsRunning === 0) {\n return;\n }\n numAnimationsRunning--;\n if (numAnimationsRunning === 0) {\n afterAnimation();\n if (parentAnimation) {\n parentAnimation.animationFinish();\n }\n }\n };\n const initializeCSSAnimation = (toggleAnimationName = true) => {\n cleanUpStyleSheets();\n const processedKeyframes = processKeyframes(_keyframes);\n elements.forEach(element => {\n if (processedKeyframes.length > 0) {\n const keyframeRules = generateKeyframeRules(processedKeyframes);\n keyframeName = animationId !== undefined ? animationId : generateKeyframeName(keyframeRules);\n const stylesheet = createKeyframeStylesheet(keyframeName, keyframeRules, element);\n stylesheets.push(stylesheet);\n setStyleProperty(element, 'animation-duration', `${getDuration()}ms`);\n setStyleProperty(element, 'animation-timing-function', getEasing());\n setStyleProperty(element, 'animation-delay', `${getDelay()}ms`);\n setStyleProperty(element, 'animation-fill-mode', getFill());\n setStyleProperty(element, 'animation-direction', getDirection());\n const iterationsCount = getIterations() === Infinity ? 'infinite' : getIterations().toString();\n setStyleProperty(element, 'animation-iteration-count', iterationsCount);\n setStyleProperty(element, 'animation-play-state', 'paused');\n if (toggleAnimationName) {\n setStyleProperty(element, 'animation-name', `${stylesheet.id}-alt`);\n }\n (0,_helpers_js__WEBPACK_IMPORTED_MODULE_4__.r)(() => {\n setStyleProperty(element, 'animation-name', stylesheet.id || null);\n });\n }\n });\n };\n const initializeWebAnimation = () => {\n elements.forEach(element => {\n const animation = element.animate(_keyframes, {\n id,\n delay: getDelay(),\n duration: getDuration(),\n easing: getEasing(),\n iterations: getIterations(),\n fill: getFill(),\n direction: getDirection()\n });\n animation.pause();\n webAnimations.push(animation);\n });\n if (webAnimations.length > 0) {\n webAnimations[0].onfinish = () => {\n animationFinish();\n };\n }\n };\n const initializeAnimation = (toggleAnimationName = true) => {\n beforeAnimation();\n if (_keyframes.length > 0) {\n if (supportsWebAnimations) {\n initializeWebAnimation();\n } else {\n initializeCSSAnimation(toggleAnimationName);\n }\n }\n initialized = true;\n };\n const setAnimationStep = step => {\n step = Math.min(Math.max(step, 0), 0.9999);\n if (supportsWebAnimations) {\n webAnimations.forEach(animation => {\n animation.currentTime = animation.effect.getComputedTiming().delay + getDuration() * step;\n animation.pause();\n });\n } else {\n const animationDuration = `-${getDuration() * step}ms`;\n elements.forEach(element => {\n if (_keyframes.length > 0) {\n setStyleProperty(element, 'animation-delay', animationDuration);\n setStyleProperty(element, 'animation-play-state', 'paused');\n }\n });\n }\n };\n const updateWebAnimation = step => {\n webAnimations.forEach(animation => {\n animation.effect.updateTiming({\n delay: getDelay(),\n duration: getDuration(),\n easing: getEasing(),\n iterations: getIterations(),\n fill: getFill(),\n direction: getDirection()\n });\n });\n if (step !== undefined) {\n setAnimationStep(step);\n }\n };\n const updateCSSAnimation = (toggleAnimationName = true, step) => {\n (0,_helpers_js__WEBPACK_IMPORTED_MODULE_4__.r)(() => {\n elements.forEach(element => {\n setStyleProperty(element, 'animation-name', keyframeName || null);\n setStyleProperty(element, 'animation-duration', `${getDuration()}ms`);\n setStyleProperty(element, 'animation-timing-function', getEasing());\n setStyleProperty(element, 'animation-delay', step !== undefined ? `-${step * getDuration()}ms` : `${getDelay()}ms`);\n setStyleProperty(element, 'animation-fill-mode', getFill() || null);\n setStyleProperty(element, 'animation-direction', getDirection() || null);\n const iterationsCount = getIterations() === Infinity ? 'infinite' : getIterations().toString();\n setStyleProperty(element, 'animation-iteration-count', iterationsCount);\n if (toggleAnimationName) {\n setStyleProperty(element, 'animation-name', `${keyframeName}-alt`);\n }\n (0,_helpers_js__WEBPACK_IMPORTED_MODULE_4__.r)(() => {\n setStyleProperty(element, 'animation-name', keyframeName || null);\n });\n });\n });\n };\n const update = (deep = false, toggleAnimationName = true, step) => {\n if (deep) {\n childAnimations.forEach(animation => {\n animation.update(deep, toggleAnimationName, step);\n });\n }\n if (supportsWebAnimations) {\n updateWebAnimation(step);\n } else {\n updateCSSAnimation(toggleAnimationName, step);\n }\n return ani;\n };\n const progressStart = (forceLinearEasing = false, step) => {\n childAnimations.forEach(animation => {\n animation.progressStart(forceLinearEasing, step);\n });\n pauseAnimation();\n shouldForceLinearEasing = forceLinearEasing;\n if (!initialized) {\n initializeAnimation();\n }\n update(false, true, step);\n return ani;\n };\n const progressStep = step => {\n childAnimations.forEach(animation => {\n animation.progressStep(step);\n });\n setAnimationStep(step);\n return ani;\n };\n const progressEnd = (playTo, step, dur) => {\n shouldForceLinearEasing = false;\n childAnimations.forEach(animation => {\n animation.progressEnd(playTo, step, dur);\n });\n if (dur !== undefined) {\n forceDurationValue = dur;\n }\n finished = false;\n willComplete = true;\n if (playTo === 0) {\n forceDirectionValue = getDirection() === 'reverse' ? 'normal' : 'reverse';\n if (forceDirectionValue === 'reverse') {\n willComplete = false;\n }\n if (supportsWebAnimations) {\n update();\n setAnimationStep(1 - step);\n } else {\n forceDelayValue = (1 - step) * getDuration() * -1;\n update(false, false);\n }\n } else if (playTo === 1) {\n if (supportsWebAnimations) {\n update();\n setAnimationStep(step);\n } else {\n forceDelayValue = step * getDuration() * -1;\n update(false, false);\n }\n }\n if (playTo !== undefined) {\n onFinish(() => {\n forceDurationValue = undefined;\n forceDirectionValue = undefined;\n forceDelayValue = undefined;\n }, {\n oneTimeCallback: true\n });\n if (!parentAnimation) {\n play();\n }\n }\n return ani;\n };\n const pauseAnimation = () => {\n if (initialized) {\n if (supportsWebAnimations) {\n webAnimations.forEach(animation => {\n animation.pause();\n });\n } else {\n elements.forEach(element => {\n setStyleProperty(element, 'animation-play-state', 'paused');\n });\n }\n paused = true;\n }\n };\n const pause = () => {\n childAnimations.forEach(animation => {\n animation.pause();\n });\n pauseAnimation();\n return ani;\n };\n const onAnimationEndFallback = () => {\n cssAnimationsTimerFallback = undefined;\n animationFinish();\n };\n const clearCSSAnimationsTimeout = () => {\n if (cssAnimationsTimerFallback) {\n clearTimeout(cssAnimationsTimerFallback);\n }\n };\n const playCSSAnimations = () => {\n clearCSSAnimationsTimeout();\n (0,_helpers_js__WEBPACK_IMPORTED_MODULE_4__.r)(() => {\n elements.forEach(element => {\n if (_keyframes.length > 0) {\n setStyleProperty(element, 'animation-play-state', 'running');\n }\n });\n });\n if (_keyframes.length === 0 || elements.length === 0) {\n animationFinish();\n } else {\n /**\n * This is a catchall in the event that a CSS Animation did not finish.\n * The Web Animations API has mechanisms in place for preventing this.\n * CSS Animations will not fire an `animationend` event\n * for elements with `display: none`. The Web Animations API\n * accounts for this, but using raw CSS Animations requires\n * this workaround.\n */\n const animationDelay = getDelay() || 0;\n const animationDuration = getDuration() || 0;\n const animationIterations = getIterations() || 1;\n // No need to set a timeout when animation has infinite iterations\n if (isFinite(animationIterations)) {\n cssAnimationsTimerFallback = setTimeout(onAnimationEndFallback, animationDelay + animationDuration * animationIterations + ANIMATION_END_FALLBACK_PADDING_MS);\n }\n animationEnd(elements[0], () => {\n clearCSSAnimationsTimeout();\n /**\n * Ensure that clean up\n * is always done a frame\n * before the onFinish handlers\n * are fired. Otherwise, there\n * may be flickering if a new\n * animation is started on the same\n * element too quickly\n */\n (0,_helpers_js__WEBPACK_IMPORTED_MODULE_4__.r)(() => {\n clearCSSAnimationPlayState();\n (0,_helpers_js__WEBPACK_IMPORTED_MODULE_4__.r)(animationFinish);\n });\n });\n }\n };\n const clearCSSAnimationPlayState = () => {\n elements.forEach(element => {\n removeStyleProperty(element, 'animation-duration');\n removeStyleProperty(element, 'animation-delay');\n removeStyleProperty(element, 'animation-play-state');\n });\n };\n const playWebAnimations = () => {\n webAnimations.forEach(animation => {\n animation.play();\n });\n if (_keyframes.length === 0 || elements.length === 0) {\n animationFinish();\n }\n };\n const resetAnimation = () => {\n if (supportsWebAnimations) {\n setAnimationStep(0);\n updateWebAnimation();\n } else {\n updateCSSAnimation();\n }\n };\n const play = opts => {\n return new Promise(resolve => {\n if (opts === null || opts === void 0 ? void 0 : opts.sync) {\n shouldForceSyncPlayback = true;\n onFinish(() => shouldForceSyncPlayback = false, {\n oneTimeCallback: true\n });\n }\n if (!initialized) {\n initializeAnimation();\n }\n if (finished) {\n resetAnimation();\n finished = false;\n }\n if (shouldCalculateNumAnimations) {\n numAnimationsRunning = childAnimations.length + 1;\n shouldCalculateNumAnimations = false;\n }\n onFinish(() => resolve(), {\n oneTimeCallback: true\n });\n childAnimations.forEach(animation => {\n animation.play();\n });\n if (supportsWebAnimations) {\n playWebAnimations();\n } else {\n playCSSAnimations();\n }\n paused = false;\n });\n };\n const stop = () => {\n childAnimations.forEach(animation => {\n animation.stop();\n });\n if (initialized) {\n cleanUpElements();\n initialized = false;\n }\n resetFlags();\n };\n const from = (property, value) => {\n const firstFrame = _keyframes[0];\n if (firstFrame !== undefined && (firstFrame.offset === undefined || firstFrame.offset === 0)) {\n firstFrame[property] = value;\n } else {\n _keyframes = [{\n offset: 0,\n [property]: value\n }, ..._keyframes];\n }\n return ani;\n };\n const to = (property, value) => {\n const lastFrame = _keyframes[_keyframes.length - 1];\n if (lastFrame !== undefined && (lastFrame.offset === undefined || lastFrame.offset === 1)) {\n lastFrame[property] = value;\n } else {\n _keyframes = [..._keyframes, {\n offset: 1,\n [property]: value\n }];\n }\n return ani;\n };\n const fromTo = (property, fromValue, toValue) => {\n return from(property, fromValue).to(property, toValue);\n };\n return ani = {\n parentAnimation,\n elements,\n childAnimations,\n id,\n animationFinish,\n from,\n to,\n fromTo,\n parent,\n play,\n pause,\n stop,\n destroy,\n keyframes,\n addAnimation,\n addElement,\n update,\n fill,\n direction,\n iterations,\n duration,\n easing,\n delay,\n getWebAnimations,\n getKeyframes,\n getFill,\n getDirection,\n getDelay,\n getIterations,\n getEasing,\n getDuration,\n afterAddRead,\n afterAddWrite,\n afterClearStyles,\n afterStyles,\n afterRemoveClass,\n afterAddClass,\n beforeAddRead,\n beforeAddWrite,\n beforeClearStyles,\n beforeStyles,\n beforeRemoveClass,\n beforeAddClass,\n onFinish,\n isRunning,\n progressStart,\n progressStep,\n progressEnd\n };\n};\n\n\n//# sourceURL=webpack://jandl/./node_modules/@ionic/core/components/animation.js?\n}");
-
-/***/ }),
-
-/***/ "./node_modules/@ionic/core/components/backdrop.js":
-/*!*********************************************************!*\
- !*** ./node_modules/@ionic/core/components/backdrop.js ***!
- \*********************************************************/
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ B: function() { return /* binding */ Backdrop; },\n/* harmony export */ d: function() { return /* binding */ defineCustomElement; }\n/* harmony export */ });\n/* harmony import */ var _stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @stencil/core/internal/client */ \"./node_modules/@stencil/core/internal/client/index.js\");\n/* harmony import */ var _ionic_global_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ionic-global.js */ \"./node_modules/@ionic/core/components/ionic-global.js\");\n/* harmony import */ var _gesture_controller_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./gesture-controller.js */ \"./node_modules/@ionic/core/components/gesture-controller.js\");\n/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n\n\n\nconst backdropIosCss = \":host{left:0;right:0;top:0;bottom:0;display:block;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);contain:strict;cursor:pointer;opacity:0.01;-ms-touch-action:none;touch-action:none;z-index:2}:host(.backdrop-hide){background:transparent}:host(.backdrop-no-tappable){cursor:auto}:host{background-color:var(--ion-backdrop-color, #000)}\";\nconst backdropMdCss = \":host{left:0;right:0;top:0;bottom:0;display:block;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);contain:strict;cursor:pointer;opacity:0.01;-ms-touch-action:none;touch-action:none;z-index:2}:host(.backdrop-hide){background:transparent}:host(.backdrop-no-tappable){cursor:auto}:host{background-color:var(--ion-backdrop-color, #000)}\";\nconst Backdrop = /*@__PURE__*/(0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__.proxyCustomElement)(class extends _stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__.HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionBackdropTap = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__.createEvent)(this, \"ionBackdropTap\", 7);\n this.blocker = _gesture_controller_js__WEBPACK_IMPORTED_MODULE_2__.G.createBlocker({\n disableScroll: true\n });\n /**\n * If `true`, the backdrop will be visible.\n */\n this.visible = true;\n /**\n * If `true`, the backdrop will can be clicked and will emit the `ionBackdropTap` event.\n */\n this.tappable = true;\n /**\n * If `true`, the backdrop will stop propagation on tap.\n */\n this.stopPropagation = true;\n }\n connectedCallback() {\n if (this.stopPropagation) {\n this.blocker.block();\n }\n }\n disconnectedCallback() {\n this.blocker.unblock();\n }\n onMouseDown(ev) {\n this.emitTap(ev);\n }\n emitTap(ev) {\n if (this.stopPropagation) {\n ev.preventDefault();\n ev.stopPropagation();\n }\n if (this.tappable) {\n this.ionBackdropTap.emit();\n }\n }\n render() {\n const mode = (0,_ionic_global_js__WEBPACK_IMPORTED_MODULE_1__.b)(this);\n return (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__.h)(_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__.Host, {\n tabindex: \"-1\",\n \"aria-hidden\": \"true\",\n class: {\n [mode]: true,\n 'backdrop-hide': !this.visible,\n 'backdrop-no-tappable': !this.tappable\n }\n });\n }\n static get style() {\n return {\n ios: backdropIosCss,\n md: backdropMdCss\n };\n }\n}, [33, \"ion-backdrop\", {\n \"visible\": [4],\n \"tappable\": [4],\n \"stopPropagation\": [4, \"stop-propagation\"]\n}, [[2, \"click\", \"onMouseDown\"]]]);\nfunction defineCustomElement() {\n if (typeof customElements === \"undefined\") {\n return;\n }\n const components = [\"ion-backdrop\"];\n components.forEach(tagName => {\n switch (tagName) {\n case \"ion-backdrop\":\n if (!customElements.get(tagName)) {\n customElements.define(tagName, Backdrop);\n }\n break;\n }\n });\n}\n\n\n//# sourceURL=webpack://jandl/./node_modules/@ionic/core/components/backdrop.js?\n}");
-
-/***/ }),
-
-/***/ "./node_modules/@ionic/core/components/button-active.js":
-/*!**************************************************************!*\
- !*** ./node_modules/@ionic/core/components/button-active.js ***!
- \**************************************************************/
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ c: function() { return /* binding */ createButtonActiveGesture; }\n/* harmony export */ });\n/* harmony import */ var _stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @stencil/core/internal/client */ \"./node_modules/@stencil/core/internal/client/index.js\");\n/* harmony import */ var _haptic_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./haptic.js */ \"./node_modules/@ionic/core/components/haptic.js\");\n/* harmony import */ var _index2_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index2.js */ \"./node_modules/@ionic/core/components/index2.js\");\n/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n\n\n\nconst createButtonActiveGesture = (el, isButton) => {\n let currentTouchedButton;\n let initialTouchedButton;\n const activateButtonAtPoint = (x, y, hapticFeedbackFn) => {\n if (typeof document === 'undefined') {\n return;\n }\n const target = document.elementFromPoint(x, y);\n if (!target || !isButton(target)) {\n clearActiveButton();\n return;\n }\n if (target !== currentTouchedButton) {\n clearActiveButton();\n setActiveButton(target, hapticFeedbackFn);\n }\n };\n const setActiveButton = (button, hapticFeedbackFn) => {\n currentTouchedButton = button;\n if (!initialTouchedButton) {\n initialTouchedButton = currentTouchedButton;\n }\n const buttonToModify = currentTouchedButton;\n (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__.writeTask)(() => buttonToModify.classList.add('ion-activated'));\n hapticFeedbackFn();\n };\n const clearActiveButton = (dispatchClick = false) => {\n if (!currentTouchedButton) {\n return;\n }\n const buttonToModify = currentTouchedButton;\n (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__.writeTask)(() => buttonToModify.classList.remove('ion-activated'));\n /**\n * Clicking on one button, but releasing on another button\n * does not dispatch a click event in browsers, so we\n * need to do it manually here. Some browsers will\n * dispatch a click if clicking on one button, dragging over\n * another button, and releasing on the original button. In that\n * case, we need to make sure we do not cause a double click there.\n */\n if (dispatchClick && initialTouchedButton !== currentTouchedButton) {\n currentTouchedButton.click();\n }\n currentTouchedButton = undefined;\n };\n return (0,_index2_js__WEBPACK_IMPORTED_MODULE_2__.createGesture)({\n el,\n gestureName: 'buttonActiveDrag',\n threshold: 0,\n onStart: ev => activateButtonAtPoint(ev.currentX, ev.currentY, _haptic_js__WEBPACK_IMPORTED_MODULE_1__.a),\n onMove: ev => activateButtonAtPoint(ev.currentX, ev.currentY, _haptic_js__WEBPACK_IMPORTED_MODULE_1__.b),\n onEnd: () => {\n clearActiveButton(true);\n (0,_haptic_js__WEBPACK_IMPORTED_MODULE_1__.c)();\n initialTouchedButton = undefined;\n }\n });\n};\n\n\n//# sourceURL=webpack://jandl/./node_modules/@ionic/core/components/button-active.js?\n}");
-
-/***/ }),
-
-/***/ "./node_modules/@ionic/core/components/button.js":
-/*!*******************************************************!*\
- !*** ./node_modules/@ionic/core/components/button.js ***!
- \*******************************************************/
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval("{__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ B: function() { return /* binding */ Button; },\n/* harmony export */ d: function() { return /* binding */ defineCustomElement; }\n/* harmony export */ });\n/* harmony import */ var _stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @stencil/core/internal/client */ \"./node_modules/@stencil/core/internal/client/index.js\");\n/* harmony import */ var _ionic_global_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ionic-global.js */ \"./node_modules/@ionic/core/components/ionic-global.js\");\n/* harmony import */ var _helpers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers.js */ \"./node_modules/@ionic/core/components/helpers.js\");\n/* harmony import */ var _index8_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index8.js */ \"./node_modules/@ionic/core/components/index8.js\");\n/* harmony import */ var _theme_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./theme.js */ \"./node_modules/@ionic/core/components/theme.js\");\n/* harmony import */ var _ripple_effect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ripple-effect.js */ \"./node_modules/@ionic/core/components/ripple-effect.js\");\n/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\n\n\n\n\n\n\nconst buttonIosCss = \":host{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}:host(.button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.button-solid){--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff)}:host(.button-outline){--border-color:var(--ion-color-primary, #3880ff);--background:transparent;--color:var(--ion-color-primary, #3880ff)}:host(.button-clear){--border-width:0;--background:transparent;--color:var(--ion-color-primary, #3880ff)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;display:block;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;display:block;width:100%;contain:content}:host(.button-full:not(.button-round)) .button-native{border-radius:0;border-right-width:0;border-left-width:0}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;width:100%;height:100%;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-native::-moz-focus-inner{border:0}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}::slotted(ion-icon){font-size:1.4em;pointer-events:none}::slotted(ion-icon[slot=start]){margin-left:-0.3em;margin-right:0.3em;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}::slotted(ion-icon[slot=end]){margin-left:0.3em;margin-right:-0.2em;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em}}::slotted(ion-icon[slot=icon-only]){font-size:1.8em}ion-ripple-effect{color:var(--ripple-color)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}:host(.ion-activated){color:var(--color-activated)}:host(.ion-activated) .button-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}:host(.ion-focused){color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){:host(:hover){color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.button-solid.ion-color) .button-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.button-outline.ion-color) .button-native{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}:host(.button-clear.ion-color) .button-native{background:transparent;color:var(--ion-color-base)}:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{color:var(--ion-toolbar-color, var(--color))}:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}:host{--border-radius:10px;--padding-top:0;--padding-bottom:0;--padding-start:1em;--padding-end:1em;--transition:background-color, opacity 100ms linear;margin-left:2px;margin-right:2px;margin-top:4px;margin-bottom:4px;height:2.8em;font-size:16px;font-weight:500;letter-spacing:-0.03em}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}:host(.button-solid){--background-activated:var(--ion-color-primary-shade, #3171e0);--background-focused:var(--ion-color-primary-shade, #3171e0);--background-hover:var(--ion-color-primary-tint, #4c8dff);--background-activated-opacity:1;--background-focused-opacity:1;--background-hover-opacity:1}:host(.button-outline){--border-radius:10px;--border-width:1px;--border-style:solid;--background-activated:var(--ion-color-primary, #3880ff);--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;--color-activated:var(--ion-color-primary-contrast, #fff)}:host(.button-clear){--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;font-size:17px;font-weight:normal;letter-spacing:0}:host(.button-large){--border-radius:12px;--padding-top:0;--padding-start:1em;--padding-end:1em;--padding-bottom:0;height:2.8em;font-size:20px}:host(.button-small){--border-radius:6px;--padding-top:0;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:0;height:2.1em;font-size:13px}:host(.button-round){--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}:host(.button-strong){font-weight:600}:host(.button-clear.ion-activated){opacity:0.4}:host(.button-outline.ion-activated.ion-color) .button-native{color:var(--ion-color-contrast)}:host(.button-outline.ion-activated.ion-color) .button-native::after{background:var(--ion-color-base)}:host(.button-solid.ion-color.ion-activated) .button-native::after{background:var(--ion-color-shade)}:host(.button-outline.ion-focused.ion-color) .button-native,:host(.button-clear.ion-focused.ion-color) .button-native{color:var(--ion-color-base)}:host(.button-outline.ion-focused.ion-color) .button-native::after,:host(.button-clear.ion-focused.ion-color) .button-native::after{background:var(--ion-color-base)}:host(.button-solid.ion-color.ion-focused) .button-native::after{background:var(--ion-color-shade)}@media (any-hover: hover){:host(.button-clear:hover),:host(.button-outline:hover){opacity:0.6}:host(.button-clear.ion-color:hover) .button-native,:host(.button-outline.ion-color:hover) .button-native{color:var(--ion-color-base)}:host(.button-clear.ion-color:hover) .button-native::after,:host(.button-outline.ion-color:hover) .button-native::after{background:transparent}:host(.button-solid.ion-color:hover) .button-native::after{background:var(--ion-color-tint)}:host(:hover.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native::after{background:#fff;opacity:0.1}}\";\nconst buttonMdCss = \":host{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}:host(.button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.button-solid){--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff)}:host(.button-outline){--border-color:var(--ion-color-primary, #3880ff);--background:transparent;--color:var(--ion-color-primary, #3880ff)}:host(.button-clear){--border-width:0;--background:transparent;--color:var(--ion-color-primary, #3880ff)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;display:block;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;display:block;width:100%;contain:content}:host(.button-full:not(.button-round)) .button-native{border-radius:0;border-right-width:0;border-left-width:0}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;width:100%;height:100%;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.button-native{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.button-native::-moz-focus-inner{border:0}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}::slotted(ion-icon){font-size:1.4em;pointer-events:none}::slotted(ion-icon[slot=start]){margin-left:-0.3em;margin-right:0.3em;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em}}::slotted(ion-icon[slot=end]){margin-left:0.3em;margin-right:-0.2em;margin-top:0;margin-bottom:0}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em}}::slotted(ion-icon[slot=icon-only]){font-size:1.8em}ion-ripple-effect{color:var(--ripple-color)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\\\"\\\";opacity:0}:host(.ion-activated){color:var(--color-activated)}:host(.ion-activated) .button-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}:host(.ion-focused){color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){:host(:hover){color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.button-solid.ion-color) .button-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.button-outline.ion-color) .button-native{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}:host(.button-clear.ion-color) .button-native{background:transparent;color:var(--ion-color-base)}:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{color:var(--ion-toolbar-color, var(--color))}:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}:host{--border-radius:4px;--padding-top:0;--padding-bottom:0;--padding-start:1.1em;--padding-end:1.1em;--transition:box-shadow 280ms cubic-bezier(.4, 0, .2, 1),\\n background-color 15ms linear,\\n color 15ms linear;margin-left:2px;margin-right:2px;margin-top:4px;margin-bottom:4px;height:36px;font-size:14px;font-weight:500;letter-spacing:0.06em;text-transform:uppercase}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{margin-left:unset;margin-right:unset;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px}}:host(.button-solid){--background-activated:transparent;--background-hover:var(--ion-color-primary-contrast, #fff);--background-focused:var(--ion-color-primary-contrast, #fff);--background-activated-opacity:0;--background-focused-opacity:.24;--background-hover-opacity:.08;--box-shadow:0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)}:host(.button-solid.ion-activated){--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12)}:host(.button-outline){--border-width:2px;--border-style:solid;--box-shadow:none;--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:var(--ion-color-primary, #3880ff);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}:host(.button-outline.ion-activated.ion-color) .button-native{background:transparent}:host(.button-clear){--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:var(--ion-color-primary, #3880ff);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}:host(.button-round){--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}:host(.button-large){--padding-top:0;--padding-start:1em;--padding-end:1em;--padding-bottom:0;height:2.8em;font-size:20px}:host(.button-small){--padding-top:0;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:0;height:2.1em;font-size:13px}:host(.button-strong){font-weight:bold}::slotted(ion-icon[slot=icon-only]){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host(.button-solid.ion-color.ion-focused) .button-native::after{background:var(--ion-color-contrast)}:host(.button-clear.ion-color.ion-focused) .button-native::after,:host(.button-outline.ion-color.ion-focused) .button-native::after{background:var(--ion-color-base)}@media (any-hover: hover){:host(.button-solid.ion-color:hover) .button-native::after{background:var(--ion-color-contrast)}:host(.button-clear.ion-color:hover) .button-native::after,:host(.button-outline.ion-color:hover) .button-native::after{background:var(--ion-color-base)}}\";\nconst Button = /*@__PURE__*/(0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__.proxyCustomElement)(class extends _stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__.HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.__attachShadow();\n this.ionFocus = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__.createEvent)(this, \"ionFocus\", 7);\n this.ionBlur = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_0__.createEvent)(this, \"ionBlur\", 7);\n this.inItem = false;\n this.inListHeader = false;\n this.inToolbar = false;\n this.inheritedAttributes = {};\n /**\n * The type of button.\n */\n this.buttonType = 'button';\n /**\n * If `true`, the user cannot interact with the button.\n */\n this.disabled = false;\n /**\n * When using a router, it specifies the transition direction when navigating to\n * another page using `href`.\n */\n this.routerDirection = 'forward';\n /**\n * If `true`, activates a button with a heavier font weight.\n */\n this.strong = false;\n /**\n * The type of the button.\n */\n this.type = 'button';\n this.handleClick = ev => {\n const {\n el\n } = this;\n if (this.type === 'button') {\n (0,_theme_js__WEBPACK_IMPORTED_MODULE_4__.o)(this.href, ev, this.routerDirection, this.routerAnimation);\n } else if ((0,_helpers_js__WEBPACK_IMPORTED_MODULE_2__.q)(el)) {\n // this button wants to specifically submit a form\n // climb up the dom to see if we're in a