/* * 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/@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/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\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?"); /***/ }), /***/ "./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?"); /***/ }), /***/ "./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?"); /***/ }), /***/ "./node_modules/@intlify/core-base/dist/core-base.esm-bundler.js": /*!***********************************************************************!*\ !*** ./node_modules/@intlify/core-base/dist/core-base.esm-bundler.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 /* reexport safe */ _intlify_message_compiler__WEBPACK_IMPORTED_MODULE_1__.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 */ \"compileToFunction\": function() { return /* binding */ compileToFunction; },\n/* harmony export */ \"createCompileError\": function() { return /* reexport safe */ _intlify_message_compiler__WEBPACK_IMPORTED_MODULE_1__.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 */ \"getWarnMessage\": function() { return /* binding */ getWarnMessage; },\n/* harmony export */ \"handleMissing\": function() { return /* binding */ handleMissing; },\n/* harmony export */ \"initI18nDevTools\": function() { return /* binding */ initI18nDevTools; },\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 */ \"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_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 _intlify_shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @intlify/shared */ \"./node_modules/@intlify/shared/dist/shared.esm-bundler.js\");\n/* harmony import */ var _intlify_message_compiler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @intlify/message-compiler */ \"./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js\");\n/* harmony import */ var _intlify_devtools_if__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @intlify/devtools-if */ \"./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js\");\n/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n/*!\n * core-base v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n\n\n\n\nconst pathStateMachine = [];\npathStateMachine[0 /* BEFORE_PATH */] = {\n [\"w\" /* WORKSPACE */]: [0 /* BEFORE_PATH */],\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\n};\n\npathStateMachine[1 /* IN_PATH */] = {\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */],\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */],\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */],\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */]\n};\n\npathStateMachine[2 /* BEFORE_IDENT */] = {\n [\"w\" /* WORKSPACE */]: [2 /* BEFORE_IDENT */],\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */]\n};\n\npathStateMachine[3 /* IN_IDENT */] = {\n [\"i\" /* IDENT */]: [3 /* IN_IDENT */, 0 /* APPEND */],\n [\"0\" /* ZERO */]: [3 /* IN_IDENT */, 0 /* APPEND */],\n [\"w\" /* WORKSPACE */]: [1 /* IN_PATH */, 1 /* PUSH */],\n [\".\" /* DOT */]: [2 /* BEFORE_IDENT */, 1 /* PUSH */],\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 1 /* PUSH */],\n [\"o\" /* END_OF_FAIL */]: [7 /* AFTER_PATH */, 1 /* PUSH */]\n};\n\npathStateMachine[4 /* IN_SUB_PATH */] = {\n [\"'\" /* SINGLE_QUOTE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */],\n [\"\\\"\" /* DOUBLE_QUOTE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */],\n [\"[\" /* LEFT_BRACKET */]: [4 /* IN_SUB_PATH */, 2 /* INC_SUB_PATH_DEPTH */],\n\n [\"]\" /* RIGHT_BRACKET */]: [1 /* IN_PATH */, 3 /* PUSH_SUB_PATH */],\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\n [\"l\" /* ELSE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */]\n};\n\npathStateMachine[5 /* IN_SINGLE_QUOTE */] = {\n [\"'\" /* SINGLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\n [\"l\" /* ELSE */]: [5 /* IN_SINGLE_QUOTE */, 0 /* APPEND */]\n};\n\npathStateMachine[6 /* IN_DOUBLE_QUOTE */] = {\n [\"\\\"\" /* DOUBLE_QUOTE */]: [4 /* IN_SUB_PATH */, 0 /* APPEND */],\n [\"o\" /* END_OF_FAIL */]: 8 /* ERROR */,\n [\"l\" /* ELSE */]: [6 /* IN_DOUBLE_QUOTE */, 0 /* APPEND */]\n};\n/**\r\n * Check if an expression is a literal value.\r\n */\nconst literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral(exp) {\n return literalValueRE.test(exp);\n}\n/**\r\n * Strip quotes from a string\r\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/**\r\n * Determine the type of a character in a keypath.\r\n */\nfunction getPathCharType(ch) {\n if (ch === undefined || ch === null) {\n return \"o\" /* END_OF_FAIL */;\n }\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\" /* 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\" /* WORKSPACE */;\n }\n\n return \"i\" /* IDENT */;\n}\n/**\r\n * Format a subPath, return its plain form if it is\r\n * a literal string or number. Otherwise prepend the\r\n * dynamic indicator (*).\r\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) : \"*\" /* ASTARISK */ + trimmed;\n}\n/**\r\n * Parse a string path into an array of segments\r\n */\nfunction parse(path) {\n const keys = [];\n let index = -1;\n let mode = 0 /* 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 /* APPEND */] = () => {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n actions[1 /* PUSH */] = () => {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n actions[2 /* INC_SUB_PATH_DEPTH */] = () => {\n actions[0 /* APPEND */]();\n subPathDepth++;\n };\n actions[3 /* PUSH_SUB_PATH */] = () => {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = 4 /* IN_SUB_PATH */;\n actions[0 /* 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 /* PUSH */]();\n }\n }\n };\n\n function maybeUnescapeQuote() {\n const nextChar = path[index + 1];\n if (mode === 5 /* IN_SINGLE_QUOTE */ && nextChar === \"'\" /* SINGLE_QUOTE */ || mode === 6 /* IN_DOUBLE_QUOTE */ && nextChar === \"\\\"\" /* DOUBLE_QUOTE */) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[0 /* 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\" /* ELSE */] || 8 /* ERROR */;\n // check parse error\n if (transition === 8 /* 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 /* AFTER_PATH */) {\n return keys;\n }\n }\n}\n// path token cache\nconst cache = new Map();\n/**\r\n * key-value message resolver\r\n *\r\n * @remarks\r\n * Resolves messages with the key-value structure. Note that messages with a hierarchical structure such as objects cannot be resolved\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\nfunction resolveWithKeyValue(obj, path) {\n return (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isObject)(obj) ? obj[path] : null;\n}\n/**\r\n * message resolver\r\n *\r\n * @remarks\r\n * Resolves messages. messages with a hierarchical structure such as objects can be resolved. This resolver is used in VueI18n as default.\r\n *\r\n * @param obj - A target object to be resolved with path\r\n * @param path - A {@link Path | path} to resolve the value of message\r\n *\r\n * @returns A resolved {@link PathValue | path value}\r\n *\r\n * @VueI18nGeneral\r\n */\nfunction resolveValue(obj, path) {\n // check object\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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 val = last[hit[i]];\n if (val === undefined) {\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 ? '' : values.join('');\nconst DEFAULT_INTERPOLATE = _intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isNumber)(options.pluralIndex) ? options.pluralIndex : -1;\n // prettier-ignore\n return options.named && ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isNumber)(options.named.count) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isNumber)(options.named.n)) ? (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isNumber)(options.named.count) ? options.named.count : (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isObject)(options.pluralRules) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(locale) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isFunction)(options.pluralRules[locale]) ? options.pluralRules[locale] : pluralDefault;\n const orgPluralRule = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isObject)(options.pluralRules) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(locale) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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 || {};\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isFunction)(options.messages) ? options.messages(key) : (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isPlainObject)(options.processor) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isFunction)(options.processor.normalize) ? options.processor.normalize : DEFAULT_NORMALIZE;\n const interpolate = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(options.processor) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isFunction)(options.processor.interpolate) ? options.processor.interpolate : DEFAULT_INTERPOLATE;\n const type = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(options.processor) && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isObject)(arg1)) {\n modifier = arg1.modifier || modifier;\n type = arg1.type || type;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(arg1)) {\n modifier = arg1 || modifier;\n }\n } else if (args.length === 2) {\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(arg1)) {\n modifier = arg1 || modifier;\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(arg2)) {\n type = arg2 || type;\n }\n }\n let msg = message(key)(ctx);\n // The message in vnode resolved with linked are returned as an array by processor.nomalize\n if (type === 'vnode' && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isArray)(msg) && modifier) {\n msg = msg[0];\n }\n return modifier ? _modifier(modifier)(msg, type) : msg;\n };\n const ctx = {\n [\"list\" /* LIST */]: list,\n [\"named\" /* NAMED */]: named,\n [\"plural\" /* PLURAL */]: plural,\n [\"linked\" /* LINKED */]: linked,\n [\"message\" /* MESSAGE */]: message,\n [\"type\" /* TYPE */]: type,\n [\"interpolate\" /* INTERPOLATE */]: interpolate,\n [\"normalize\" /* NORMALIZE */]: normalize\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(_intlify_devtools_if__WEBPACK_IMPORTED_MODULE_3__.IntlifyDevToolsHooks.I18nInit, {\n timestamp: Date.now(),\n i18n,\n version,\n meta\n });\n}\nconst translateDevTools = /* #__PURE__*/createDevToolsHook(_intlify_devtools_if__WEBPACK_IMPORTED_MODULE_3__.IntlifyDevToolsHooks.FunctionTranslate);\nfunction createDevToolsHook(hook) {\n return payloads => devtools && devtools.emit(hook, payloads);\n}\nconst CoreWarnCodes = {\n NOT_FOUND_KEY: 1,\n FALLBACK_TO_TRANSLATE: 2,\n CANNOT_FORMAT_NUMBER: 3,\n FALLBACK_TO_NUMBER_FORMAT: 4,\n CANNOT_FORMAT_DATE: 5,\n FALLBACK_TO_DATE_FORMAT: 6,\n __EXTEND_POINT__: 7\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};\nfunction getWarnMessage(code, ...args) {\n return (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.format)(warnMessages[code], ...args);\n}\n\n/**\r\n * Fallback with simple implemenation\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a simple fallback algorithm.\r\n *\r\n * Basically, it returns the value as specified in the `fallbackLocale` props, and is processed with the fallback inside intlify.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nGeneral\r\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_2__.isArray)(fallback) ? fallback : (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isObject)(fallback) ? Object.keys(fallback) : (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(fallback) ? [fallback] : [start])])];\n}\n/**\r\n * Fallback with locale chain\r\n *\r\n * @remarks\r\n * A fallback locale function implemented with a fallback chain algorithm. It's used in VueI18n as default.\r\n *\r\n * @param ctx - A {@link CoreContext | context}\r\n * @param fallback - A {@link FallbackLocale | fallback locale}\r\n * @param start - A starting {@link Locale | locale}\r\n *\r\n * @returns Fallback locales\r\n *\r\n * @VueI18nSee [Fallbacking](../guide/essentials/fallback)\r\n *\r\n * @VueI18nGeneral\r\n */\nfunction fallbackWithLocaleChain(ctx, fallback, start) {\n const startLocale = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.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_2__.isArray)(fallback) || !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(fallback) ? fallback : fallback['default'] ? fallback['default'] : null;\n // convert defaults to array\n block = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(defaults) ? [defaults] : defaults;\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isBoolean)(follow); i++) {\n const locale = block[i];\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isArray)(blocks) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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/**\r\n * Intlify core-base version\r\n * @internal\r\n */\nconst VERSION = '9.2.2';\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_2__.isString)(val) ? val.toUpperCase() : type === 'vnode' && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isString)(val) ? val.toLowerCase() : type === 'vnode' && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isString)(val) ? capitalize(val) : type === 'vnode' && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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/**\r\n * Register the message resolver\r\n *\r\n * @param resolver - A {@link MessageResolver} function\r\n *\r\n * @VueI18nGeneral\r\n */\nfunction registerMessageResolver(resolver) {\n _resolver = resolver;\n}\nlet _fallbacker;\n/**\r\n * Register the locale fallbacker\r\n *\r\n * @param fallbacker - A {@link LocaleFallbacker} function\r\n *\r\n * @VueI18nGeneral\r\n */\nfunction registerLocaleFallbacker(fallbacker) {\n _fallbacker = fallbacker;\n}\n// Additional Meta for Intlify DevTools\nlet _additionalMeta = null;\nconst setAdditionalMeta = meta => {\n _additionalMeta = meta;\n};\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 version = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(options.version) ? options.version : VERSION;\n const locale = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(options.locale) ? options.locale : DEFAULT_LOCALE;\n const fallbackLocale = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isArray)(options.fallbackLocale) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(options.fallbackLocale) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(options.fallbackLocale) || options.fallbackLocale === false ? options.fallbackLocale : locale;\n const messages = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(options.messages) ? options.messages : {\n [locale]: {}\n };\n const datetimeFormats = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(options.datetimeFormats) ? options.datetimeFormats : {\n [locale]: {}\n };\n const numberFormats = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(options.numberFormats) ? options.numberFormats : {\n [locale]: {}\n };\n const modifiers = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.assign)({}, options.modifiers || {}, getDefaultLinkedModifiers());\n const pluralRules = options.pluralRules || {};\n const missing = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isFunction)(options.missing) ? options.missing : null;\n const missingWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isBoolean)(options.missingWarn) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isRegExp)(options.missingWarn) ? options.missingWarn : true;\n const fallbackWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isBoolean)(options.fallbackWarn) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isFunction)(options.postTranslation) ? options.postTranslation : null;\n const processor = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(options.processor) ? options.processor : null;\n const warnHtmlMessage = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isBoolean)(options.warnHtmlMessage) ? options.warnHtmlMessage : true;\n const escapeParameter = !!options.escapeParameter;\n const messageCompiler = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isFunction)(options.messageCompiler) ? options.messageCompiler : _compiler;\n const messageResolver = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isFunction)(options.messageResolver) ? options.messageResolver : _resolver || resolveWithKeyValue;\n const localeFallbacker = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isFunction)(options.localeFallbacker) ? options.localeFallbacker : _fallbacker || fallbackWithSimple;\n const fallbackContext = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isObject)(options.fallbackContext) ? options.fallbackContext : undefined;\n const onWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isFunction)(options.onWarn) ? options.onWarn : _intlify_shared__WEBPACK_IMPORTED_MODULE_2__.warn;\n // setup internal options\n const internalOptions = options;\n const __datetimeFormatters = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isObject)(internalOptions.__datetimeFormatters) ? internalOptions.__datetimeFormatters : new Map();\n const __numberFormatters = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isObject)(internalOptions.__numberFormatters) ? internalOptions.__numberFormatters : new Map();\n const __meta = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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}\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\" /* 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_2__.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/* eslint-enable @typescript-eslint/no-explicit-any */\n\nconst RE_HTML_TAG = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nconst WARN_MESSAGE = `Detected HTML in '{source}' message. Recommend not using HTML messages to avoid XSS.`;\nfunction checkHtmlMessage(source, options) {\n const warnHtmlMessage = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isBoolean)(options.warnHtmlMessage) ? options.warnHtmlMessage : true;\n if (warnHtmlMessage && RE_HTML_TAG.test(source)) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.warn)((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.format)(WARN_MESSAGE, {\n source\n }));\n }\n}\nconst defaultOnCacheKey = source => source;\nlet compileCache = Object.create(null);\nfunction clearCompileCache() {\n compileCache = Object.create(null);\n}\nfunction compileToFunction(source, options = {}) {\n {\n // check HTML message\n true && checkHtmlMessage(source, options);\n // check caches\n const onCacheKey = options.onCacheKey || defaultOnCacheKey;\n const key = onCacheKey(source);\n const cached = compileCache[key];\n if (cached) {\n return cached;\n }\n // compile error detecting\n let occurred = false;\n const onError = options.onError || _intlify_message_compiler__WEBPACK_IMPORTED_MODULE_1__.defaultOnError;\n options.onError = err => {\n occurred = true;\n onError(err);\n };\n // compile\n const {\n code\n } = (0,_intlify_message_compiler__WEBPACK_IMPORTED_MODULE_1__.baseCompile)(source, options);\n // evaluate function\n const msg = new Function(`return ${code}`)();\n // if occurred compile error, don't cache\n return !occurred ? compileCache[key] = msg : msg;\n }\n}\nlet code = _intlify_message_compiler__WEBPACK_IMPORTED_MODULE_1__.CompileErrorCodes.__EXTEND_POINT__;\nconst inc = () => ++code;\nconst CoreErrorCodes = {\n INVALID_ARGUMENT: code,\n INVALID_DATE_ARGUMENT: inc(),\n INVALID_ISO_DATE_ARGUMENT: inc(),\n __EXTEND_POINT__: inc() // 18\n};\n\nfunction createCoreError(code) {\n return (0,_intlify_message_compiler__WEBPACK_IMPORTED_MODULE_1__.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};\nconst NOOP_MESSAGE_FUNCTION = () => '';\nconst isMessageFunction = val => (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isBoolean)(options.missingWarn) ? options.missingWarn : context.missingWarn;\n const fallbackWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isBoolean)(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn;\n const escapeParameter = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isBoolean)(options.escapeParameter) ? options.escapeParameter : context.escapeParameter;\n const resolvedMessage = !!options.resolvedMessage;\n // prettier-ignore\n const defaultMsgOrKey = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(options.default) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isBoolean)(options.default) // default by function option\n ? !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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 = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(options.locale) ? options.locale : context.locale;\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] || {}];\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_2__.isString)(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_2__.isString)(format) || isMessageFunction(format)) || !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(targetLocale))) {\n return unresolving ? NOT_REOSLVED : key;\n }\n if ( true && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(format) && context.messageCompiler == null) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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 errorDetector = () => {\n occurred = true;\n };\n // compile message format\n const msg = !isMessageFunction(format) ? compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) : 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 const ret = postTranslation ? postTranslation(messaged, key) : messaged;\n // NOTE: experimental !!\n if (true) {\n // prettier-ignore\n const payloads = {\n timestamp: Date.now(),\n key: (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(key) ? key : isMessageFunction(format) ? format.key : '',\n locale: targetLocale || (isMessageFunction(format) ? format.locale : ''),\n format: (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(format) ? format : isMessageFunction(format) ? format.source : '',\n message: ret\n };\n payloads.meta = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.assign)({}, context.__meta, getAdditionalMeta() || {});\n translateDevTools(payloads);\n }\n return ret;\n}\nfunction escapeParams(options) {\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isArray)(options.list)) {\n options.list = options.list.map(item => (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(item) ? (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.escapeHtml)(item) : item);\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isObject)(options.named)) {\n Object.keys(options.named).forEach(key => {\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(options.named[key])) {\n options.named[key] = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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 = {};\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 && 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\" /* FALBACK */, {\n type,\n key,\n from,\n to,\n groupId: `${type}:${key}`\n });\n }\n }\n message = messages[targetLocale] || {};\n // for vue-devtools timeline event\n let start = null;\n let startTag;\n let endTag;\n if ( true && _intlify_shared__WEBPACK_IMPORTED_MODULE_2__.inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-resolve-start';\n endTag = 'intlify-message-resolve-end';\n _intlify_shared__WEBPACK_IMPORTED_MODULE_2__.mark && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start && format) {\n emitter.emit(\"message-resolve\" /* MESSAGE_RESOLVE */, {\n type: \"message-resolve\" /* 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_2__.mark && _intlify_shared__WEBPACK_IMPORTED_MODULE_2__.measure) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.mark)(endTag);\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.measure)('intlify message resolve', startTag, endTag);\n }\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(format) || (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isFunction)(format)) break;\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 from = to;\n }\n return [format, targetLocale, message];\n}\nfunction compileMessageFormat(context, key, targetLocale, format, cacheBaseKey, errorDetector) {\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_2__.inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-compilation-start';\n endTag = 'intlify-message-compilation-end';\n _intlify_shared__WEBPACK_IMPORTED_MODULE_2__.mark && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.mark)(startTag);\n }\n const msg = messageCompiler(format, getCompileOptions(context, targetLocale, cacheBaseKey, format, warnHtmlMessage, errorDetector));\n // for vue-devtools timeline event\n if ( true && _intlify_shared__WEBPACK_IMPORTED_MODULE_2__.inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start) {\n emitter.emit(\"message-compilation\" /* MESSAGE_COMPILATION */, {\n type: \"message-compilation\" /* MESSAGE_COMPILATION */,\n message: format,\n time: end - start,\n groupId: `${'translate'}:${key}`\n });\n }\n if (startTag && endTag && _intlify_shared__WEBPACK_IMPORTED_MODULE_2__.mark && _intlify_shared__WEBPACK_IMPORTED_MODULE_2__.measure) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.mark)(endTag);\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.inBrowser) {\n start = window.performance.now();\n startTag = 'intlify-message-evaluation-start';\n endTag = 'intlify-message-evaluation-end';\n _intlify_shared__WEBPACK_IMPORTED_MODULE_2__.mark && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.mark)(startTag);\n }\n const messaged = msg(msgCtx);\n // for vue-devtools timeline event\n if ( true && _intlify_shared__WEBPACK_IMPORTED_MODULE_2__.inBrowser) {\n const end = window.performance.now();\n const emitter = context.__v_emitter;\n if (emitter && start) {\n emitter.emit(\"message-evaluation\" /* MESSAGE_EVALUATION */, {\n type: \"message-evaluation\" /* 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_2__.mark && _intlify_shared__WEBPACK_IMPORTED_MODULE_2__.measure) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.mark)(endTag);\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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 = {};\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(arg1) && !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isNumber)(arg1) && !isMessageFunction(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n // prettier-ignore\n const key = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isNumber)(arg1) ? String(arg1) : isMessageFunction(arg1) ? arg1 : arg1;\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isNumber)(arg2)) {\n options.plural = arg2;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(arg2)) {\n options.default = arg2;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(arg2) && !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isEmptyObject)(arg2)) {\n options.named = arg2;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isArray)(arg2)) {\n options.list = arg2;\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isNumber)(arg3)) {\n options.plural = arg3;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(arg3)) {\n options.default = arg3;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(arg3)) {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.assign)(options, arg3);\n }\n return [key, options];\n}\nfunction getCompileOptions(context, locale, key, source, warnHtmlMessage, errorDetector) {\n return {\n warnHtmlMessage,\n onError: err => {\n errorDetector && errorDetector(err);\n if (true) {\n const message = `Message compilation error: ${err.message}`;\n const codeFrame = err.location && (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.generateCodeFrame)(source, err.location.start.offset, err.location.end.offset);\n const emitter = context.__v_emitter;\n if (emitter) {\n emitter.emit(\"compile-error\" /* 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 {}\n },\n onCacheKey: source => (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.generateFormatCacheKey)(locale, key, source)\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_2__.isString)(val)) {\n let occurred = false;\n const errorDetector = () => {\n occurred = true;\n };\n const msg = compileMessageFormat(context, key, locale, val, key, errorDetector);\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_2__.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_2__.isBoolean)(options.missingWarn) ? options.missingWarn : context.missingWarn;\n const fallbackWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isBoolean)(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn;\n const part = !!options.part;\n const locale = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(options.locale) ? options.locale : context.locale;\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_2__.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\" /* 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_2__.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_2__.isPlainObject)(format) || !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.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 = {};\n let overrides = {};\n let value;\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.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_2__.isNumber)(arg1)) {\n value = arg1;\n } else {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(arg2)) {\n options.key = arg2;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isString)(arg3)) {\n options.locale = arg3;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(arg3)) {\n overrides = arg3;\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isBoolean)(options.missingWarn) ? options.missingWarn : context.missingWarn;\n const fallbackWarn = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isBoolean)(options.fallbackWarn) ? options.fallbackWarn : context.fallbackWarn;\n const part = !!options.part;\n const locale = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(options.locale) ? options.locale : context.locale;\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_2__.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\" /* 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_2__.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_2__.isPlainObject)(format) || !(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(targetLocale)) {\n return unresolving ? NOT_REOSLVED : key;\n }\n let id = `${targetLocale}__${key}`;\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.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 = {};\n let overrides = {};\n if (!(0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isNumber)(arg1)) {\n throw createCoreError(CoreErrorCodes.INVALID_ARGUMENT);\n }\n const value = arg1;\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isString)(arg2)) {\n options.key = arg2;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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_2__.isString)(arg3)) {\n options.locale = arg3;\n } else if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.isPlainObject)(arg3)) {\n overrides = arg3;\n }\n if ((0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.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// TODO: we could not exports for Node native ES Moudles yet...\n{\n if (typeof __INTLIFY_PROD_DEVTOOLS__ !== 'boolean') {\n (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_2__.getGlobalThis)().__INTLIFY_PROD_DEVTOOLS__ = false;\n }\n}\n\n\n//# sourceURL=webpack://jandl/./node_modules/@intlify/core-base/dist/core-base.esm-bundler.js?"); /***/ }), /***/ "./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js": /*!***************************************************************************!*\ !*** ./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.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 */ \"IntlifyDevToolsHooks\": function() { return /* binding */ IntlifyDevToolsHooks; }\n/* harmony export */ });\n/*!\n * devtools-if v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst IntlifyDevToolsHooks = {\n I18nInit: 'i18n:init',\n FunctionTranslate: 'function:translate'\n};\n\n\n//# sourceURL=webpack://jandl/./node_modules/@intlify/devtools-if/dist/devtools-if.esm-bundler.js?"); /***/ }), /***/ "./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js": /*!*************************************************************************************!*\ !*** ./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.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 */ \"ERROR_DOMAIN\": function() { return /* binding */ ERROR_DOMAIN; },\n/* harmony export */ \"LocationStub\": function() { return /* binding */ LocationStub; },\n/* harmony export */ \"baseCompile\": function() { return /* binding */ baseCompile; },\n/* harmony export */ \"createCompileError\": function() { return /* binding */ createCompileError; },\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 */ \"errorMessages\": function() { return /* binding */ errorMessages; }\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 _intlify_shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @intlify/shared */ \"./node_modules/@intlify/shared/dist/shared.esm-bundler.js\");\n\n/*!\n * message-compiler v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\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 // 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__: 15\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};\nfunction createCompileError(code, loc, options = {}) {\n const {\n domain,\n messages,\n args\n } = options;\n const msg = true ? (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_1__.format)((messages || errorMessages)[code] || '', ...(args || [])) : 0;\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}\nconst LocationStub = {\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}\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 LITERAL_DELIMITER = \"'\";\nconst ERROR_DOMAIN$1 = '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 /* EOF */,\n offset: _initOffset,\n startLoc: _initLoc,\n endLoc: _initLoc,\n lastType: 14 /* 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 = createLocation(ctx.startLoc, pos);\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN$1,\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 /* 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\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\n function isNamedIdentifierStart(scnr, context) {\n const {\n currentType\n } = context;\n if (currentType !== 2 /* 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 /* 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 /* 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 /* LinkedAlias */) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \".\" /* LinkedDot */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedModifierStart(scnr, context) {\n const {\n currentType\n } = context;\n if (currentType !== 9 /* 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 /* LinkedAlias */ || currentType === 12 /* LinkedModifier */)) {\n return false;\n }\n peekSpaces(scnr);\n const ret = scnr.currentPeek() === \":\" /* LinkedDelimiter */;\n scnr.resetPeek();\n return ret;\n }\n function isLinkedReferStart(scnr, context) {\n const {\n currentType\n } = context;\n if (currentType !== 10 /* LinkedDelimiter */) {\n return false;\n }\n const fn = () => {\n const ch = scnr.currentPeek();\n if (ch === \"{\" /* BraceLeft */) {\n return isIdentifierStart(scnr.peek());\n } else if (ch === \"@\" /* LinkedAlias */ || ch === \"%\" /* Modulo */ || ch === \"|\" /* Pipe */ || ch === \":\" /* LinkedDelimiter */ || ch === \".\" /* 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 isIdentifierStart(ch);\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() === \"|\" /* Pipe */;\n scnr.resetPeek();\n return ret;\n }\n function detectModuloStart(scnr) {\n const spaces = peekSpaces(scnr);\n const ret = scnr.currentPeek() === \"%\" /* Modulo */ && scnr.peek() === \"{\" /* 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 === \"{\" /* BraceLeft */) {\n return prev === \"%\" /* Modulo */ ? false : hasSpace;\n } else if (ch === \"@\" /* LinkedAlias */ || !ch) {\n return prev === \"%\" /* Modulo */ ? true : hasSpace;\n } else if (ch === \"%\" /* Modulo */) {\n scnr.peek();\n return fn(hasSpace, \"%\" /* Modulo */, true);\n } else if (ch === \"|\" /* Pipe */) {\n return prev === \"%\" /* 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 takeIdentifierChar(scnr) {\n const closure = 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\n return takeChar(scnr, closure);\n }\n function takeDigit(scnr) {\n const closure = ch => {\n const cc = ch.charCodeAt(0);\n return cc >= 48 && cc <= 57; // 0-9\n };\n\n return takeChar(scnr, closure);\n }\n function takeHexDigit(scnr) {\n const closure = 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\n return takeChar(scnr, closure);\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 !== \"%\" /* Modulo */) {\n emitError(CompileErrorCodes.EXPECTED_TOKEN, currentPosition(), 0, ch);\n }\n scnr.next();\n return \"%\" /* Modulo */;\n }\n\n function readText(scnr) {\n let buf = '';\n while (true) {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* BraceLeft */ || ch === \"}\" /* BraceRight */ || ch === \"@\" /* LinkedAlias */ || ch === \"|\" /* Pipe */ || !ch) {\n break;\n } else if (ch === \"%\" /* 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 = takeIdentifierChar(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 readLiteral(scnr) {\n skipSpaces(scnr);\n eat(scnr, `\\'`);\n let ch = '';\n let literal = '';\n const fn = x => x !== LITERAL_DELIMITER && x !== CHAR_LF;\n while (ch = takeChar(scnr, fn)) {\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 eat(scnr, `\\'`);\n }\n return literal;\n }\n eat(scnr, `\\'`);\n return literal;\n }\n function readEscapeSequence(scnr) {\n const ch = scnr.currentChar();\n switch (ch) {\n case '\\\\':\n case `\\'`:\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 readInvalidIdentifier(scnr) {\n skipSpaces(scnr);\n let ch = '';\n let identifiers = '';\n const closure = ch => ch !== \"{\" /* BraceLeft */ && ch !== \"}\" /* BraceRight */ && ch !== CHAR_SP && ch !== CHAR_LF;\n while (ch = takeChar(scnr, closure)) {\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 = (detect = false, buf) => {\n const ch = scnr.currentChar();\n if (ch === \"{\" /* BraceLeft */ || ch === \"%\" /* Modulo */ || ch === \"@\" /* LinkedAlias */ || ch === \"|\" /* Pipe */ || !ch) {\n return buf;\n } else if (ch === CHAR_SP) {\n return buf;\n } else if (ch === CHAR_LF) {\n buf += ch;\n scnr.next();\n return fn(detect, buf);\n } else {\n buf += ch;\n scnr.next();\n return fn(true, buf);\n }\n };\n return fn(false, '');\n }\n function readPlural(scnr) {\n skipSpaces(scnr);\n const plural = eat(scnr, \"|\" /* 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 \"{\" /* BraceLeft */:\n if (context.braceNest >= 1) {\n emitError(CompileErrorCodes.NOT_ALLOW_NEST_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 2 /* BraceLeft */, \"{\" /* BraceLeft */);\n skipSpaces(scnr);\n context.braceNest++;\n return token;\n case \"}\" /* BraceRight */:\n if (context.braceNest > 0 && context.currentType === 2 /* BraceLeft */) {\n emitError(CompileErrorCodes.EMPTY_PLACEHOLDER, currentPosition(), 0);\n }\n scnr.next();\n token = getToken(context, 3 /* BraceRight */, \"}\" /* 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 \"@\" /* 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 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 /* 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 /* Named */ || context.currentType === 6 /* List */ || context.currentType === 7 /* 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 /* Named */, readNamedIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if (validListIdentifier = isListIdentifierStart(scnr, context)) {\n token = getToken(context, 6 /* List */, readListIdentifier(scnr));\n skipSpaces(scnr);\n return token;\n }\n if (validLiteral = isLiteralStart(scnr, context)) {\n token = getToken(context, 7 /* 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 /* 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 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 /* LinkedAlias */ || currentType === 9 /* LinkedDot */ || currentType === 12 /* LinkedModifier */ || currentType === 10 /* LinkedDelimiter */) && (ch === CHAR_LF || ch === CHAR_SP)) {\n emitError(CompileErrorCodes.INVALID_LINKED_FORMAT, currentPosition(), 0);\n }\n switch (ch) {\n case \"@\" /* LinkedAlias */:\n scnr.next();\n token = getToken(context, 8 /* LinkedAlias */, \"@\" /* LinkedAlias */);\n context.inLinked = true;\n return token;\n case \".\" /* LinkedDot */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 9 /* LinkedDot */, \".\" /* LinkedDot */);\n case \":\" /* LinkedDelimiter */:\n skipSpaces(scnr);\n scnr.next();\n return getToken(context, 10 /* LinkedDelimiter */, \":\" /* LinkedDelimiter */);\n default:\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* 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 /* LinkedModifier */, readLinkedModifier(scnr));\n }\n if (isLinkedReferStart(scnr, context)) {\n skipSpaces(scnr);\n if (ch === \"{\" /* BraceLeft */) {\n // scan the placeholder\n return readTokenInPlaceholder(scnr, context) || token;\n } else {\n return getToken(context, 11 /* LinkedKey */, readLinkedRefer(scnr));\n }\n }\n if (currentType === 8 /* 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 /* 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 \"{\" /* BraceLeft */:\n return readTokenInPlaceholder(scnr, context) || getEndToken(context);\n case \"}\" /* BraceRight */:\n emitError(CompileErrorCodes.UNBALANCED_CLOSING_BRACE, currentPosition(), 0);\n scnr.next();\n return getToken(context, 3 /* BraceRight */, \"}\" /* BraceRight */);\n case \"@\" /* LinkedAlias */:\n return readTokenInLinked(scnr, context) || getEndToken(context);\n default:\n if (isPluralStart(scnr)) {\n token = getToken(context, 1 /* 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 /* Text */, readText(scnr)) : getToken(context, 4 /* Modulo */, readModulo(scnr));\n }\n if (isTextStart(scnr)) {\n return getToken(context, 0 /* Text */, readText(scnr));\n }\n break;\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 /* EOF */);\n }\n\n return readToken(_scnr, _context);\n }\n return {\n nextToken,\n currentOffset,\n currentPosition,\n context\n };\n}\nconst ERROR_DOMAIN = '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 case `\\\\\\'`:\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 } = 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 = createLocation(start, end);\n const err = createCompileError(code, loc, {\n domain: ERROR_DOMAIN,\n args\n });\n onError(err);\n }\n }\n function startNode(type, offset, loc) {\n const node = {\n type,\n start: offset,\n end: offset\n };\n if (location) {\n node.loc = {\n start: loc,\n end: loc\n };\n }\n return node;\n }\n function endNode(node, offset, pos, type) {\n node.end = offset;\n if (type) {\n node.type = type;\n }\n if (location && node.loc) {\n node.loc.end = pos;\n }\n }\n function parseText(tokenizer, value) {\n const context = tokenizer.context();\n const node = startNode(3 /* 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 /* 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) {\n const context = tokenizer.context();\n const {\n lastOffset: offset,\n lastStartLoc: loc\n } = context; // get brace left loc\n const node = startNode(4 /* Named */, offset, loc);\n node.key = key;\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 /* 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 /* LinkedModifier */, offset, loc);\n if (token.type !== 12 /* 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 /* 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 /* Linked */, context.offset, context.startLoc);\n let token = tokenizer.nextToken();\n if (token.type === 9 /* 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 /* 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 /* BraceLeft */) {\n token = tokenizer.nextToken();\n }\n switch (token.type) {\n case 11 /* 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 /* 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 /* 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 /* 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 // empty key\n emitError(tokenizer, CompileErrorCodes.UNEXPECTED_EMPTY_LINKED_KEY, context.lastStartLoc, 0);\n const nextContext = tokenizer.context();\n const emptyLinkedKeyNode = startNode(7 /* 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 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 /* Pipe */ ? tokenizer.currentOffset() : context.offset;\n const startLoc = context.currentType === 1 /* Pipe */ ? context.endLoc : context.startLoc;\n const node = startNode(2 /* Message */, startOffset, startLoc);\n node.items = [];\n let nextToken = null;\n do {\n const token = nextToken || tokenizer.nextToken();\n nextToken = null;\n switch (token.type) {\n case 0 /* 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 /* 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 5 /* 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 || ''));\n break;\n case 7 /* 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 /* LinkedAlias */:\n const parsed = parseLinked(tokenizer);\n node.items.push(parsed.node);\n nextToken = parsed.nextConsumeToken || null;\n break;\n }\n } while (context.currentType !== 14 /* EOF */ && context.currentType !== 1 /* Pipe */);\n // adjust message node loc\n const endOffset = context.currentType === 1 /* Pipe */ ? context.lastOffset : tokenizer.currentOffset();\n const endLoc = context.currentType === 1 /* 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 /* 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 /* 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 /* EOF */) {\n return msgNode;\n } else {\n return parsePlural(tokenizer, offset, startLoc, msgNode);\n }\n }\n function parse(source) {\n const tokenizer = createTokenizer(source, (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_1__.assign)({}, options));\n const context = tokenizer.context();\n const node = startNode(0 /* Resource */, context.offset, context.startLoc);\n if (location && node.loc) {\n node.loc.source = source;\n }\n node.body = parseResource(tokenizer);\n // assert whether achieved to EOF\n if (context.currentType !== 14 /* 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 /* 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 /* Plural */:\n traverseNodes(node.cases, transformer);\n transformer.helper(\"plural\" /* PLURAL */);\n break;\n case 2 /* Message */:\n traverseNodes(node.items, transformer);\n break;\n case 6 /* Linked */:\n const linked = node;\n traverseNode(linked.key, transformer);\n transformer.helper(\"linked\" /* LINKED */);\n transformer.helper(\"type\" /* TYPE */);\n break;\n case 5 /* List */:\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\n transformer.helper(\"list\" /* LIST */);\n break;\n case 4 /* Named */:\n transformer.helper(\"interpolate\" /* INTERPOLATE */);\n transformer.helper(\"named\" /* 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\" /* 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 createCodeGenerator(ast, options) {\n const {\n sourceMap,\n filename,\n breakLineCode,\n needIndent: _needIndent\n } = options;\n const _context = {\n source: ast.loc.source,\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 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\" /* 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\" /* 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\" /* 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 /* Resource */:\n generateResource(generator, node);\n break;\n case 1 /* Plural */:\n generatePluralNode(generator, node);\n break;\n case 2 /* Message */:\n generateMessageNode(generator, node);\n break;\n case 6 /* Linked */:\n generateLinkedNode(generator, node);\n break;\n case 8 /* LinkedModifier */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 7 /* LinkedKey */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 5 /* List */:\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"list\" /* LIST */)}(${node.index}))`, node);\n break;\n case 4 /* Named */:\n generator.push(`${helper(\"interpolate\" /* INTERPOLATE */)}(${helper(\"named\" /* NAMED */)}(${JSON.stringify(node.key)}))`, node);\n break;\n case 9 /* Literal */:\n generator.push(JSON.stringify(node.value), node);\n break;\n case 3 /* Text */:\n generator.push(JSON.stringify(node.value), node);\n break;\n default:\n if (true) {\n throw new Error(`unhandled codegen node type: ${node.type}`);\n }\n }\n}\n// generate code from AST\nconst generate = (ast, options = {} // eslint-disable-line\n) => {\n const mode = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_1__.isString)(options.mode) ? options.mode : 'normal';\n const filename = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_1__.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 { ${helpers.map(s => `${s}: _${s}`).join(', ')} } = ctx`);\n generator.newline();\n }\n generator.push(`return `);\n generateNode(generator, ast);\n generator.deindent(needIndent);\n generator.push(`}`);\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};\n\nfunction baseCompile(source, options = {}) {\n const assignedOptions = (0,_intlify_shared__WEBPACK_IMPORTED_MODULE_1__.assign)({}, options);\n // parse source codes\n const parser = createParser(assignedOptions);\n const ast = parser.parse(source);\n // transform ASTs\n transform(ast, assignedOptions);\n // generate javascript codes\n return generate(ast, assignedOptions);\n}\n\n\n//# sourceURL=webpack://jandl/./node_modules/@intlify/message-compiler/dist/message-compiler.esm-bundler.js?"); /***/ }), /***/ "./node_modules/@intlify/shared/dist/shared.esm-bundler.js": /*!*****************************************************************!*\ !*** ./node_modules/@intlify/shared/dist/shared.esm-bundler.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 */ \"assign\": function() { return /* binding */ assign; },\n/* harmony export */ \"createEmitter\": function() { return /* binding */ createEmitter; },\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 */ \"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 */ \"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 */ \"toDisplayString\": function() { return /* binding */ toDisplayString; },\n/* harmony export */ \"toTypeString\": function() { return /* binding */ toTypeString; },\n/* harmony export */ \"warn\": function() { return /* binding */ warn; }\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/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ \"./node_modules/console-browserify/index.js\");\n\n/*!\n * shared v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\n/**\r\n * Original Utilities\r\n * written by kazuya kawaguchi\r\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 && perf.clearMeasures) {\n mark = tag => perf.mark(tag);\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 hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\nconst makeSymbol = name => hasSymbol ? Symbol(name) : 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;\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 assign = Object.assign;\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 : {});\n};\nfunction escapeHtml(rawText) {\n return rawText.replace(//g, '>').replace(/\"/g, '"').replace(/'/g, ''');\n}\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n}\n/* eslint-enable */\n/**\r\n * Useful Utilities By Evan you\r\n * Modified by kazuya kawaguchi\r\n * MIT License\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/index.ts\r\n * https://github.com/vuejs/vue-next/blob/master/packages/shared/src/codeframe.ts\r\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';\nconst isObject = val =>\n// eslint-disable-line\nval !== null && typeof val === 'object';\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 => toTypeString(val) === '[object Object]';\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};\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}\n\n/**\r\n * Event emitter, forked from the below:\r\n * - original repository url: https://github.com/developit/mitt\r\n * - code url: https://github.com/developit/mitt/blob/master/src/index.ts\r\n * - author: Jason Miller (https://github.com/developit)\r\n * - license: MIT\r\n */\n/**\r\n * Create a event emitter\r\n *\r\n * @returns An event emitter\r\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}\n\n\n//# sourceURL=webpack://jandl/./node_modules/@intlify/shared/dist/shared.esm-bundler.js?"); /***/ }), /***/ "./node_modules/@intlify/vue-devtools/dist/vue-devtools.esm-bundler.js": /*!*****************************************************************************!*\ !*** ./node_modules/@intlify/vue-devtools/dist/vue-devtools.esm-bundler.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 */ \"VueDevToolsLabels\": function() { return /* binding */ VueDevToolsLabels; },\n/* harmony export */ \"VueDevToolsPlaceholders\": function() { return /* binding */ VueDevToolsPlaceholders; },\n/* harmony export */ \"VueDevToolsTimelineColors\": function() { return /* binding */ VueDevToolsTimelineColors; }\n/* harmony export */ });\n/*!\n * vue-devtools v9.2.2\n * (c) 2022 kazuya kawaguchi\n * Released under the MIT License.\n */\nconst VueDevToolsLabels = {\n [\"vue-devtools-plugin-vue-i18n\" /* PLUGIN */]: 'Vue I18n devtools',\n [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'I18n Resources',\n [\"vue-i18n-timeline\" /* TIMELINE */]: 'Vue I18n'\n};\nconst VueDevToolsPlaceholders = {\n [\"vue-i18n-resource-inspector\" /* CUSTOM_INSPECTOR */]: 'Search for scopes ...'\n};\nconst VueDevToolsTimelineColors = {\n [\"vue-i18n-timeline\" /* TIMELINE */]: 0xffcd19\n};\n\n\n//# sourceURL=webpack://jandl/./node_modules/@intlify/vue-devtools/dist/vue-devtools.esm-bundler.js?"); /***/ }), /***/ "./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 _stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @stencil/core/internal/client */ \"./node_modules/@stencil/core/internal/client/index.js\");\n/* harmony import */ var _ionic_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ionic-global.js */ \"./node_modules/@ionic/core/components/ionic-global.js\");\n/* harmony import */ var _button_active_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./button-active.js */ \"./node_modules/@ionic/core/components/button-active.js\");\n/* harmony import */ var _overlays_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./overlays.js */ \"./node_modules/@ionic/core/components/overlays.js\");\n/* harmony import */ var _theme_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./theme.js */ \"./node_modules/@ionic/core/components/theme.js\");\n/* harmony import */ var _animation_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation.js */ \"./node_modules/@ionic/core/components/animation.js\");\n/* harmony import */ var _backdrop_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./backdrop.js */ \"./node_modules/@ionic/core/components/backdrop.js\");\n/* harmony import */ var _icon_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./icon.js */ \"./node_modules/@ionic/core/components/icon.js\");\n/* harmony import */ var _ripple_effect_js__WEBPACK_IMPORTED_MODULE_8__ = __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\n\n\n\n\n/**\n * iOS Action Sheet Enter Animation\n */\nconst iosEnterAnimation = baseEl => {\n const baseAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.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_0__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.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_0__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.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_0__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.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_1__.proxyCustomElement)(class extends _stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.didPresent = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.createEvent)(this, \"ionActionSheetDidPresent\", 7);\n this.willPresent = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.createEvent)(this, \"ionActionSheetWillPresent\", 7);\n this.willDismiss = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.createEvent)(this, \"ionActionSheetWillDismiss\", 7);\n this.didDismiss = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_2__.B);\n };\n this.dispatchCancelHandler = ev => {\n const role = ev.detail.role;\n if ((0,_overlays_js__WEBPACK_IMPORTED_MODULE_2__.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_2__.e)(this, 'actionSheetEnter', iosEnterAnimation, mdEnterAnimation);\n }\n connectedCallback() {\n (0,_overlays_js__WEBPACK_IMPORTED_MODULE_2__.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_2__.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_2__.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_2__.g)(this.el, 'ionActionSheetWillDismiss');\n }\n async buttonClick(button) {\n const role = button.role;\n if ((0,_overlays_js__WEBPACK_IMPORTED_MODULE_2__.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_2__.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_3__.b)(this) === 'md' || !wrapperEl || !groupEl) {\n return;\n }\n (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.readTask)(() => {\n const isScrollable = groupEl.scrollHeight > groupEl.clientHeight;\n if (!isScrollable) {\n this.gesture = (0,_button_active_js__WEBPACK_IMPORTED_MODULE_4__.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_3__.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_1__.h)(_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_5__.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_1__.h)(\"ion-backdrop\", {\n tappable: this.backdropDismiss\n }), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"div\", {\n tabindex: \"0\"\n }), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_1__.h)(\"div\", {\n class: \"action-sheet-container\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"div\", {\n class: \"action-sheet-group\",\n ref: el => this.groupEl = el\n }, header !== undefined && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_1__.h)(\"div\", {\n class: \"action-sheet-sub-title\"\n }, this.subHeader)), buttons.map(b => (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_1__.h)(\"span\", {\n class: \"action-sheet-button-inner\"\n }, b.icon && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_1__.h)(\"ion-ripple-effect\", null)))), cancelButton && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"div\", {\n class: \"action-sheet-group action-sheet-group-cancel\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"button\", {\n type: \"button\",\n class: buttonClass(cancelButton),\n onClick: () => this.buttonClick(cancelButton)\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"span\", {\n class: \"action-sheet-button-inner\"\n }, cancelButton.icon && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_1__.h)(\"ion-ripple-effect\", null))))), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_5__.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_6__.d)();\n }\n break;\n case \"ion-icon\":\n if (!customElements.get(tagName)) {\n (0,_icon_js__WEBPACK_IMPORTED_MODULE_7__.d)();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n (0,_ripple_effect_js__WEBPACK_IMPORTED_MODULE_8__.d)();\n }\n break;\n }\n });\n}\n\n\n//# sourceURL=webpack://jandl/./node_modules/@ionic/core/components/action-sheet.js?"); /***/ }), /***/ "./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 _stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @stencil/core/internal/client */ \"./node_modules/@stencil/core/internal/client/index.js\");\n/* harmony import */ var _ionic_global_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ionic-global.js */ \"./node_modules/@ionic/core/components/ionic-global.js\");\n/* harmony import */ var _button_active_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./button-active.js */ \"./node_modules/@ionic/core/components/button-active.js\");\n/* harmony import */ var _overlays_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./overlays.js */ \"./node_modules/@ionic/core/components/overlays.js\");\n/* harmony import */ var _index3_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./index3.js */ \"./node_modules/@ionic/core/components/index3.js\");\n/* harmony import */ var _theme_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./theme.js */ \"./node_modules/@ionic/core/components/theme.js\");\n/* harmony import */ var _animation_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./animation.js */ \"./node_modules/@ionic/core/components/animation.js\");\n/* harmony import */ var _backdrop_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./backdrop.js */ \"./node_modules/@ionic/core/components/backdrop.js\");\n/* harmony import */ var _ripple_effect_js__WEBPACK_IMPORTED_MODULE_8__ = __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 * (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_0__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.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_0__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.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_0__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.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_0__.c)();\n const backdropAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.c)();\n const wrapperAnimation = (0,_animation_js__WEBPACK_IMPORTED_MODULE_0__.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_1__.proxyCustomElement)(class extends _stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.HTMLElement {\n constructor() {\n super();\n this.__registerHost();\n this.didPresent = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.createEvent)(this, \"ionAlertDidPresent\", 7);\n this.willPresent = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.createEvent)(this, \"ionAlertWillPresent\", 7);\n this.willDismiss = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.createEvent)(this, \"ionAlertWillDismiss\", 7);\n this.didDismiss = (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_2__.B);\n };\n this.dispatchCancelHandler = ev => {\n const role = ev.detail.role;\n if ((0,_overlays_js__WEBPACK_IMPORTED_MODULE_2__.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_2__.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_3__.b)(this) === 'md' || !this.wrapperEl) {\n return;\n }\n this.gesture = (0,_button_active_js__WEBPACK_IMPORTED_MODULE_4__.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_2__.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_2__.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_2__.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_2__.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_2__.s)(selectedInput.handler, selectedInput);\n (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.forceUpdate)(this);\n }\n cbClick(selectedInput) {\n selectedInput.checked = !selectedInput.checked;\n (0,_overlays_js__WEBPACK_IMPORTED_MODULE_2__.s)(selectedInput.handler, selectedInput);\n (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_2__.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_2__.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_3__.b)(this);\n if (inputs.length === 0) {\n return null;\n }\n return (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"div\", {\n class: \"alert-checkbox-group\"\n }, inputs.map(i => (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_5__.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_1__.h)(\"div\", {\n class: \"alert-button-inner\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"div\", {\n class: \"alert-checkbox-icon\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"div\", {\n class: \"alert-checkbox-inner\"\n })), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"div\", {\n class: \"alert-checkbox-label\"\n }, i.label)), mode === 'md' && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_1__.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_1__.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_5__.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_1__.h)(\"div\", {\n class: \"alert-button-inner\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"div\", {\n class: \"alert-radio-icon\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"div\", {\n class: \"alert-radio-inner\"\n })), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_1__.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_1__.h)(\"div\", {\n class: \"alert-input-wrapper\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_1__.h)(\"div\", {\n class: \"alert-input-wrapper\"\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_3__.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_1__.h)(\"div\", {\n class: alertButtonGroupClass\n }, buttons.map(button => (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_1__.h)(\"span\", {\n class: \"alert-button-inner\"\n }, button.text), mode === 'md' && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_3__.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_1__.h)(_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_5__.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_1__.h)(\"ion-backdrop\", {\n tappable: this.backdropDismiss\n }), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"div\", {\n tabindex: \"0\"\n }), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"div\", {\n class: \"alert-wrapper ion-overlay-wrapper\",\n ref: el => this.wrapperEl = el\n }, (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"div\", {\n class: \"alert-head\"\n }, header && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"h2\", {\n id: hdrId,\n class: \"alert-title\"\n }, header), subHeader && (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"h2\", {\n id: subHdrId,\n class: \"alert-sub-title\"\n }, subHeader)), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.h)(\"div\", {\n id: msgId,\n class: \"alert-message\",\n innerHTML: (0,_index3_js__WEBPACK_IMPORTED_MODULE_6__.s)(message)\n }), this.renderAlertInputs(), this.renderAlertButtons()), (0,_stencil_core_internal_client__WEBPACK_IMPORTED_MODULE_1__.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_5__.g)(input.cssClass)), (0,_theme_js__WEBPACK_IMPORTED_MODULE_5__.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_5__.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_7__.d)();\n }\n break;\n case \"ion-ripple-effect\":\n if (!customElements.get(tagName)) {\n (0,_ripple_effect_js__WEBPACK_IMPORTED_MODULE_8__.d)();\n }\n break;\n }\n });\n}\n\n\n//# sourceURL=webpack://jandl/./node_modules/@ionic/core/components/alert.js?"); /***/ }), /***/ "./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 _helpers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./helpers.js */ \"./node_modules/@ionic/core/components/helpers.js\");\n/* harmony import */ var _index6_js__WEBPACK_IMPORTED_MODULE_1__ = __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 * (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_1__.w !== undefined && typeof _index6_js__WEBPACK_IMPORTED_MODULE_1__.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_2__.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_2__.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_2__.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_2__.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_2__.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_2__.r)(() => {\n clearCSSAnimationPlayState();\n (0,_helpers_js__WEBPACK_IMPORTED_MODULE_2__.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?"); /***/ }), /***/ "./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_2__ = __webpack_require__(/*! ./ionic-global.js */ \"./node_modules/@ionic/core/components/ionic-global.js\");\n/* harmony import */ var _gesture_controller_js__WEBPACK_IMPORTED_MODULE_1__ = __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_1__.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_2__.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?"); /***/ }), /***/ "./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_2__ = __webpack_require__(/*! ./haptic.js */ \"./node_modules/@ionic/core/components/haptic.js\");\n/* harmony import */ var _index2_js__WEBPACK_IMPORTED_MODULE_1__ = __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_1__.createGesture)({\n el,\n gestureName: 'buttonActiveDrag',\n threshold: 0,\n onStart: ev => activateButtonAtPoint(ev.currentX, ev.currentY, _haptic_js__WEBPACK_IMPORTED_MODULE_2__.a),\n onMove: ev => activateButtonAtPoint(ev.currentX, ev.currentY, _haptic_js__WEBPACK_IMPORTED_MODULE_2__.b),\n onEnd: () => {\n clearActiveButton(true);\n (0,_haptic_js__WEBPACK_IMPORTED_MODULE_2__.c)();\n initialTouchedButton = undefined;\n }\n });\n};\n\n\n//# sourceURL=webpack://jandl/./node_modules/@ionic/core/components/button-active.js?"); /***/ }), /***/ "./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_4__ = __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_1__ = __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_1__.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